Buscar

TUTORIAL DE ECONOMETRIA COM O USO DO SOFTWARE 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 53 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 53 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 53 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

TUTORIAL DE ECONOMETRIA COM O USO DO SOFTWARE R
®
 
Professor Paulo Alexandre Nunes
1
 
 
Este material tem como principal objetivo auxiliar os acadêmicos a estudarem 
a disciplina de Econometria com uso do software estatístico R
®
, isto se deve 
principalmente ao grande incentivo ao uso de softwares livres, e também por ser este 
um dos softwares muito utilizado nas principais universidades brasileiras e do mundo. 
Este material terá como base teórica o livro texto utilizado nas aulas em sala, 
ECONOMETRIA BÁSICA, dos autores, Damodar N. Gujarati e Dawn C. Porter. 
Sendo assim, este tutorial tem como natureza os aspectos práticos ao se estimarem os 
parâmetros e coeficientes importantes, bem como realizar testes estatísticos nas 
regressões estimadas, sendo que a parte teórica para as análises são extremamente 
necessárias para que os resultados obtidos numericamente possam ter sentido prático. 
Assim como na disciplina de Econometria, esse tutorial terá como início o 
capítulo 5 do referido livro, passando pelos demais capítulos, desenvolvendo exemplos 
desenvolvidos ao longo do livro. 
 
1. A REGRESSÃO DE DUAS VARIÁVEIS: ESTIMAÇÃO DE INTERVALO E 
TESTE DE HIPÓTESES 
 
1.1. Intervalos de Confiança 
 
A primeira parte deste material refere-se basicamente ao que já foi visto na 
disciplina de Estatística Econômica e Introdução à Econometria, sendo já apresentada a 
forma de se estimar intervalos de confiança, testes de hipóteses, aqui será demonstrado 
como aplicar tais conceitos em uma regressão estimada. 
A priori, vamos utilizar o mesmo exemplo desenvolvido no texto, com a 
relação entre salário-hora médio (Y) e escolaridade (X), inserindo os dados e estimando 
a reta de regressão. 
No prompt do software R, façamos: 
 
1
 Professor Economista da Coordenação do curso de Ciências Econômicas, UFFS Campus de Laranjeiras 
do Sul-PR. 
> exe1<-read.csv2("salescol.csv",dec=".") 
> attach(exe1) 
> exe1 
 Y X 
1 4.4567 6 
2 5.7700 7 
3 5.9787 8 
4 7.3317 9 
5 7.3182 10 
6 6.5844 11 
7 7.8182 12 
8 7.8351 13 
9 11.0223 14 
10 10.6738 15 
11 10.8361 16 
12 13.6150 17 
13 13.5310 18 
> regexe1<-lm(Y~X) 
> regexe1 
 
Call: 
lm(formula = Y ~ X) 
 
Coefficients: 
(Intercept) X 
 -0.01445 0.72410 
 
A princípio, temos apenas os betas (coeficientes). Com o próximo comando, o 
software apresenta os demais dados necessários para uma análise aprimorada, o 
primeiro, seria o quadro da Análise de Variância do modelo: 
 
> anova(regexe1) 
Analysis of Variance Table 
 
Response: Y 
 Df Sum Sq Mean Sq F value Pr(>F) 
X 1 95.426 95.426 108.29 4.958e-07 *** 
Residuals 11 9.693 0.881 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
O segundo, os dados sobre os erros-padrão dos betas, o valor do teste t de cada 
parâmetro, e seu nível de significância, o Coeficiente de Determinação, a estatística F: 
 
 
 
 
 
 
 
 
 
 
 
> summary(regexe1) 
 
Call: 
lm(formula = Y ~ X) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-1.5637 -0.7350 0.1266 0.7158 1.3198 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) -0.01445 0.87462 -0.017 0.987 
X 0.72410 0.06958 10.406 4.96e-07 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 0.9387 on 11 degrees of freedom 
Multiple R-squared: 0.9078, Adjusted R-squared: 0.8994 
F-statistic: 108.3 on 1 and 11 DF, p-value: 4.958e-07 
 
Portanto, para estimar o intervalo de confiança, necessitamos de alguns dados 
que já estão disponíveis, os comandos são semelhantes a que já foi praticado na 
disciplina anterior. 
Porém, temos de dar nomes a estes dados que utilizaremos, a priori, faremos o 
IC para o beta 2 (β2): 
 
> B2<-0.7241 #o valor do beta estimado 
> epB2<-0.06958 #o erro padrão do beta estimado 
> q<-qt(c(0.025,0.975),df=11)#os valores críticos da tabela t com α=5% 
> q 
[1] -2.200985 2.200985 
> icB2<-B2+q*epB2 #fórmula para calcular o IC. 
> icB2 
[1] 0.5709555 0.8772445 
 
Para analisar, apenas siga a forma que é feita nos livros texto, ou em exercícios 
feito manualmente. 
Agora, faça o beta 1. 
 
O intervalo de confiança para a variância (σ²), é feito com base na distribuição 
qui-quadrado, também já visto exaustivamente na disciplina do semestre passado, então 
vamos a parte prática, primeiro, inserindo os dados no software: 
 
> gl=13-2 #graus de liberdade, n – 2; 
> gl 
[1] 11 
> o2<-0.881 #a variância estimada do modelo (SQM-RES) 
> q<-qchisq(c(0.975,0.025),df=gl) #o valor tabelado da distribuição 
χ² à 5%; 
 
> q 
[1] 21.920049 3.815748 
> ico2<-(gl*o2)/q #fórmula para estimar o IC. 
> ico2 
[1] 0.4421067 2.5397378 
 
Com base em tais resultados, podem-se fazer as análises necessárias. 
 
1.2. Teste de hipótese 
 
Para o teste de hipótese, o software já dá os valores necessários, precisamos 
apenas identificar quem são para podermos analisar melhor. 
Novamente no prompt do software R, dê o seguinte comando: 
 
> summary(regexe1) 
 
 
Call: 
lm(formula = Y ~ X) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-1.5637 -0.7350 0.1266 0.7158 1.3198 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) -0.01445 0.87462 -0.017 0.987 
X 0.72410 0.06958 10.406 4.96e-07 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 0.9387 on 11 degrees of freedom 
Multiple R-squared: 0.9078, Adjusted R-squared: 0.8994 
F-statistic: 108.3 on 1 and 11 DF, p-value: 4.958e-07 
 
 
Prontamente irá aparecer estes resultados acima, observe a caixa com o título 
“Coefficients” lá estão os betas estimados (Estimate), os erros-padrão (Std. Error), o 
valor do teste t (t value) e o p-valor do teste t (Pr(>|t|)), estes últimos dados são o 
suficiente para decidirmos algo sobre o teste t, se observarmos apenas o p-valor do teste 
já é o suficiente, se nesta coluna os valores forem menor do 5% (0,05) temos boas 
indicações para rejeitar a hipótese nula do teste. 
Da mesma forma, na última linha deste resultado, ele apresenta a estatística F 
(F-statistic), como seu valor, os graus de liberdade (DF) e o seu p-valor, e da mesma 
forma, podemos aceitar ou rejeitar H0. 
 
1.3. Teste de normalidade 
 
Todo modelo de regressão, conforme a hipótese básica do modelo clássico 
linear de regressão deve passar por um teste de normalidade. Quando falamos de 
normalidade, estamos dizendo que os resíduos devem seguir uma distribuição normal, 
assim, a princípio, faremos um histograma para verificar a normalidade dos resíduos. 
Os comandos são os seguintes: 
 
> u<-residuals(regexe1) 
> hist(u,main="Histograma dos resíduos da regressão salário-hora e 
escolaridade",xlab="Resíduo",ylab="Frequência",density=40) 
 
 
 
 
Assim, qual a sua conclusão, os resíduos seguem a distribuição normal ou não? 
Este histograma, na verdade, é uma forma informal para se testar a 
normalidade dos resíduos, outro gráfico importante para a análise da normalidade os 
resíduos é o gráfico de probabilidade normal (GPN). 
Segundo Gujarati e Porter (2011), “um artifício gráfico comparativamente 
simples de estudar a forma da função de densidade de probabilidade de uma variável 
aleatóriaé o gráfico de probabilidade normal (GPN), em que usamos o papel de 
probabilidade normal.” 
No eixo horizontal marca-se a variável de interesse, nesse caso, os resíduos (u) 
e no eixo vertical representa-se os valores esperados desta variável caso estivesse 
normalmente distribuída. 
Se a variável provém de fato de uma população normal, o GPN será 
aproximadamente uma linha reta. Os comandos para construir esse gráfico são os 
seguintes: 
 
> qqnorm(u,xlab=”Resíduos”,ylab=”Percentual”,main=”GPN”) 
> qqline(u) 
 
Na literatura sobre o tema, indica que o teste de Jarque-Bera é um dos 
principais testes formais, calculando a assimetria e a curtose. Para efetuar tal teste, os 
comandos são os seguintes: 
 
Primeiro, carregue no software R o pacote AutoSEARCH. 
 
Após, faça o seguinte comando: 
> jb.test(u) #Comando para o teste com base nos resíduos 
$skewness #Coeficiente de Assimetria 
[1] -0.3937871 
 
$kurtosis #Coeficiente de Curtose 
[1] 2.046253 
 
$statistic #Estatística JB 
[1] 0.8286992 
 
$df #Graus de liberdade 
[1] 2 
 
$p.value #p-valor 
[1] 0.6607699 
 
Assim, sob a hipótese nula de que os resíduos são normalmente distribuídos. A 
estatística JB estimada para nosso exemplo é de 0,8287, e a hipótese nula de que os 
resíduos neste exemplo estão normalmente distribuídas não pode ser rejeitada, pois o p-
valor de obtermos uma estatística JB de 0,8287 ou maior é de 66%. 
 
2. EXTENSÕES DO MODELO DE REGRESSÃO LINEAR DE DUAS 
VARIÁVEIS 
 
Neste capítulo iremos apresentar como fazer transformações nas variáveis para 
a escolha da forma funcional correta. A princípio, iremos tratar das variáveis 
padronizadas, os modelos log-linear, log-lin, lin-log e recíprocos. 
 
2.2. Regressão com variáveis padronizadas 
 
Regressões padronizadas dizem respeito quando temos variáveis com escalas e 
unidades de medidas diferentes, por exemplo, quando queremos fazer análises sobre o 
comportamento do investimento em relação ao PIB, porém, o investimento encontra-se 
com valores em bilhões da referente unidade de medida
2
 e o PIB em milhões. Desta 
forma, se estimarmos a regressão com valores neste formato, temos de ter muito 
cuidado ao fazermos as análises, pois qualquer erro pode comprometer todo o trabalho. 
Assim sendo, uma alternativa para tal problema, e está disponível na literatura sobre o 
tema, seria padronizar tais variáveis, colocando-as no mesmo patamar, evitando 
qualquer tipo de problema nas análises subsequentes. 
Quando dizemos “padronizar” as variáveis, estamos falando em fazer tal 
operação: 
 
 
 
 
Onde que Y* é a variável dependente padronizada, tendo sua operação da 
seguinte forma: 
a) O valor observado menos a sua média; 
b) Com seu resultado, divide-se pelo seu desvio-padrão amostral. 
O mesmo procedimento é feito com a variável independente X. 
Vamos fazer tal procedimento no software R. Novamente, iremos inserir os 
dados no software. 
 
> invpib<-read.csv2("INVPIB.csv",dec=".") #Inserindo os dados 
 
2
 Unidade de medida pode ser ou o Real, Dólar, Euro, etc. 
> attach(invpib) 
> invpib 
 Ano IIPBBL PIBM 
1 1990 886.6 7112500 
2 1991 829.1 7100500 
3 1992 878.3 7336600 
4 1993 953.5 7532700 
5 1994 1042.3 7835500 
6 1995 1109.6 8031700 
7 1996 1209.2 8328900 
8 1997 1320.6 8703500 
9 1998 1455.0 9066900 
10 1999 1576.3 9470300 
11 2000 1679.0 9817000 
12 2001 1629.4 9890700 
13 2002 1544.6 10048800 
14 2003 1596.9 10301000 
15 2004 1713.9 10703500 
16 2005 1842.0 11048600 
> Ym<-mean(IIPBBL) #calculando a media de Y (Investimento); 
> Yme<-rep(Ym,16) #montando um vetor com os valores da média de Y; 
> Yme 
 [1] 1329.144 1329.144 1329.144 1329.144 1329.144 1329.144 1329.144 1329.144 
 [9] 1329.144 1329.144 1329.144 1329.144 1329.144 1329.144 1329.144 1329.144 
> Oy<-sd(IIPBBL) #calculando o desvio padrão de Y; 
> OY<-rep(Oy,16) #montando o vetor com os valores do desvio padrão de Y; 
> Yp<-(IIPBBL-Yme)/OY #padronizando a variável Y; 
> Yp 
 [1] -1.29421322 -1.46237120 -1.31848646 -1.09856508 -0.83887068 -0.64205273 
 [7] -0.35077388 -0.02498608 0.36806490 0.72280512 1.02314988 0.87809535 
[13] 0.63009890 0.78304954 1.12521446 1.49984118 
 
 
Repetindo o mesmo procedimento para a variável X: 
> Xm<-mean(PIBM) 
> Xme<-rep(Xm,16) 
> Ox<-sd(PIBM) 
> OX<-rep(Ox,16) 
> Xp<-(PIBM-Xme)/OX 
> Xp 
 [1] -1.3459138 -1.3549719 -1.1767540 -1.0287298 -0.8001641 -0.6520643 
 [7] -0.4277257 -0.1449624 0.1293467 0.4338494 0.6955526 0.7511843 
[13] 0.8705246 1.0608954 1.3647188 1.6252143 
 
Padronizadas as variáveis, faremos a regressão com base nas mesmas: 
 
> regiv<-lm(Yp~Xp) 
> regiv 
 
Call: 
lm(formula = Yp ~ Xp) 
 
Coefficients: 
(Intercept) Xp 
 3.886e-16 9.822e-01 
 
> anova(regiv) 
Analysis of Variance Table 
 
Response: Yp 
 Df Sum Sq Mean Sq F value Pr(>F) 
Xp 1 14.4717 14.4717 383.47 1.431e-11 *** 
Residuals 14 0.5283 0.0377 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
> summary(regiv) 
 
Call: 
lm(formula = Yp ~ Xp) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-0.25899 -0.13927 -0.02725 0.12312 0.33996 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 3.886e-16 4.857e-02 0.00 1 
Xp 9.822e-01 5.016e-02 19.58 1.43e-11 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 0.1943 on 14 degrees of freedom 
Multiple R-squared: 0.9648, Adjusted R-squared: 0.9623 
F-statistic: 383.5 on 1 and 14 DF, p-value: 1.431e-11 
 
Observe que nesta regressão o intercepto tem valor muito baixo, sendo 
considerado zero, desta forma, temos uma regressão que passa pela origem. 
 
 
2.3. Modelo log-linear – como medir elasticidade 
 
O modelo log-linear é muito importante na teoria econômica, visto que seus 
coeficientes (βs) indicam a elasticidade da variável dependente Y em relação à variável 
independente (X). 
Considere um modelo exponencial: 
 
 
Aplicando o ln, teremos: 
 
 
Assim, estimando esta regressão por MQO, o coeficiente β2 irá refletir a 
elasticidade de Y em relação à X, e tal modelo são conhecidos como log-log, duplo-log, 
e log-lineares. 
Para trabalharmos com tais modelos em qualquer software, devemos 
transformar as variáveis em seus logaritmos, pelo R, aplicamos os seguintes comandos: 
 
> desp<-read.csv2("DESPESSOAL.csv",dec=".") #inserindo os dados; 
> attach(desp) 
> desp 
 Ano.Trimestre DESPSEV DESPDUR DESPNDUR DESPTCP 
1 2003-I 4143.3 971.4 2072.5 7184.9 
2 2003-II 4161.3 1009.8 2084.2 7249.3 
3 2003-III 4190.7 1049.6 2123.0 7352.9 
4 2003-IV 4220.2 1051.4 2132.5 7394.3 
5 2004-I 4268.2 1067.0 2155.3 7479.8 
6 2004-II 4308.4 1071.4 2164.3 7534.4 
7 2004-III 4341.5 1093.9 2184.0 7607.1 
8 2004-IV 4377.4 1110.3 2213.1 7687.1 
9 2005-I 4395.3 1116.8 2241.5 7739.4 
10 2005-II 4420.0 1150.8 2268.4 7819.8 
11 2005-III 4454.5 1175.9 2287.6 7895.3 
12 2005-IV 4476.7 1137.9 2309.6 7910.2 
13 2006-I 4494.5 1190.5 2342.8 8003.8 
14 2006-II 4535.4 1190.3 2351.1 8055.0 
15 2006-III 4566.6 1208.8 2360.18111.2 
 
#Transformando as variáveis 
 
> lddur<-log(DESPDUR) 
> ldptcp<-log(DESPTCP) 
 
 
 
 
 
> regdesp<-lm(lddur~ldptcp) #regressão por MQO 
> regdesp 
 
Call: 
lm(formula = lddur ~ ldptcp) 
 
Coefficients: 
(Intercept) ldptcp 
 -7.542 1.627 
 
#Análise de Variância 
 
> anova(regdesp) 
Analysis of Variance Table 
 
Response: lddur 
 Df Sum Sq Mean Sq F value Pr(>F) 
ldptcp 1 0.056008 0.056008 412.71 3.118e-11 *** 
Residuals 13 0.001764 0.000136 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
#Saída com o resumo estatístico dos resultados. 
 
> summary(regdesp) 
 
Call: 
lm(formula = lddur ~ ldptcp) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-0.0234363 -0.0037955 0.0008182 0.0066518 0.0163937 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) -7.54166 0.71615 -10.53 9.84e-08 *** 
ldptcp 1.62661 0.08007 20.32 3.12e-11 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 0.01165 on 13 degrees of freedom 
Multiple R-squared: 0.9695, Adjusted R-squared: 0.9671 
F-statistic: 412.7 on 1 and 13 DF, p-value: 3.118e-11 
 
Quais as analyses que podem ser feitas com base nestes resultados? 
 
2.3. Modelos semilogarítmicos: log-lin e lin-log 
 
a) Modelo log-lin 
 
O modelo log-lin é um modelo importante para medir a taxa de crescimento de 
algumas variáveis, como a taxa de crescimento da população, do PIB, oferta de moeda, 
emprego, déficit comercial, entre outras variáveis. 
Conforme Gujarati e Porter (2011, p. 179): 
Suponha que queiramos conhecer a taxa de crescimento das despesas pessoais 
com serviços para os dados na tabela (a mesma que foi inserida no exemplo anterior). 
Denotemos por Yt as despesas reais com serviços no período t e por Y0 o valor inicial 
dessas despesas (o valor ao fim do quarto trimestre de 2002). Recordando a conhecida 
fórmula dos juros compostos, temos: 
 
 
Em que r é a taxa de crescimento composta ou geométrica (ao longo do tempo) 
de Y. Usando o logaritmo natural nesta equação, podemos escrever: 
 
 
Considerando, 
 
 
 
Podemos escrever a equação então, como: 
 
 
 
Este modelo é semelhante a qualquer outro de regressão linear no sentido de 
os parâmetros β1 e β2 serem lineares. A única diferença é que o regressando é o 
logaritmo de Y e o regressor é o “tempo”, que assumirá os valores 1, 2, 3, ... 
Neste modelo, o coeficiente angular, β2, mede a variação proporcional ou 
relativa constante em Y para uma dada variação absoluta no valor do regressor 
(tempo), isto é: 
 
 
 
Se multiplicarmos a variação relativa de Y por 100, esta equação nos dará a 
variação percentual ou a taxa de crescimento de Y dada uma variação absoluta em X, o 
regressor. (GUJARATI e PORTER, 2011). 
Vamos aplicar este exemplo: 
 
 
Os comandos no R, são: 
 
> ldps<-log(DESPSEV) #fazendo o ln da variável DESPSEV; 
> t<-seq(1,15,by=1) #gerando a sequencia de números de 1 a 15; 
> t 
 [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 
 
> regdps<-lm(ldps~t) #fazendo a regressão 
> regdps 
 
Call: 
lm(formula = ldps ~ t) 
 
Coefficients: 
(Intercept) t 
 8.322627 0.007054 
 
> anova(regdps) #Análise de variância 
Analysis of Variance Table 
 
Response: ldps 
 Df Sum Sq Mean Sq F value Pr(>F) 
t 1 0.0139312 0.0139312 1597.2 5.421e-15 *** 
Residuals 13 0.0001134 0.0000087 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
 
> summary(regdps) 
 
Call: 
lm(formula = ldps ~ t) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-0.0037151 -0.0025297 -0.0004329 0.0018168 0.0051538 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 8.3226271 0.0016047 5186.30 < 2e-16 *** 
t 0.0070537 0.0001765 39.97 5.42e-15 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 0.002953 on 13 degrees of freedom 
Multiple R-squared: 0.9919, Adjusted R-squared: 0.9913 
F-statistic: 1597 on 1 and 13 DF, p-value: 5.421e-15 
 
#Valores estimados (Ye) 
 
> Ye<-predict(regdps) 
> plot(t,Ye,xlab="Tempo",ylab="Log das despesas com serviços") 
 
 
 
 
O que podemos inferir com tais resultados? 
 
b) O modelo lin-log 
 
Este modelo como cita Gujarati e Porter (2011), é interessante para quem 
estiver interessado em conhecer o crescimento percentual de Y para uma variação 
absoluta de X, tal modelo assume a seguinte forma: 
 
 
 
O coeficiente angular pode ser interpretado como: 
 
 
Simbolicamente: 
 
 
 
Como exemplo, tem-se o exemplo 6.5 da página 183 de Gujarati e Porter 
(2011): 
Estimando a equação: 
 
No software aplicamos os seguintes comandos: 
 
> despalim<-read.csv2("ALIMDPT.csv",dec=".") 
> attach(despalim) 
> despalim 
 DALIM DESPT 
1 217 382 
2 196 388 
3 303 391 
4 270 415 
5 325 456 
6 260 460 
7 300 472 
8 325 478 
9 336 494 
10 345 516 
11 325 525 
12 362 554 
13 315 575 
14 355 579 
15 325 585 
16 370 586 
17 390 590 
18 420 608 
19 410 610 
20 383 616 
21 315 618 
22 267 623 
23 420 627 
24 300 630 
25 410 635 
26 220 640 
27 403 648 
28 350 650 
29 390 655 
30 385 662 
31 470 663 
32 322 677 
33 540 680 
34 433 690 
35 295 695 
36 340 695 
37 500 695 
38 450 720 
39 415 721 
40 540 730 
41 360 731 
42 450 733 
43 395 745 
44 430 751 
45 332 752 
46 397 752 
47 446 769 
48 480 773 
49 352 773 
50 410 775 
51 380 785 
52 610 788 
53 530 790 
54 360 795 
55 305 801 
> ldpt<-log(DESPT) 
> regdalim<-lm(DALIM~ldpt) 
> regdalim 
 
Call: 
lm(formula = DALIM ~ ldpt) 
 
Coefficients: 
(Intercept) ldpt 
 -1283.9 257.3 
 
> anova(regdalim) 
Analysis of Variance Table 
 
Response: DALIM 
 Df Sum Sq Mean Sq F value Pr(>F) 
ldpt 1 141697 141697 32.064 6.201e-07 *** 
Residuals 53 234219 4419 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
> summary(regdalim) 
 
Call: 
lm(formula = DALIM ~ ldpt) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-158.43 -43.42 5.61 34.50 178.05 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) -1283.91 292.81 -4.385 5.54e-05 *** 
ldpt 257.27 45.43 5.662 6.20e-07 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 66.48 on 53 degrees of freedom 
Multiple R-squared: 0.3769, Adjusted R-squared: 0.3652 
F-statistic: 32.06 on 1 and 53 DF, p-value: 6.201e-07 
 
> plot(DESPT,DALIM,xlab="Despesas totais (em rúpias)",ylab="Despesas 
com alimentação (em rúpias)") 
 
Qual a interpretação? 
 
2.4. Modelos Recíprocos 
 
Os modelos recíprocos assumem a seguinte forma: 
 
 
Como cita Gujarati e Porter (2011), embora o modelo não seja linear na 
variável X,porém, é linear em β1 e β2, portanto, é um modelo de regressão linear. 
Ainda citando Gujarati e Porter (2011), este modelo sugere que, quando X 
aumenta indefinidamente, o termo β2(1/X) tende a zero, e Y aproxima-se do valor-limite 
ou assintótico β1. 
Vamos fazer um exemplo no R, para termos conhecimento dos comandos 
necessários: 
 
> fec<-read.csv2("FEC.csv",dec=".") #chamando a base de dados; 
> attach(fec) 
> fec 
 MI TAF PNB TFT 
1 128 37 1870 6.66 
2 204 22 130 6.15 
3 202 16 310 7.00 
4 197 65 570 6.25 
5 96 76 2050 3.81 
6 209 26 200 6.44 
7 170 45 670 6.19 
8 240 29 300 5.89 
9 241 11 120 5.89 
10 55 55 290 2.36 
11 75 87 1180 3.93 
12 129 55 900 5.99 
13 24 93 1730 3.50 
14 165 31 1150 7.41 
15 94 77 1160 4.21 
16 96 80 1270 5.00 
17 148 30 580 5.27 
18 98 69 660 5.21 
19 161 43 420 6.50 
20 118 47 1080 6.12 
21 269 17 290 6.19 
22 189 35 270 5.05 
23 126 58 560 6.16 
24 12 81 4240 1.80 
25 167 29 240 4.75 
26 135 65 430 4.10 
27 107 87 3020 6.66 
28 72 63 1420 7.28 
29 128 49 420 8.12 
30 27 63 19830 5.23 
31 152 84 420 5.79 
32 224 23 530 6.50 
33 142 50 8640 7.17 
34 104 62 350 6.60 
35 287 31 230 7.00 
36 41 66 1620 3.91 
37 312 11 190 6.70 
38 77 88 2090 4.20 
39 142 22 900 5.43 
40 262 22 230 6.50 
41 215 12 140 6.25 
42 246 9 330 7.10 
43 191 31 1010 7.10 
44 182 19 300 7.00 
45 37 88 1730 3.46 
46 103 35 780 5.66 
47 67 85 1300 4.82 
48 143 78 930 5.00 
49 83 85 690 4.74 
50 223 33 200 8.49 
51 240 19 450 6.50 
52 312 21 280 6.50 
53 12 79 4430 1.69 
54 52 83 270 3.25 
55 79 43 1340 7.17 
56 61 88 670 3.52 
57 168 28 410 6.09 
58 28 95 4370 2.86 
59 121 41 1310 4.88 
60 115 62 1470 3.89 
61 186 45 300 6.90 
62 47 85 3630 4.10 
63 178 45 220 6.09 
64 142 67 560 7.20 
 
> invpnb=1/PNB #gerando a nova variável; 
 
> regfe<-lm(MI~invpnb) #comando para a regressão 
 
 
 
> regfe 
 
Call: 
lm(formula = MI ~ invpnb) 
 
Coefficients: 
(Intercept) invpnb 
 81.79 27273.17 
 
> anova(regfe) 
Analysis of Variance Table 
 
Response: MI 
 Df Sum Sq Mean Sq F value Pr(>F) 
invpnb 1 166947 166947 52.613 7.821e-10 *** 
Residuals 62 196731 3173 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
> summary(regfe) 
 
Call: 
lm(formula = MI ~ invpnb) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-130.806 -36.410 2.871 31.686 132.801 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 81.79 10.83 7.551 2.38e-10 *** 
invpnb 27273.17 3760.00 7.254 7.82e-10 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 56.33 on 62 degrees of freedom 
Multiple R-squared: 0.4591, Adjusted R-squared: 0.4503 
F-statistic: 52.61 on 1 and 62 DF, p-value: 7.821e-10 
 
> plot(invpnb,MI, xlab="Produto Nacional Bruto per 
capita",ylab="Mortalidade Infantil",abline(lm(MI~invpnb),col="red")) 
 
 
Qual a sua interpretação? 
2.5. Teste de Chow 
Este teste encontra-se no capítulo 8 do livro de Gujarati e Porter (2011, p. 267), 
porém, é um assunto interessante a já ser tratado. O propósito deste teste é verificar se 
há quebra estrutural, por exemplo, tentar visualizar a diferença na função poupança da 
economia americana no período de 1970 -1981 e 1982 – 1995, neste caso, estaremos 
considerando duas regressões para a função poupança em relação à renda nos períodos 
indicados. 
Para aplicar este teste com auxílio do software R, antes porém, temos de 
carregar o pacote gap, após, podemos fazer os seguintes comandos: 
 
> pr1<-read.csv2("PR1.csv",dec=".") #chamando a base de dados de 
1970-1981. 
 
> attach(pr1) 
> pr1 
 ANO Y1 X1 
1 1970 61.0 727.1 
2 1971 68.6 790.2 
3 1972 63.6 855.3 
4 1973 89.6 965.0 
5 1974 97.6 1054.2 
6 1975 104.4 1159.2 
7 1976 96.4 1273.0 
8 1977 92.5 1401.4 
9 1978 112.6 1580.1 
10 1979 130.1 1769.5 
11 1980 161.8 1973.3 
12 1981 199.1 2200.2 
 
> pr2<-read.csv2("PR2.csv",dec=".") #chamando a base de dados de 
1970-1981. 
 
> attach(pr2) 
> pr2 
 ANO Y2 X2 
1 1982 205.5 2347.3 
2 1983 167.0 2522.4 
3 1984 235.7 2810.0 
4 1985 206.2 3002.0 
5 1986 196.5 3187.6 
6 1987 168.4 3363.1 
7 1988 189.1 3640.8 
8 1989 187.8 3894.5 
9 1990 208.7 4166.8 
10 1991 246.4 4343.7 
11 1992 272.6 4613.7 
12 1993 214.4 4790.2 
13 1994 189.4 5021.7 
14 1995 249.3 5320.8 
 
> chow.test(Y1,X1,Y2,X2) #Comando para o teste de Chow 
 F value d.f.1 d.f.2 P value 
1.069006e+01 2.000000e+00 2.200000e+01 5.707573e-04 
3. MODELOS DE REGRESSÃO COM VARIÁVEIS BINÁRIAS (dummies) 
 
As variáveis binárias, ou dummies, são essenciais quando queremos fazer 
análises com dados quantitativos e qualitativos. Qualitativos, poderíamos considerar o 
caso de diferenças de regiões, gênero, raça, escolaridade, religião, entre outos. 
Desta forma, com auxílio destas variáveis binárias, podemos fazer inferências 
estatísticas apuradas sobre determinados eventos. 
Considere o seguinte exemplo: 
Queremos fazer uma comparação no comportamento do PIB per capita em 
relação ao emprego na Indústria de Transformação nas regiões Norte Central e Oeste do 
Estado do Paraná no ano de 2010 à nível municipal. 
Para isso podemos agir de duas formas, primeiro, estimando uma regressão 
para a região Norte Central e outra para a região Oeste do Paraná, e compararmos seus 
resultados. Outra forma seria utilizar o artifício da variável Dummie. 
Neste exemplo, utilizaremos esta segunda forma, e a nossa variável qualitativa 
(D), irá se referir às regiões, então, antes de qualquer coisa, o pesquisador deve ter a 
seguinte informação, quais são os municípios que fazem parte das respectivas regiões, 
montando uma coluna indicando qual região pertence determinado município, assim, a 
base de dados a ser inserida no software assumirá a seguinte forma: 
 
> pib<-read.csv2("PIB.csv",dec=".") 
> attach(pib) 
> pib 
 MESO Localidade PIBpc EMPIND 
1 norte central Alvorada do Sul 11060 144 
2 norte central Ângulo 13695 32 
3 norte central Apucarana 13653 14555 
4 norte central Arapongas 20559 16958 
5 norte central Arapuã 10945 13 
6 norte central Ariranha do Ivaí 13792 0 
7 norte central Astorga 13094 2247 
8 norte central Atalaia 15109 151 
9 norte central Bela Vista do Paraíso 15276 1082 
10 norte central Bom Sucesso 9224 92 
11 norte central Borrazópolis 12268 87 
12 norte central Cafeara 13441 23 
13 norte central Califórnia 8172 483 
14 norte central Cambé 14879 8048 
15 norte central Cambira 14439 568 
16 norte central Cândido de Abreu 9082 223 
17 norte central Centenário do Sul 8418 145 
18 norte central Colorado 19584 6612 
19 norte central Cruzmaltina 15850 22 
20 norte central Doutor Camargo 12819 168 
21norte central Faxinal 13229 576 
22 norte central Floraí 18182 567 
23 norte central Floresta 12572 328 
24 norte central Florestópolis 11615 1906 
25 norte central Flórida 11625 125 
26 norte central Godoy Moreira 7976 5 
27 norte central Grandes Rios 8715 75 
28 norte central Guaraci 9960 132 
29 norte central Ibiporã 18741 3297 
30 norte central Iguaraçu 13619 262 
31 norte central Itaguajé 9610 4 
32 norte central Itambé 14379 120 
33 norte central Ivaiporã 11063 410 
34 norte central Ivatuba 11055 52 
35 norte central Jaguapitã 28315 2900 
36 norte central Jandaia do Sul 13661 2304 
37 norte central Jardim Alegre 9271 47 
38 norte central Kaloré 11130 68 
39 norte central Lidianópolis 9071 10 
40 norte central Lobato 28003 513 
41 norte central Londrina 19612 28305 
42 norte central Lunardelli 8804 74 
43 norte central Lupionópolis 11144 156 
44 norte central Mandaguaçu 11809 964 
45 norte central Mandaguari 14082 3548 
46 norte central Manoel Ribas 12095 108 
47 norte central Marialva 15218 2282 
48 norte central Marilândia do Sul 16266 126 
49 norte central Maringá 23140 30031 
50 norte central Marumbi 8559 329 
51 norte central Mauá da Serra 14474 569 
52 norte central Miraselva 10740 0 
53 norte central Munhoz de Melo 10464 199 
54 norte central Nossa Senhora das Graças 9584 10 
55 norte central Nova Esperança 14196 1395 
56 norte central Nova Tebas 7910 2 
57 norte central Novo Itacolomi 9684 125 
58 norte central Ourizona 14132 83 
59 norte central Paiçandu 7094 1823 
60 norte central Pitangueiras 13854 46 
61 norte central Porecatu 11308 1451 
62 norte central Prado Ferreira 13629 246 
63 norte central Presidente Castelo Branco 11495 89 
64 norte central Primeiro de Maio 13008 248 
65 norte central Rio Bom 9932 47 
66 norte central Rio Branco do Ivaí 11512 56 
67 norte central Rolândia 22101 10155 
68 norte central Rosário do Ivaí 8630 28 
69 norte central Sabáudia 19834 416 
70 norte central Santa Fé 11236 973 
71 norte central Santa Inês 13615 18 
72 norte central Santo Inácio 35383 822 
73 norte central São João do Ivaí 11694 30 
74 norte central São Jorge do Ivaí 23713 95 
75 norte central São Pedro do Ivaí 18606 701 
76 norte central Sarandi 8479 4021 
77 norte central Sertanópolis 18131 892 
78 norte central Tamarana 12031 318 
79 norte central Uniflor 10534 139 
80 oeste Anahy 14819 34 
81 oeste Assis Chateaubriand 17870 563 
82 oeste Boa Vista da Aparecida 8220 173 
83 oeste Braganey 13182 53 
84 oeste Cafelândia 29329 5509 
85 oeste Campo Bonito 16276 24 
86 oeste Capitão Leônidas Marques 32978 1030 
87 oeste Cascavel 18139 18684 
88 oeste Catanduvas 13968 131 
89 oeste Céu Azul 25469 943 
90 oeste Corbélia 16576 401 
91 oeste Diamante do Sul 8791 0 
92 oeste Diamante D'Oeste 10258 82 
93 oeste Entre Rios do Oeste 22956 176 
94 oeste Formosa do Oeste 14071 164 
95 oeste Foz do Iguaçu 26399 1812 
96 oeste Guaíra 13326 1009 
97 oeste Guaraniaçu 12290 142 
98 oeste Ibema 11424 344 
99 oeste Iguatu 14034 63 
100 oeste Iracema do Oeste 14773 45 
101 oeste Itaipulândia 14534 805 
102 oeste Jesuítas 13603 191 
103 oeste Lindoeste 13531 35 
104 oeste Marechal Cândido Rondon 22331 3315 
105 oeste Maripá 28425 328 
106 oeste Matelândia 16655 3405 
107 oeste Medianeira 17485 4932 
108 oeste Mercedes 17616 236 
109 oeste Missal 14905 320 
110 oeste Nova Aurora 17349 381 
111 oeste Nova Santa Rosa 17252 489 
112 oeste Ouro Verde do Oeste 12775 120 
113 oeste Palotina 33131 3824 
114 oeste Pato Bragado 13306 618 
115 oeste Quatro Pontes 19546 377 
116 oeste Ramilândia 11098 16 
117 oeste Santa Helena 15110 1133 
118 oeste Santa Lúcia 12500 190 
119 oeste Santa Tereza do Oeste 17895 555 
120 oeste Santa Terezinha de Itaipu 9493 487 
121 oeste São José das Palmeiras 11208 17 
122 oeste São Miguel do Iguaçu 20195 1238 
123 oeste São Pedro do Iguaçu 13493 22 
124 oeste Serranópolis do Iguaçu 16145 75 
125 oeste Terra Roxa 19056 1946 
126 oeste Toledo 20571 16388 
127 oeste Três Barras do Paraná 13896 427 
128 oeste Tupãssi 19394 158 
129 oeste Vera Cruz do Oeste 12118 73 
 
 
Agora, com um comando de lógica, vamos gerar a variável D, assumindo que, 
D = 1; para a mesorregião norte central, 
D = 0, para a mesorregião oeste. 
Logo, a mesorregião oeste é a região de controle. 
 
 
 
> D<-1*(MESO=="norte central") #Gerando a variável dummie 
> D 
 [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
 [38] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
 [75] 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
[112] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
 
Com base neste resultado, podemos enfim, fazer a análise de regressão. 
O primeiro modelo a ser analisado será o chamado ANOVA, em que o mesmo 
toma a seguinte forma: 
 
No nosso exemplo, Yi = PIBpc; Di = variável qualitativa. 
Assim, queremos com esse modelo apenas verificar se existe diferenças entre o 
PIB nas respectivas regiões. 
Assim, a forma de análise deste modelo será: 
O PIB per capita médio na mesorregião norte central será: 
E(Yi\Di = 1) = β1 + β2 
 
O PIB per capita médio na mesorregião oeste será: 
E(Yi\Di = 0) = β1 
 
E para saber sobre a significância estatística, basta fazer as análises com base 
no teste t e teste F convencionais. 
 
> regd1<-lm(PIBpc~D) 
> regd1 
 
Call: 
lm(formula = PIBpc~ D) 
 
Coefficients: 
(Intercept) D 
 16795 -3189 
 
> anova(regd1) 
Analysis of Variance Table 
 
Response: PIBpc 
 Df Sum Sq Mean Sq F value Pr(>F) 
D 1 311430868 311430868 10.924 0.001234 ** 
Residuals 127 3620767996 28509984 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
 
 
 
> summary(regd1) 
 
Call: 
lm(formula = PIBpc ~ D) 
 
Residuals: 
 Min 1Q Median 3Q Max 
 -8575 -3469 -1338 1344 21777 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 16795.3 755.1 22.242 < 2e-16 *** 
D -3189.2 964.9 -3.305 0.00123 ** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 5339 on 127 degrees of freedom 
Multiple R-squared: 0.0792, Adjusted R-squared: 0.07195 
F-statistic: 10.92 on 1 and 127 DF, p-value: 0.001234 
 
Com base nesses resultados, como você analisaria esta regressão? 
 
Agora, iremos utilizar o mesmo exemplo com base em um outro modelo, o 
chamado ANCOVA, que são uma extensão dos modelos ANOVA no sentido de que 
fornecem um método de controle estatístico dos efeitos de regressores quantitativos, 
chamados covariáveis ou variáveis de controle, em um modelo que inclui tanto 
regressores quantitativos quanto qualitativos (dummies). 
Assim, a forma funcional será: 
 
Seguindo a mesa denominação conforme o exemplo anterior: 
Yi = PIB per capita; D = variável binária indicando qual região (D = 1 para 
norte central, D = 0 para o oeste), X = emprego na indústria de transformação. 
Como a variável D já está determinada, conforme o exemplo anterior, aqui 
iremos apenas rodar a regressão da forma acima: 
 
> regd2<-lm(PIBpc~D+EMPIND) #modelo de regressão linear múltiplo 
> regd2 
 
Call: 
lm(formula = PIBpc ~ D + EMPIND) 
 
Coefficients: 
(Intercept) D EMPIND 
 16252.6836 -3376.9006 0.3692 
 
 
 
 
> anova(regd2) 
Analysis of Variance Table 
 
Response: PIBpc 
 Df Sum Sq Mean Sq F value Pr(>F) 
D 1 311430868 311430868 12.117 0.000687 *** 
EMPIND 1 382397155 382397155 14.879 0.000182 *** 
Residuals 126 3238370841 25701356 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
> summary(regd2) 
 
Call: 
lm(formula = PIBpc ~ D + EMPIND) 
 
Residuals: 
 Min 1Q Median 3Q Max 
 -8097 -3175 -1297 1388 22204 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 1.625e+04 7.306e+02 22.245 < 2e-16 *** 
D -3.377e+03 9.175e+02 -3.681 0.000343 *** 
EMPIND 3.692e-01 9.572e-02 3.857 0.000182 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 5070 on 126 degrees of freedom 
Multiple R-squared: 0.1764, Adjusted R-squared: 0.1634 
F-statistic: 13.5 on 2 and 126 DF, p-value: 4.881e-06 
 
Faça as suas analises. 
 
O próximo exemplo irá apresentar a funcionalidade das variáveis binárias para 
o teste de estabilidade estrutural, uma alternativa para o teste de Chow. Para tal, a forma 
funcional é da seguinte forma: 
 
 
Reparem no subscrito das variáveis, o t indica que estamos trabalhando com 
séries temporais. 
Então, Yt = Poupança, Dt = é a variável binária (D = 0 para o período que vai 
de 1970 até 1981 e D = 1 para o período de 1982 até 1995), Xt = Renda. 
Logo, a função poupança média no período 1970 – 1981 será: 
 
E para o período 1982 – 1995: 
 
 
Com o software R: 
> pr<-read.csv2("POUPREND.csv",dec=".") 
> attach(pr) 
> pr 
 ANO POUP RENDA 
1 1970 61.0 727.1 
2 1971 68.6 790.2 
3 1972 63.6 855.3 
4 1973 89.6 965.0 
5 1974 97.6 1054.2 
6 1975 104.4 1159.2 
7 1976 96.4 1273.0 
8 1977 92.5 1401.4 
9 1978 112.6 1580.1 
10 1979 130.1 1769.5 
11 1980 161.8 1973.3 
12 1981 199.1 2200.2 
13 1982 205.5 2347.3 
14 1983 167.0 2522.4 
15 1984 235.7 2810.0 
16 1985 206.2 3002.0 
17 1986 196.5 3187.6 
18 1987 168.4 3363.1 
19 1988 189.1 3640.8 
20 1989 187.8 3894.5 
21 1990 208.7 4166.8 
22 1991 246.4 4343.7 
23 1992 272.6 4613.7 
24 1993 214.4 4790.2 
25 1994 189.4 5021.7 
26 1995 249.3 5320.8 
 
> D<-1*(ANO>1981) 
> D 
 [1] 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
 
> DR<-D*RENDA 
> DR 
 [1] 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
[11] 0.0 0.0 2347.3 2522.4 2810.0 3002.0 3187.6 3363.1 3640.8 3894.5 
[21] 4166.8 4343.7 4613.7 4790.2 5021.7 5320.8 
 
> regpr<-lm(POUP~D+RENDA+DR) 
> regpr 
 
Call: 
lm(formula = POUP ~ D + RENDA + DR) 
 
Coefficients: 
(Intercept) D RENDA DR 
 1.01612 152.47855 0.08033 -0.06547 
 
 
> anova(regpr) 
Analysis of Variance Table 
 
Response: POUP 
 Df Sum Sq Mean Sq F value Pr(>F) 
D 1 69009 69009 128.768 1.154e-10 *** 
RENDA 1 10078 10078 18.805 0.0002652 *** 
DR 1 8993 8993 16.780 0.0004768 *** 
Residuals 22 11790 536 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
> summary(regpr) 
 
Call: 
lm(formula = POUP ~ D + RENDA + DR) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-38.729 -14.777 -1.398 11.689 50.535 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 1.01612 20.16483 0.050 0.960266 
D 152.47855 33.08237 4.609 0.000136 *** 
RENDA 0.08033 0.01450 5.541 1.44e-05 *** 
DR -0.06547 0.01598 -4.096 0.000477 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 23.15 on 22 degrees of freedom 
Multiple R-squared: 0.8819, Adjusted R-squared: 0.8658 
F-statistic: 54.78 on 3 and 22 DF, p-value: 2.268e-10 
 
 
Agora, façam suas analises. 
 
Como situação final, iremos tratar do problema da Regressão Linear 
Segmentada. 
Como cita Gujarati e Porter (2011, p. 305), considere uma empresa hipotética 
que remunera seus representantes de vendas da seguinte forma: 
- ela paga comissões com base em vendas de modo que até certo nível, o nível 
meta, ou limiar, X*, há uma estrutura estocástica de comissões, e, para vendas acima 
desse ponto, paga outra comissão. 
Especificamente, pressupõe-se que a comissão de vendas aumente linearmente 
com as vendas até o limiar X*, após o qual continua a aumentar linearmente com as 
vendas, mas a uma taxa muito mais acentuada. 
A função de regressão a ser estimada para esta situação será: 
 
Segundo o exemplo 9.7 na página 307,considere a relação hipotética entre 
custo total e produção. Sabe-se que o custo total pode mudar seu coeficiente angular 
quando a produção atinge 5.500 unidades. 
Seja Y o custo total e X a produção, e X* = 5.500, aplicando-se a equação 
acima: 
 
> custo<-read.csv2("custo.csv",dec=".") 
> attach(custo) 
> custo 
 Y X 
1 256 1000 
2 414 2000 
3 634 3000 
4 778 4000 
5 1003 5000 
6 1839 6000 
7 2081 7000 
8 2423 8000 
9 2734 9000 
10 2914 10000 
 
> Xm<-5500 
 
> XM<-rep(Xm,10) 
> XM 
 [1] 5500 5500 5500 5500 5500 5500 5500 5500 5500 5500 
 
> DXM<-X-XM 
> DXM 
 [1] -4500 -3500 -2500 -1500 -500 500 1500 2500 3500 4500 
 
> D<-1*(X>5500)> D 
 [1] 0 0 0 0 0 1 1 1 1 1 
 
> DDXM<-DXM*D 
 
> regcust<-lm(Y~X+DDXM) 
> regcust 
 
Call: 
lm(formula = Y ~ X + DDXM) 
 
Coefficients: 
(Intercept) X DDXM 
 -145.7167 0.2791 0.0945 
 
> anova(regcust) 
Analysis of Variance Table 
 
Response: Y 
 Df Sum Sq Mean Sq F value Pr(>F) 
X 1 8787994 8787994 257.9053 8.82e-07 *** 
DDXM 1 44651 44651 1.3104 0.2899 
Residuals 7 238522 34075 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
> summary(regcust) 
 
Call: 
lm(formula = Y ~ X + DDXM) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-246.91 -132.01 19.15 116.81 262.71 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) -145.71667 176.73415 -0.824 0.436847 
X 0.27913 0.04601 6.067 0.000507 *** 
DDXM 0.09450 0.08255 1.145 0.289950 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 184.6 on 7 degrees of freedom 
Multiple R-squared: 0.9737, Adjusted R-squared: 0.9662 
F-statistic: 129.6 on 2 and 7 DF, p-value: 2.948e-06 
 
> plot(Y,DDXM,xlab="Produção",ylab="Custo Total") 
 
 
 
4. MULTICOLINEARIDADE 
 
Essa e as próximas 2 sessões referem-se ao relaxamento de algumas das 
hipóteses básicas do modelo clássico de regressão. O problema da multicolinearidade 
diretamente diz respeito à hipótese 8, isto é, não há colinearidade exata entre as 
variáveis X (estamos citando o caso de regressão múltipla), e indiretamente, conforme 
Gujarati e Porter (2011) citam, a hipótese 6, o número de observações (n) deve ser 
maior que o número de parâmetros a serem estimados. 
Nesta seção, iremos apenas demonstrar como fazer os cálculos dos parâmetros, 
bem como os testes, a questão teórica a respeito de cada um dos problemas deve ser 
visto em livros textos, e como foi citado anteriormente neste material, o livro de 
Gujarati e Porter (2011) é a base para todo o material exposto aqui. 
Sobre a multicolinearidade, a grosso modo, podemos dizer que é um problema 
geralmente encontrado em regressão múltiplas, e a presença da multicolinearidade em 
um regressão pode afetar consideravelmente as análises econômicas com base na 
regressão estimada. 
A questão que fica é, como saber se uma regressão está sofrendo com a 
multicolinearidade, quais testes devem ser feitos, e o que fazer no caso de termos uma 
regressão que ocorra o problema da multicolinearidade? 
Estas são algumas questões que tentaremos responder, com a ajuda, é claro, do 
livro texto, onde que a parte teórica sobre assunto se encontra. 
 
4.1. Detecção da multicolinearidade 
Partimos então para a questão prática, para detectarmos a presença da 
multicolinearidade em regressões múltiplas, podemos seguir alguns dos procedimentos 
expostos na literatura sobre o assunto. Algumas regras são suficientes para determinar 
se existe ou não tal problema. Vamos citar algumas dessas regras, conforme está 
exposto em Gujarati e Porter (2011): 
- R² alto, mas poucas razões t significativas; 
- Altas correlações entre pares de regressores (correlações entre X2 e X3, por 
exemplo); 
- Regressões auxiliares (fazendo regressões entre as variáveis explicativas, 
“regressores”); 
- Verificando o fator de inflação da variância (VIF); 
- Diagrama de dispersão entre as variáveis explicativas. 
Com base nestas regras, iremos aplicá-las em um exemplo, com o auxílio do 
software R. 
 
Exemplo: 
 
Neste exemplo, iremos fazer uso dos dados do exemplo 10.1 da página 341 de 
Gujarati e Porter (2011), em que pede-se para ser estimada a função consumo (Y) com 
base nos dados sobre a Renda (X2) e a Riqueza (X3). Teoricamente, podemos esperar 
que acontecesse alta correlação entre as variáveis explicativas, conforme a natureza 
destas variáveis. 
Vamos inserir os dados no software e começarmos nossas análises; 
 
> multic<-read.csv2("multic.csv",dec=".") 
> attach(multic) 
> multic 
 Y X2 X3 
1 70 80 810 
2 65 100 1009 
3 90 120 1273 
4 95 140 1425 
5 110 160 1633 
6 115 180 1876 
7 120 200 2052 
8 140 220 2201 
9 155 240 2435 
10 150 260 2686 
 
Agora, vamos estimar a regressão com base nestes dados, e já observamos que se trata 
de uma regressão múltipla, conforme a primeira regra básica citada, vamos observar o 
R² e as estatísticas t, para termos alguma ideia do que estamos falando. 
 
> regm<-lm(Y~X2+X3) 
> regm 
 
Call: 
lm(formula = Y ~ X2 + X3) 
 
Coefficients: 
(Intercept) X2 X3 
 24.77473 0.94154 -0.04243 
 
> summary(regm) 
 
Call: 
lm(formula = Y ~ X2 + X3) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-11.1120 -4.4767 0.9206 4.1744 7.5844 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 24.77473 6.75250 3.669 0.00798 ** 
X2 0.94154 0.82290 1.144 0.29016 
X3 -0.04243 0.08066 -0.526 0.61509 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 6.808 on 7 degrees of freedom 
Multiple R-squared: 0.9635, Adjusted R-squared: 0.9531 
F-statistic: 92.4 on 2 and 7 DF, p-value: 9.286e-06 
 
Com base nos resultados apresentados, podemos observar que o R² é alto, R²: 
0,9635; porém, as estatísticas t não se mostram significativas, observe o p-valor da 
estatística t dos parâmetros da regressão. 
Nesse caso, podemos estar com problema de multicolinearidade. 
Vamos então, com base nestes dados, seguir as regras básicas. 
Agora, vamos fazer um gráfico de dispersão entre as variáveis explicativas, X2 
e X3. 
 
> plot(X2,X3,xlab="Renda",ylab="Riqueza") 
 
 
Com base no gráfico acima, podemos observar que existe uma correlação 
positiva entre as variáveis Riqueza e Renda, indicando que isto pode estar afetando as 
análises sobre a regressão. 
Outra regra citada diz respeito à alta correlação entre as variáveis explicativas, 
assim sendo, fazemos o teste de correlação entre estas variáveis. 
 
> cor.test(X2,X3) 
 
 Pearson's product-moment correlation 
 
data: X2 and X3 
t = 62.0405, df = 8, p-value = 5.065e-12 
alternative hypothesis: true correlation is not equal to 0 
95 percent confidence interval: 
 0.9954426 0.9997641 
sample estimates: 
 cor 
0.9989624 
 
Podemos observar que estas variáveis são altamente correlacionadas, observe o 
coeficiente de correlação, 0,99896, isto é, 99,896%. Só com base nestes testes que 
fizemos seria o suficiente para termos certeza da presença da multicolinearidade, mas 
iremos um pouco mais além, fazendo os demais testes. 
O próximo no entanto, será a regressão auxiliar, isto é, estimando uma 
regressão da Riqueza sobre a Renda, tentando inferir na relação entre estas variáveis. 
 
> regx3x2<-lm(X3~X2) 
> regx3x2 
 
Call: 
lm(formula = X3 ~ X2) 
 
Coefficients: 
(Intercept) X2 
 7.545 10.191 
 
> summary(regx3x2) 
 
Call: 
lm(formula = X3 ~ X2) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-48.545 -16.432 -7.182 23.182 42.545 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 7.5455 29.4758 0.256 0.804 
X2 10.1909 0.1643 62.040 5.06e-12 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 29.84 on 8 degreesof freedom 
Multiple R-squared: 0.9979, Adjusted R-squared: 0.9977 
F-statistic: 3849 on 1 and 8 DF, p-value: 5.065e-12 
 
Conforme os resultados, podemos observar que existe uma forte relação entre 
estas variáveis, O R² é alto, e o teste t é altamente significativo. 
Por fim, e não menos importante, faremos o teste do Fator de inflação de 
variância (FIV), muito utilizado em pesquisas empíricas, para realizar tal teste, o 
procedimento é o seguinte: 
Como já temos a correlação entre as variáveis independentes, X2 e X3, aplica-
se a fórmula: 
 
21
1
ijr
FIV


 
 
No R, podemos fazer o seguinte comando: 
> cor.test(X2,X3) 
 
 Pearson's product-moment correlation 
 
data: X2 and X3 
t = 62.0405, df = 8, p-value = 5.065e-12 
alternative hypothesis: true correlation is not equal to 0 
95 percent confidence interval: 
 0.9954426 0.9997641 
sample estimates: 
 cor 
0.9989624 
Conforme o teste de correlação entre as variáveis X2 e X3, a correlação entre 
ambas são r2,3
2 
= 0,9989624, então: 
 
> r23<-0.9989624 
> vif<-(1/(1-(r23^2))) 
> vif 
[1] 482.1314 
 
Conforme o livro de Gujarati e Porter (2011), para analisarmos os resultados 
do VIF, quanto mais alto for este valor, maior a indicação da presença da 
multicolinearidade, ainda como os autores sugerem, como regra prática, se o VIF for 
maior que 10, essa variável será tida como altamente colinear. 
Com tudo isso, podemos concluir que nosso modelo está sofrendo o problema 
da multicolinearidade. 
Para as medidas corretivas, ver o livro texto Gujarati e Porter (2011, p.349). 
Porém, convém ressaltar, que o problema da colinearidade é um aspecto da 
amostra, não tendo problemas com a população, alguns autores sugerem quando houver 
este problema, mas, que não comprometa as análises, por exemplo, pode ser constatado 
a presença da multicolinearidade, porém, os teste t ainda permanecerem significativos, 
não é necessário fazer nada para corrigir, visto que se o objetivo for apenas a previsão. 
Quando a situação se agrava, isto é, os parâmetros não são significativos, os 
autores sugerem, a princípio, ter informações a respeito das variáveis explicativas 
incluídas no modelo, com base em pesquisa na literatura sobre o assunto, artigos 
científicos publicados, e a própria teoria, tais informações ao suficiente para indicar a 
presença da correlação entre tais variáveis explicativas, podendo o pesquisador prever a 
presença da multicolinearidade e evitar a mesma. 
Os autores também sugerem a combinação de dados de corte transversal e de 
séries temporais, também a exclusão de variáveis, entre outros procedimentos. 
 
5. HETEROCEDASTICIDADE 
 
A heterocedasticidade é uma violação da hipótese 4 do modelo clássico de 
regressão, em que tal hipótese afirma que a variância do termo de erro é homocedástica, 
isto é, a variância é constante, conforme a distribuição normal de probabilidade, e 
quando um modelo sofre de heterocedasticidade, estamos afirmando que a variância não 
é constante. 
A heterocedasticidade é bem comum em modelos que consideram dados de 
corte transversal, dada as diferenças entre as unidades que fazem parte da amostra, por 
exemplo, fazer um estudo sobre o comportamento do PIB municipal em relação ao 
emprego em atividades industriais de cada município no Estado do Paraná no ano de 
2010, sendo que cada município possui um porte, nesses dados podem conter os 
chamados outliers, outro exemplo seria a analise da remuneração média dos 
funcionários em setores de produção bens não duráveis, porém, existem tamanhos 
diferentes de empresas que podem influenciar significativamente a remuneração destes 
trabalhadores, e consequentemente podendo gerar o problema da heterocedasticidade. 
Quando um modelo está sofrendo com o problema da heterocedasticidade, a 
literatura sobre o tema cita que os betas estimados pelo método MQO deixam de ser os 
melhores estimadores lineares não viesados, pois, β2 deixa de ser não tendencioso e 
consistente, e quando a variância populacional é conhecida, sugere que se faça uso dos 
betas estimados pelo método MQG (mínimos quadrados generalizados). 
Porém, esta seção irá ter como principal objetivo, identificar a presença da 
heterocedasticidade, e sugerir algumas formas de correção quando houver. 
 
5.1. Detecção da heterocedasticidade 
 
Para se detectar a heterocedasticidade, existem os métodos informais, bem 
como os formais, iremos aqui apresentar alguns destes métodos. 
Primeiramente vamos estimar uma regressão com dados de corte transversal, e 
após, iremos demonstrar os métodos com uso do software R. 
 
a. Teste Informal 
 
> crd<-read.csv2("consrend.csv",dec=".") 
> attach(crd) 
> crd 
 Y X 
1 55 80 
2 65 100 
3 70 85 
4 80 110 
5 79 120 
6 84 115 
7 98 130 
8 95 140 
9 90 125 
10 75 90 
11 74 105 
12 110 160 
13 113 150 
14 125 165 
15 108 145 
16 115 180 
17 140 225 
18 120 200 
19 145 240 
20 130 185 
21 152 220 
22 144 210 
23 175 245 
24 180 260 
25 135 190 
26 140 205 
27 178 265 
28 191 270 
29 137 230 
30 189 250 
 
> reg<-lm(Y~X) 
> reg 
 
Call: 
lm(formula = Y ~ X) 
 
Coefficients: 
(Intercept) X 
 9.2903 0.6378 
 
> summary(reg) 
 
Call: 
lm(formula = Y ~ X) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-18.9808 -4.8798 0.8808 6.1226 20.2636 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 9.29031 5.23139 1.776 0.0866 . 
X 0.63778 0.02862 22.287 <2e-16 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 9.183 on 28 degrees of freedom 
Multiple R-squared: 0.9466, Adjusted R-squared: 0.9447 
F-statistic: 496.7 on 1 and 28 DF, p-value: < 2.2e-16 
 
#Gerando os residuos da regressão 
> residuals(reg) 
 1 2 3 4 5 6 
 -5.31307205 -8.06876320 6.49800516 0.55339122 -6.82445435 1.36446843 
 7 8 9 10 11 12 
 5.79770007 -3.58014551 0.98662286 8.30908238 -2.25768599 -1.33583666 
 13 14 15 16 17 18 
 8.04200892 10.47524055 6.23093171 -9.09152781 -12.79183290 -16.84721896 
 19 20 21 22 23 24 
-17.35860127 2.71954940 2.39708989 0.77493546 9.45247594 4.88570758 
 25 26 27 28 29 30 
 4.53062661 -0.03614175 -0.30321521 9.50786200 -18.98075569 20.26355316 
#Comando para deixá-los em valores absolutos, e a partir do mesmo 
elevá-los ao quadrado. 
> abres<-abs(residuals(reg)) 
 
> abres 
 1 2 3 4 5 6 
 5.31307205 8.06876320 6.49800516 0.55339122 6.82445435 1.36446843 
 7 8 9 10 11 12 
 5.79770007 3.58014551 0.98662286 8.30908238 2.25768599 1.33583666 
 13 14 15 16 17 18 
 8.04200892 10.47524055 6.23093171 9.09152781 12.79183290 16.84721896 
 19 20 21 22 23 24 
17.35860127 2.71954940 2.39708989 0.77493546 9.45247594 4.88570758 
 25 26 27 28 29 30 
 4.53062661 0.03614175 0.30321521 9.50786200 18.98075569 20.26355316#Consumo Estimado com base na regressão 
> Ye<-predict(reg) 
> Ye 
 1 2 3 4 5 6 7 8 
 60.31307 73.06876 63.50199 79.44661 85.82445 82.63553 92.20230 98.58015 
 9 10 11 12 13 14 15 16 
 89.01338 66.69092 76.25769 111.33584 104.95799 114.52476 101.76907 124.09153 
 17 18 19 20 21 22 23 24 
152.79183 136.84722 162.35860 127.28045 149.60291 143.22506 165.54752 175.11429 
 25 26 27 28 29 30 
130.46937 140.03614 178.30322 181.49214 155.98076 168.73645 
 
#O método informal seria fazer um gráfico de dispersão entre os 
resíduos ao quadrado e o consumo estimado. 
 
> plot(Ye,abres2,xlab="Consumo estimado",ylab="Resíduos ao quadrado") 
 
 
 
Com base no gráfico acima, tentamos observar alguma relação entre os 
resíduos ao quadrado e o consumo estimado. 
Se estivermos considerando um modelo de regressão múltipla, podemos fazer o 
gráfico com base nos valores das variáveis explicativas. 
Para identificar o padrão de comportamento no gráfico e decidir, veja a figura 
11.8 na página 382 de Gujarati e Porter (2011). 
 
b. Métodos formais 
- Teste de Park: 
O teste de Park sugere que a variancia σi
2
 seja uma função da variável 
explanatória Xi, assumindo a seguinte forma funcional: 
 
 
Ou 
 
 
Sendo que σi
2
 não é conhecido, pode-se utilizar a proxy ui
2
: 
 
 
Ou 
 
Se o β for significativo, sugere então que a heterocedasticidade está presente 
nos dados. 
 
> lnu2<-log(abres2) 
> lnX<-log(X) 
> regu2X<-lm(lnu2~lnX) 
> regu2X 
 
Call: 
lm(formula = lnu2 ~ lnX) 
 
Coefficients: 
(Intercept) lnX 
 1.0140 0.3359 
 
 
> summary(regu2X) 
 
Call: 
lm(formula = lnu2 ~ lnX) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-9.4425 -1.0450 0.9197 1.6500 3.1491 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 1.0140 7.2749 0.139 0.890 
lnX 0.3359 1.4252 0.236 0.815 
 
 
Residual standard error: 2.843 on 28 degrees of freedom 
Multiple R-squared: 0.00198, Adjusted R-squared: -0.03366 
F-statistic: 0.05554 on 1 and 28 DF, p-value: 0.8154 
 
Com base neste resultado, podemos dizer que pode não haver o problema da 
heterocedasticidade, porém existem críticas a respeito deste método. Assim, vamos 
fazer outro teste bem conceituado na literatura, o Teste de Breusch-Pagan-Godfrey. 
 
- Teste de Breusch-Pagan-Godfrey 
 
Para realizar tal teste no R, deve-se carregar o pacote lmteste. Feito isso, os 
comandos para o teste é: 
 
> bptest(reg) 
 
 studentized Breusch-Pagan test 
 
data: reg 
BP = 5.2722, df = 1, p-value = 0.02167 
 
Tal teste segue a distribuição χ² com (m-1) graus de liberdade, onde que m é o 
número de parâmetros no modelo, neste caso, m = 2, aí temos que, se BP > χ² no nível 
de significância escolhido, podemos rejeitar a hipótese da homocedasticidade, se BP < 
χ² no nível de significância escolhido, podemos aceitar tal hipótese. Podemos decidir 
por meio do p-valor que é destacado no teste, por exemplo, o p-valor aqui foi de 
0,02167, ou 2,167%, podemos dizer que o teste é significativo à 5%, porém, não é 
significante à 1%. 
Sobre o processo de correção, veja Gujarati e Porter (2011, p. 393-404). 
 
6. AUTOCORRELAÇÃO 
 
Como citam Gujarati e Porter (2011), a autocorrelação pode ser definida como 
“correlação entre integrantes de séries de observações ordenadas no tempo [como as 
séries temporais] ou no espaço [como nos dados de corte transversal]”. No contexto da 
regressão, o modelo clássico de regressão linear pressupõe que essa autocorrelação 
não existe nos termos de erro ui. Simbolicamente: 
 
 
Isto é, o modelo clássico pressupõe que o termo de erro relacionado a qualquer 
uma das observações não é influenciado pelo termo de erro de qualquer outra 
observação. 
Porém, se for verificada que há esta dependência, teremos a chamada 
autocorrelação, simbolicamente: 
 
 
Nesta situação, um acontecimento no período presente pode afetar o período 
futuro, por exemplo, se ocorrer uma greve de funcionários de alguma empresa agora, irá 
afetar a produção desta mesma empresa em períodos posteriores. 
Maiores discussões sobre a natureza ou questões teóricas da autocorrelação, 
ver Gujarati e Porter (2011, p.415). 
A priori, vamos estimar uma equação, conforme o exemplo da tabela 12.4 na 
página 430, do livro texto, a partir de então, iremos aplicar alguns testes para obter 
informação a respeito da presença ou não da autocorrelação, e tentar corrigir tal 
problema, se por um acaso houver a autocorrelação. 
No livro, é destacado dois modelos a serem estimados: 
Modelo 1: 
 
Modelo 2: 
 
 
> rp<-read.csv2("remprod.csv",dec=".") 
> attach(rp) 
> rp 
 ANO Y X 
1 1960 60.8 48.9 
2 1961 62.5 50.6 
3 1962 64.6 52.9 
4 1963 66.1 55.0 
5 1964 67.7 56.8 
6 1965 69.1 58.8 
7 1966 71.7 61.2 
8 1967 73.5 62.5 
9 1968 76.2 64.7 
10 1969 77.3 65.0 
11 1970 78.8 66.3 
12 1971 80.2 69.0 
13 1972 82.6 71.2 
14 1973 84.3 73.4 
15 1974 83.3 72.3 
16 1975 84.1 74.8 
17 1976 86.4 77.1 
18 1977 87.6 78.5 
19 1978 89.1 79.3 
20 1979 89.3 79.3 
21 1980 89.1 79.2 
22 1981 89.3 80.8 
23 1982 90.4 80.1 
24 1983 90.3 83.0 
25 1984 90.7 85.2 
26 1985 92.0 87.1 
27 1986 94.9 89.7 
28 1987 95.2 90.1 
29 1988 96.5 91.5 
30 1989 95.0 92.4 
31 1990 96.2 94.4 
32 1991 97.4 95.9 
33 1992 100.0 100.0 
34 1993 99.7 100.4 
35 1994 99.0 101.3 
36 1995 98.7 101.5 
37 1996 99.4 104.5 
38 1997 100.5 106.5 
39 1998 105.2 109.5 
40 1999 108.0 112.8 
41 2000 112.0 116.1 
42 2001 113.5 119.1 
43 2002 115.7 124.0 
44 2003 117.7 128.7 
45 2004 119.0 132.7 
46 2005 120.2 135.7 
 
> rrp<-lm(Y~X) #Modelo 1 
> rrp 
 
Call: 
lm(formula = Y ~ X) 
 
Coefficients: 
(Intercept) X 
 32.7419 0.6704 
 
> anova(rrp) 
Analysis of Variance Table 
 
Response: Y 
 Df Sum Sq Mean Sq F value Pr(>F) 
X 1 10406.1 10406.1 1830.2 < 2.2e-16 *** 
Residuals 44 250.2 5.7 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
> summary(rrp) 
 
Call: 
lm(formula = Y ~ X) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-4.7247 -1.9665 0.3394 2.0095 3.9586 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 32.74190 1.39402 23.49 <2e-16 *** 
X 0.67041 0.01567 42.78 <2e-16 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 2.384 on 44 degrees of freedom 
Multiple R-squared: 0.9765, Adjusted R-squared: 0.976 
F-statistic: 1830 on 1 and 44 DF, p-value: < 2.2e-16 
 
> u1<-residuals(rrp) 
 
 
 
> u1 
 1 2 3 4 5 6 
-4.72474153 -4.16443120 -3.60636429 -3.51421623 -3.12094647 -3.06175785 
 7 8 9 10 11 12 
-2.07073150 -1.14225890 0.08284859 0.98172688 1.61019949 1.20010413 
 13 14 15 16 17 18 
 2.12521162 2.35031910 2.08776536 1.21175114 1.96981805 2.2312500919 20 21 22 23 24 
 3.19492554 3.39492554 3.26196611 2.38931701 3.95860099 1.91442449 
 25 26 27 28 29 30 
 0.83953198 0.86576117 2.02270638 2.05454410 2.41597614 0.31261102 
 31 32 33 34 35 36 
 0.17179964 0.36619111 0.21752779 -0.35063449 -1.65399961 -2.08808074 
 37 38 39 40 41 42 
-3.39929781 -3.64010919 -0.95132625 -0.36366502 1.42399620 0.91277914 
 43 44 45 46 
-0.17220873 -1.32311547 -2.70473822 -3.51595529 
 
> plot(ANO,u1,xlab="Ano",ylab="Resíduos") 
 
#Transformando as variáveis para estimar o Modelo 2: 
> lny<-log(Y) 
> lnx<-log(X) 
> rlrp<-lm(lny~lnx) 
> rlrp 
 
Call: 
lm(formula = lny ~ lnx) 
 
Coefficients: 
(Intercept) lnx 
 1.6067 0.6522 
 
> anova(rlrp) 
Analysis of Variance Table 
 
Response: lny 
 Df Sum Sq Mean Sq F value Pr(>F) 
lnx 1 1.35891 1.35891 2787.8 < 2.2e-16 *** 
Residuals 44 0.02145 0.00049 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
 
 
 
> summary(rlrp) 
 
Call: 
lm(formula = lny ~ lnx) 
 
Residuals: 
 Min 1Q Median 3Q Max 
-0.041164 -0.017041 0.001037 0.018077 0.038719 
 
Coefficients: 
 Estimate Std. Error t value Pr(>|t|) 
(Intercept) 1.60668 0.05471 29.37 <2e-16 *** 
lnx 0.65222 0.01235 52.80 <2e-16 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
 
Residual standard error: 0.02208 on 44 degrees of freedom 
Multiple R-squared: 0.9845, Adjusted R-squared: 0.9841 
F-statistic: 2788 on 1 and 44 DF, p-value: < 2.2e-16 
 
> u2<-residuals(rlrp) 
> u2 
 1 2 3 4 5 
-0.0360675258 -0.0307797209 -0.0267240386 -0.0291603896 -0.0262463751 
 6 7 8 9 10 
-0.0283481204 -0.0175042417 -0.0064187606 0.0070940987 0.0184093936 
 11 12 13 14 15 
 0.0247128352 0.0162890844 0.0253045792 0.0258290878 0.0237441145 
 16 17 18 19 20 
 0.0111308448 0.0183593198 0.0204157821 0.0307809672 0.0330231206 
 21 22 23 24 25 
 0.0316039534 0.0208013425 0.0387191302 0.0144164051 0.0017737802 
 26 27 28 29 30 
 0.0016200723 0.0134709805 0.0137252476 0.0172319138 -0.0048181019 
 31 32 33 34 35 
-0.0062322610 -0.0041175411 -0.0050780893 -0.0106862603 -0.0235526000 
 36 37 38 39 40 
-0.0278739271 -0.0398046993 -0.0411637490 -0.0135764655 -0.0066740130 
 41 42 43 44 45 
 0.0108866107 0.0075514987 0.0004531741 -0.0066725611 -0.0156503588 
 46 
-0.0201975369 
 
> plot(ANO,u2,xlab="Ano",ylab="Resíduos") 
 
Com base nos modelos acima, e nos gráficos dos resíduos, pode-se ter a ideia 
de que possa haver autocorrelação dos resíduos, conforme a teoria sobre o problema. No 
entanto, testes específicos devem ser feitos para termos certeza de nosso problema. O 
teste d de Durbin-Watson é o mais usual, e a forma de análise já foi estudado, vamos 
então aplicar o teste no software R nos dois modelo estimados: 
Para realizar o teste de Durbin-Watson, tem-se que carregar o pacote lmtest, e a 
partir disso, realizar o teste, e interpretá-lo, conforme a teoria sobre o mesmo: 
 
> dwtest(rrp) #Modelo 1 
 
 Durbin-Watson test 
 
data: rrp 
DW = 0.1739, p-value < 2.2e-16 
alternative hypothesis: true autocorrelation is greater than 0 
 
> dwtest(rlrp) Modelo 2 
 
 Durbin-Watson test 
 
data: rlrp 
DW = 0.2176, p-value < 2.2e-16 
alternative hypothesis: true autocorrelation is greater than 0 
 
Pergunta-se, o que podemos dizer a respeito deste teste em relação aos 
modelos? 
Outro teste importante na literatura sobre autocorrelação, é o teste de Breusch-
Godfrey (BG), e também muito conhecido como teste LM, a forma como é feito, e as 
hipóteses estão descritas no livro texto, aqui iremos aplicá-la nas regressões estimadas. 
 
Hipótese nula do teste BG - H0: ρ1 = ρ2 = ρ3 = ... = ρp 
 
 
> bgtest(rrp,order=1) #Modelo 1, order refere-se à defasagem 
 
 Breusch-Godfrey test for serial correlation of order up to 1 
 
data: rrp 
LM test = 34.618, df = 1, p-value = 4.012e-09 
 
> bgtest(rlrp,order=1) #Modelo 2 
 
 Breusch-Godfrey test for serial correlation of order up to 1 
 
data: rlrp 
LM test = 34.0196, df = 1, p-value = 5.456e-09 
 
Neste caso, conforme as hipóteses para este teste, o que podemos dizer? 
Com base neste teste, podemos dizer que a hipótese nula pode ser rejeitada, 
pois, a autocorrelação não é zero. 
Desta forma, temos que pensar em corrigir o modelo. A forma utilizada no 
caso em que não temos informação sobre o verdadeiro ρ, seria estimá-lo. Uma das 
formas seria estimar com base no teste d de Durbin-Watson, visto em sala de aula, outra 
forma seria estimá-lo com base nos resíduos, aplicando AR(1), o modelo seria o 
seguinte: 
 
 
 
A questão seria estimar o ρ. 
O comando abaixo irá estimar este coeficiente pelo software R: 
 
> ar.ols(u1,order.max=1) #u1 é o resíduo do modelo 1. 
 
Call: 
ar.ols(x = u1, order.max = 1) 
 
Coefficients: 
 1 
0.8871 
 
Intercept: 0.03569 (0.1414) 
 
Order selected 1 sigma^2 estimated as 0.8987 
 
Assim, ρ estimado é 0,8871. Agora, com base neste valor, aplicar as 
transformações, gerando as variáveis Y*t e X*t. 
O próximo passo então será aplicar estas transformações nas variáveis Y e X. 
Estas transformações referem-se ao método conhecido como Mínimos Quadrados 
Generalizados, conforme descrito no livro texto e na aula teórica. 
Para aplicar estas transformações nas variáveis fazendo uso do software R 
aplicamos os seguintes passos: 
1. Primeiramente, teremos que montar um vetor coluna com dimensão n-1, 
com o valor de ρ estimado. 
> n <- length(u1) 
[1] 46 
> p<-0.8871 
> p 
[1] 0.8871 
> pi<-rep(p,n-1) 
> pi 
 [1] 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 
[11] 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 
[21] 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 
[31] 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 0.8871 
[41] 0.8871 0.8871 0.8871 0.8871 0.8871 
 
 
2. Conforme a transformação de Y para Yt, tem-se o seguinte: 
 
Onde que Yt-1 é o vetor Y com dimensão n-1. 
Vamos editar Y para obter Yt-1: 
 
 
 
Observem que nesta figura demos o seguinte comando: 
 
> y<-edit(Y) 
 
E foi aberto o editor, lá iremos retirar o último valor da sequência, no caso o 
valor riscado, 120.2, apagando tal valor, é só fechar o editor, e pronto, já estamos com a 
nossa nova variável y pronta. 
Fechando o editor, o programa irá perguntar se podemos salvar as mudanças, 
clicar em “Sim”. Para conferir, peça para o software apresentar a variável y, e repare 
nos valores que irá ser apresentado. 
3. O terceiro passo, no entanto será, novamente editar Y, procurando

Outros materiais