Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. Conceitue com suas palavras a multicolinearidade e demostre de formula matricial o desenvolvimento do da seção com base no livro texto do Greene, W. A multicolinearidade consiste em uma relação linear entre as variáveis explicativas no modelo clássico de regressão. A existência desse acontecimento fere uma das premissas do modelo clássico de regressão, de independência entre as variáveis explicativas no modelo a ser estimado. Originalmente, apenas se considerava multicolinearidade a ocorrência de relação perfeita entre as variáveis, no entanto, com o avanço da econometria, passou -se a aceitar a existência de relações não perfeitas. No caso da multicolinearidade perfeita, os betas não são estimáveis, pois quando há relação perfeita entre as variáveis, Portanto, β = = 0 Decerto, a multicolinearidade acarreta em problemas no modelo de regressão, tais como: • Pequenas variações nos dados podem ocasionar em grandes mudanças nas estimativas dos parâmetros, ou seja, os parâmetros não são eficientes; • O erro padrão dos parâmetros é alto, porém com significância baixa (na estatística t), mesmo que eles sejam conjuntamente significantes e o R2 para a regressão seja elevado; • Os coeficientes possuem sinais equivocados; •Variância e covariância tendem a ser muito elevadas; • Os intervalos de confiança também são muito elevados. Existem testes práticos que podem ser realizados afim de se detectar a multicolinearidade: número de condição – consiste na raiz quadrada da razão da maior raiz característica de X’X sobre a menor. Os valores maiores que 20 indicam problema; quando se encontra muitos betas não significativos e R2 elevado; correlação entre variáveis explicativas acima de 0,7. Um teste mais elaborado para a detecção da multicolinearidade é o Fator de Inflação de Variância (VIF), que verificará a quão inflada está a variância. Se o VIF >10, a variável é altamente colinear. Detectada a multicolinearidade, existem algumas maneiras de contorna-la, tais como, aumentar o número de observações nas variáveis; retirar as variáveis que são mais problemáticas do modelo (esta ação não pode ser realizada quando as variáveis são consideradas cruciais para a estimação do modelo); utilizar o método dos componentes principais (presente na análise fatorial); utilizar regressão de Ridge. · Método de desenvolvimento por matriz, com base no livro do Greene, W.: Sabe- se que: MK = IK – PK PK = Xk (-1 [ IK – Reorganizando, Portanto, Reorganizando, Como é o coeficiente de determinação da regressão de Xk sobre todas as outras variáveis do modelo e SKK = . A variância do estimador de mínimos quadrados é σ2 vezes a razão encontrada. Var (bk|X) = Portanto, é a partir daí a afirmação que nos modelos onde há ocorrência de multicolinearidade, a variância e covariância tendem a ser muito elevadas. 2. Desenvolva o Script no software R sobre multicolinearidade do SIGAA e faça as interpretações de todos os resultados gerados (output). Comente e analise, inclusive os coeficientes, R2, teste F, erros dos coeficientes, teste anova, multicolinearidade, tamanho da amostra, etc. Procure ser detalhista em todos os aspectos visto na disciplina. Faça ainda correlações entre as variáveis e comente. SCRIPT - multicolinearidade #Primeiro devemos limpar o Ambiente Global rm(list=ls()) #verifica-se para qual diretório que o RSTATA está direcionando: getwd() #Os dados utilizados nesse exercício estão presentes no pacote de exemplos do livro do Greene, disponível para o R, portanto, este deve ser instalado e depois deve ser realizada a leitura install.packages("AER") library("AER") #Instalação do pacote auxiliar – Regressão linear dinâmica install.packages("dynlm") library("dynlm") library(stargazer) #EXEMPLO 4.11 P.80 – GREENE - LONGLEY'S REGRESSION DATA ## package and data data("Longley", package = "AER") #Para visualizar as variáveis presentes na base de dados View(longley) #Tamanho da amostra length(longley) [1] 7 Os dados consistem em séries temporais macroeconômicas dos EUA, 1947-1962, no formato de série temporal múltipla anual de 1947 a 1962 com 7 variáveis, no entanto, usaremos apenas 4 delas: #employment - emprego: Número de pessoas empregadas (em 1000s). #price - preço: deflator do PIB. #gnp - PNB: Produto Nacional Bruto. #armedforces – forças armadas: Número de pessoas nas forças armadas. Serão realizadas duas regressões, uma de 1947 a 1962 e outra de 1947 a 1961, afim de avaliar o impacto de uma observação no resultado final. #TABELA 4.7 - REGRESSÃO DE 1947 A 1962 Nesse caso, o emprego consta com variável dependente, enquanto o tempo, preço, produto nacional bruto e forças armadas constam como variáveis independentes. fm1 <- dynlm(employment ~ time(employment) + price + gnp + armedforces, data = Longley) summary(fm1) Residuals: Min 1Q Median 3Q Max -905.8 -342.7 -107.6 216.8 1437.7 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.169e+06 8.359e+05 1.399 0.18949 time(employment) -5.765e+02 4.335e+02 -1.330 0.21049 price -1.977e+01 1.389e+02 -0.142 0.88940 gnp 6.439e-02 1.995e-02 3.227 0.00805 ** armedforces -1.015e-02 3.086e-01 -0.033 0.97436 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 667.3 on 11 degrees of freedom Multiple R-squared: 0.9735, Adjusted R-squared: 0.9639 F-statistic: 101.1 on 4 and 11 DF, p-value: 1.346e-08 Quando na análise de significância da análise, quanto mais asteriscos presentes ao lado do efeito estimado, maior o nível de confiança com que podemos afirmar que o efeito não é nulo. Com base na regressão com os dados de 1947 a 1962, o GNP se mostrou como única variável significante a menos de 10, isto é, apresentou poder explicativo na variável emprego. As demais variáveis não são estatisticamente significantes, desse modo, os betas estimados são mais ou menos iguais a zero e não apresentam poder explicativo na variável emprego. No entanto, o R2 e o R2 ajustado apresentaram valores 0,9735 e 0,9639, respectivamente, sendo considerados muito elevados (já que explicam o emprego em torno de 97%) e, portanto o modelo deveria ser considerado muito adequado. Este é um indicativo de multicolinearidade. #ANOVA (fm1) anova(fm1) Analysis of Variance Table Response: employment Df Sum Sq Mean Sq F value Pr(>F) time(employment) 1 174552297 174552297 391.9540 5.96e-10 *** price 1 700063 700063 1.5720 0.235911 gnp 1 4857259 4857259 10.9069 0.007046 ** armedforces 1 481 481 0.0011 0.974361 Residuals 11 4898726 445339 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Um valor de F grande o bastante indica que o termo ou modelo é significativo. A ANOVA corrobora em partes com o observado na regressão realizada anteriormente, pois as variáveis tempo e forças armadas apresentaram valores mais elevados para a estatística F e, por isso, apresentaram p-valor significante. #teste de normalidade dos dados shapiro.test(fm1$residuals) Shapiro-Wilk normality test data: fm1$residuals W = 0.92554, p-value = 0.207 O Teste de Shapiro-Wilk para normalidade avalia a aderência dos resíduos à distribuição Normal. O p-valor se refere à hipótese de que os resíduos seguem de fato uma distribuição Normal, e essa hipótese é rejeitada quando p-valor é menor que 0.05. Neste caso, com o p-valor = 0,207 > 0,05 a hipótese não foi rejeitada e é seguro assumir que os resíduostenham distribuição normal. #A análise de fm1 também pode ser representada graficamente Plot (fm1) #REGRESSÃO DE 1947 A 1961 Consiste na mesma regressão realizada anteriormente, porém com uma observação a menos. fm2 <- update(fm1, end = 1961) summary(fm2) Residuals: Min 1Q Median 3Q Max -760.49 -281.76 -16.70 82.24 1182.69 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.459e+06 7.142e+05 2.043 0.06825 . time(employment) -7.218e+02 3.700e+02 -1.951 0.07965 . price -1.811e+02 1.355e+02 -1.336 0.21101 gnp 9.107e-02 2.026e-02 4.495 0.00115 ** armedforces -7.494e-02 2.611e-01 -0.287 0.77999 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 561.6 on 10 degrees of freedom Multiple R-squared: 0.9798, Adjusted R-squared: 0.9717 F-statistic: 121 on 4 and 10 DF, p-value: 2.006e-08 Quando ocorre a redução de um ano de observação, percebe-se leve melhora nos níveis de significância. Agora, o produto nacional bruto (gnp) apresenta significância de pelo menos 1%, enquanto o tempo e o intercepto apresentam significância de menos de 10%. Mais uma vez, o R2 e o R2 ajustado apresentaram valores elevados, indicando boa adequabilidade do modelo. Anova da regressão (fm2) anova(fm2) Analysis of Variance Table Response: employment Df Sum Sq Mean Sq F value Pr(>F) time(employment) 1 145356552 145356552 460.8987 1.072e-09 *** price 1 691151 691151 2.1915 0.169576 gnp 1 6560313 6560313 20.8015 0.001041 ** armedforces 1 25973 25973 0.0824 0.779990 Residuals 10 3153764 315376 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Assim como na análise fm1, a ANOVA corrobora em partes com o observado na regressão realizada anteriormente, pois as variáveis tempo e forças armadas apresentaram valores mais elevados para a estatística F e, por isso, apresentaram p-valor significante. #teste de normalidade dos dados shapiro.test(fm2$residuals) Shapiro-Wilk normality test data: fm2$residuals W = 0.90522, p-value = 0.1144 Como o p-valor = 0,1144 > 0,05 a hipótese não foi rejeitada e é seguro assumir que os resíduos continuem com distribuição normal. #A análise de fm2 também pode ser representada graficamente através de um gráfico de dispersão windows() Plot(fm2) cbind(coef(fm2), coef(fm1)) [,1] [,2] (Intercept) 1.459415e+06 1.169088e+06 time(employment) -7.217561e+02 -5.764643e+02 price -1.811230e+02 -1.976807e+01 gnp 9.106778e-02 6.439397e-02 armedforces -7.493705e-02 -1.014525e-02 Realizando comparação entre os betas estimados pelas duas regressões, observa-se melhora nos valores na segunda regressão. Essa comparação mostra o poder que uma observação tem de alterar os resultados da análise Nesse caso, comenta-se que o problema de multicolinearidade reside pela falta de observações, a base de dados conta com apenas 16 observações (1947 a 1962), quando o indicado seria de pelo menos 50 observações. Uma forma de solucionar seria buscando adicionar novas observações na base de dados, no entanto, nem sempre essa ação é possível, devido a dependência de atualizações dos dados pelos órgãos responsáveis quando trabalhamos com dados secundários. Outra alternativa é a retirada da variável causadora da multicolinearidade. Existem testes de multicolinearidade que podem ser realizados ajudam a ver se o modelo é mal especificado ou os dados são ruins (possui dados errados ou contém outliers, por exemplo). #TESTE VIF PACOTE CAR #VIF: variance inflation fator library("car") vif(fm1) time(employment) price gnp armedforces 143.463545 75.670734 132.463801 1.553191 No teste VIF, com base na teoria, o valor 10 é escolhido. Isto é, se VIF está acima de 10 (equivalentemente, R2 acima de 0,9), desse modo, conclui-se que há problema de multicolinearidade. No caso da análise em questão, as variáveis tempo, preço e gnp apresentaram valores acima de 10, enquanto a variável forças armadas apresentou valor abaixo de 10 sendo, portanto, a única variável que não apresenta correlação com as demais. Como a variável tempo apresentou o valor mais elevado, é interessante considerar removê-la da análise. #media do VIF mean(vif(fm1)) [1] 88.28782 O valor médio ideal seria menor que 1, indicando grave problema de multicolinearidade. O teste VIF é considerado o teste mais importante para a análise da multicolinearidade, no entanto, existem outros testes menos importantes que também podem ser realizados. #OUTROS TESTES #matriz de correlação corteste = cor(Longley) cortest employment price gnp armedforces employment 1.0000000 0.9708985 0.9835516 0.4573074 price 0.9708985 1.0000000 0.9915892 0.4647442 gnp 0.9835516 0.9915892 1.0000000 0.4464368 armedforces 0.4573074 0.4647442 0.4464368 1.0000000 Nesse caso, observa-se que a matriz de correlação é composta por muitos valores próximos de 1, o que pode ser indicativo de correlação entre as variáveis. #Eigen system analysis and condition number kappa(cor(Longley), exact= TRUE) [1] 573.5211 #ou max(eigen(cor(Longley))$values)/min(eigen(cor(Longley))$values) Resultado do teste: valores acima de 100 possuem problema de multicolinearidade Tentativas de correção da multicolinearidade: a) adicionar dados (nem sempre é possível, fonte secundária depende do órgão responsável) b) Utilizar Analise dos componentes principais (presente na análise fatorial) c) Usar regressão de Ridge d) Retirar variáveis que possivelmente estão causando a multicolinearidade Outra estratégia de correção seria reconsiderar nosso modelo original, expressando o PNB não em termos nominais, mas em termos reais, dividindo o PNB nominal pelo deflator implícito dos preços (gnp/price). fm1fit <- dynlm(employment ~ time(employment) + gnp/price + armedforces, data = Longley) summary(fm1fit) Time series regression with "ts" data: Start = 1947, End = 1962 Residuals: Min 1Q Median 3Q Max -844.70 -237.85 -15.03 209.19 853.12 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.289e+06 6.042e+05 2.134 0.05616 . time(employment) -6.438e+02 3.121e+02 -2.063 0.06356 . gnp 1.602e-01 4.096e-02 3.911 0.00243 ** armedforces -6.844e-01 3.479e-01 -1.967 0.07489 . gnp:price -6.476e-04 2.550e-04 -2.540 0.02749 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 530.3 on 11 degrees of freedom Multiple R-squared: 0.9833, Adjusted R-squared: 0.9772 F-statistic: 161.7 on 4 and 11 DF, p-value: 1.083e-09 Com essa alteração, é possível observar melhoras nos coeficientes de significância, de tal forma que todas as variáveis foram significantes a menos de 10%. Ademais, o R2 permanece elevado. ANOVA (fm1fit) anova(fm1fit) Analysis of Variance Table Response: employmentDf Sum Sq Mean Sq F value Pr(>F) time(employment) 1 174552297 174552297 620.6424 5.008e-11 *** gnp 1 5545585 5545585 19.7180 0.0009942 *** armedforces 1 3197 3197 0.0114 0.9170167 gnp:price 1 1814057 1814057 6.4501 0.0274944 * Residuals 11 3093690 281245 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Dessa vez, com o ajuste no GNP, obtém-se 3 variáveis significativas, pois apresentaram valores para a estatística F mais elevados, são elas: tempo, gnp e gnp:preço. Portanto, com base na ANOVA, apenas a variável forças armadas não foi significativa. Análise de (fm1fit) também pode ser representada graficamente. windows() Plot(fm1fit) vif(fm1fit) time(employment) gnp armedforces gnp:price 117.759648 884.126845 3.126099 703.194125 No entanto, apesar da melhora percebida, o teste VIF detecta que ainda há presença de multicolinearidade, pois a única variável que retornou valor abaixo de 10 foi as forças armadas. Desse modo, comenta-se que o modelo de séries temporais possui outros métodos de estimação.
Compartilhar