Buscar

Questões de prova - ECONOMETRIA- Multicolinearidade e script no R

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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.

Outros materiais