Exercício 1 - Noé Eiterer 92174

  1. Considerando os dados referentes à indústria de cobre do arquivo “cobre.txt”. Pede-se:
  1. Ajuste o seguinte modelo de regressão:

\[\begin{eqnarray*} \ln C_t=\beta_1+\beta_2\ln I_t+\beta_3 \ln L_t+\beta_4 H_t+\beta_5 A_t+\mu_t \end{eqnarray*}\]

em que, \(C=\) média de 12 meses do preço interno do cobre (em centavos de dólar por librapeso); \(PNB=\) PNB anual (em bilhões de US\(\$\)); \(I=\) Índice de produção industrial (média de 12 meses); \(L=\) Preço médio de 12 meses do cobre na bolsa de metais de Londres (libras esterlinas); \(H=\) Número de prédios construídos por ano (milhões de unidades); \(A=\) Preço médio de 12 meses do alumínio (em centavos de dólar por libra-peso).

Pelo software R obtém-se:

rm(list=ls())
dados<-read.table("C:\\Users\\os\\Documents\\est 744\\dados.txt",h=T,sep="\t")
head(dados)
##    Ano     C   PNB    I     L    H     A
## 1 1951 21.89 330.2 45.1 220.4 1491 19.00
## 2 1952 22.29 347.2 50.9 259.5 1504 19.41
## 3 1953 19.63 366.1 53.3 256.3 1438 20.93
## 4 1954 22.85 366.3 53.6 249.3 1551 21.78
## 5 1955 33.77 399.3 54.6 352.3 1646 23.68
## 6 1956 39.18 420.7 61.1 329.1 1349 26.01
dados$I<-log(dados$I,base=exp(1))
dados$L<-log(dados$L,base=exp(1))
dados$H<-log(dados$H,base=exp(1))
dados$A<-log(dados$A,base=exp(1))
dados$C<-log(dados$C,base=exp(1))
head(dados)
##    Ano        C   PNB        I        L        H        A
## 1 1951 3.086030 330.2 3.808882 5.395444 7.307202 2.944439
## 2 1952 3.104138 347.2 3.929863 5.558757 7.315884 2.965788
## 3 1953 2.977059 366.1 3.975936 5.546349 7.271009 3.041184
## 4 1954 3.128951 366.3 3.981549 5.518657 7.346655 3.080992
## 5 1955 3.519573 399.3 4.000034 5.864483 7.406103 3.164631
## 6 1956 3.668166 420.7 4.112512 5.796362 7.207119 3.258481
summary(lm(C~I+L+H+A,data=dados))
## 
## Call:
## lm(formula = C ~ I + L + H + A, data = dados)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.23624 -0.06926  0.03014  0.07209  0.22490 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.500441   1.003020  -1.496 0.147192    
## I            0.467509   0.165987   2.817 0.009340 ** 
## L            0.279443   0.114726   2.436 0.022328 *  
## H           -0.005152   0.142947  -0.036 0.971538    
## A            0.441449   0.106508   4.145 0.000341 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1217 on 25 degrees of freedom
## Multiple R-squared:  0.9361, Adjusted R-squared:  0.9259 
## F-statistic: 91.54 on 4 and 25 DF,  p-value: 1.491e-14

Portanto,

\[\begin{eqnarray*} \ln C_t=-1,5004+0,4675\ln(I_t)+0,2794\ln(L_t)-0,0051\ln(H_t)+0,4414\ln(A_t) \end{eqnarray*}\]

  1. Obtenha os resíduos e os resíduos padronizados e faça os gráficos destes resíduos contra o tempo. O que se pode dizer a respeito da presença de autocorrelação nos resíduos?

Os resíduos são dados por:

rm(list=ls())
dados<-read.table("C:\\Users\\os\\Documents\\est 744\\dados.txt",h=T,sep="\t")
dados$I<-log(dados$I,base=exp(1))
dados$L<-log(dados$L,base=exp(1))
dados$H<-log(dados$H,base=exp(1))
dados$A<-log(dados$A,base=exp(1))
dados$C<-log(dados$C,base=exp(1))
model<-lm(C~I+L+H+A,data=dados)
# Resíduos
model$residuals
##           1           2           3           4           5           6 
##  0.03589324 -0.05757447 -0.23624026 -0.09641769  0.15230774  0.22489774 
##           7           8           9          10          11          12 
##  0.05863286 -0.06876685  0.03147403  0.04922001  0.02752004  0.03986442 
##          13          14          15          16          17          18 
##  0.03685954 -0.06815048 -0.12805313 -0.18339971 -0.06942614 -0.08228995 
##          19          20          21          22          23          24 
## -0.04986678  0.14940341  0.10506920  0.09664564  0.08280250  0.16086444 
##          25          26          27          28          29          30 
##  0.07658090 -0.03037358 -0.14707747 -0.18933948  0.05012670  0.02881360

E os resíduos padronizados:

rm(list=ls())
dados<-read.table("C:\\Users\\os\\Documents\\est 744\\dados.txt",h=T,sep="\t")
dados$I<-log(dados$I,base=exp(1))
dados$L<-log(dados$L,base=exp(1))
dados$H<-log(dados$H,base=exp(1))
dados$A<-log(dados$A,base=exp(1))
dados$C<-log(dados$C,base=exp(1))
model<-lm(C~I+L+H+A,data=dados)
# Resíduos padronizados
model$residuals/sd(model$residuals)
##          1          2          3          4          5          6          7 
##  0.3175228 -0.5093217 -2.0898550 -0.8529409  1.3473617  1.9895155  0.5186845 
##          8          9         10         11         12         13         14 
## -0.6083330  0.2784291  0.4354156  0.2434509  0.3526531  0.3260710 -0.6028804 
##         15         16         17         18         19         20         21 
## -1.1327979 -1.6224110 -0.6141653 -0.7279625 -0.4411371  1.3216691  0.9294749 
##         22         23         24         25         26         27         28 
##  0.8549575  0.7324967  1.4230570  0.6774585 -0.2686941 -1.3010932 -1.6749561 
##         29         30 
##  0.4434364  0.2548941

O gráfico dos resíduos:

rm(list=ls())
dados<-read.table("C:\\Users\\os\\Documents\\est 744\\dados.txt",h=T,sep="\t")
dados$I<-log(dados$I,base=exp(1))
dados$L<-log(dados$L,base=exp(1))
dados$H<-log(dados$H,base=exp(1))
dados$A<-log(dados$A,base=exp(1))
dados$C<-log(dados$C,base=exp(1))
model<-lm(C~I+L+H+A,data=dados)
# Resíduos padronizados
suppressWarnings(library(ggplot2))
ggplot()+geom_point(aes(x=dados$Ano,y=model$residuals),size=3,
                    color=ifelse(model$residuals>0,"blue","red"))+
  theme_minimal()+
  labs(x="Ano",y="Resíduos")+
  geom_hline(yintercept = 0,linetype=1)

O gráfico dos resíduos padronizados:

rm(list=ls())
dados<-read.table("C:\\Users\\os\\Documents\\est 744\\dados.txt",h=T,sep="\t")
dados$I<-log(dados$I,base=exp(1))
dados$L<-log(dados$L,base=exp(1))
dados$H<-log(dados$H,base=exp(1))
dados$A<-log(dados$A,base=exp(1))
dados$C<-log(dados$C,base=exp(1))
model<-lm(C~I+L+H+A,data=dados)
# Resíduos padronizados
library(ggplot2)
ggplot()+geom_point(aes(x=dados$Ano,y=model$residuals/sd(model$residuals)),size=3,
                    color=ifelse(model$residuals>0,"blue","red"))+
  theme_minimal()+
  labs(x="Ano",y="Resíduos padronizados")+
  geom_hline(yintercept = 0,linetype=1)

Parece não existir autocorrelação nos resíduos pelo fato da ausência de qualquer tipo de padrão nos gráficos.

  1. Estime a estatística d de Durbin-Watson e comente sobre a natureza da autocorrelação presente nos dados.

A estatística d de Durbin-Watson é obtida pelo software R por:

rm(list=ls())
dados<-read.table("C:\\Users\\os\\Documents\\est 744\\dados.txt",h=T,sep="\t")
dados$I<-log(dados$I,base=exp(1))
dados$L<-log(dados$L,base=exp(1))
dados$H<-log(dados$H,base=exp(1))
dados$A<-log(dados$A,base=exp(1))
dados$C<-log(dados$C,base=exp(1))
model<-lm(C~I+L+H+A,data=dados)
suppressPackageStartupMessages(library(lmtest))
## Warning: package 'zoo' was built under R version 4.1.3
dwtest(model)
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 0.95494, p-value = 6.388e-05
## alternative hypothesis: true autocorrelation is greater than 0

Como \(p-valor<0,05\), então podemos concluir que os resíduos não apresentam autocorrelação pelo teste de Durbin-Watson ao nível de significância de 5\(\%\) de probabilidade.

  1. Realize o procedimento de Cochrane-Orcutt e, também, obtenha as estimativas usando MQG. Compare os resultados.

Estimando os parâmetros do modelo pelo procedimento de Cochrane-Orcutt:

rm(list=ls())
dados<-read.table("C:\\Users\\os\\Documents\\est 744\\dados.txt",h=T,sep="\t")
library(orcutt) 
## Warning: package 'orcutt' was built under R version 4.1.3
dados$I<-log(dados$I,base=exp(1))
dados$L<-log(dados$L,base=exp(1))
dados$H<-log(dados$H,base=exp(1))
dados$A<-log(dados$A,base=exp(1))
dados$C<-log(dados$C,base=exp(1))
model<-lm(C~I+L+H+A,data=dados)
model1<-cochrane.orcutt(model)
summary(model1)
## Call:
## lm(formula = C ~ I + L + H + A, data = dados)
## 
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept) -1.24947    1.09532  -1.141 0.265237   
## I            0.39147    0.23459   1.669 0.108173   
## L            0.34242    0.11358   3.015 0.005991 **
## H           -0.05186    0.14288  -0.363 0.719802   
## A            0.45622    0.15626   2.920 0.007503 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1046 on 24 degrees of freedom
## Multiple R-squared:  0.8281 ,  Adjusted R-squared:  0.7995
## F-statistic: 28.9 on 4 and 24 DF,  p-value: < 7.261e-09
## 
## Durbin-Watson statistic 
## (original):    0.95494 , p-value: 6.388e-05
## (transformed): 1.47744 , p-value: 2.98e-02

As estimativas obtidas pelo procedimento de Cochrane-Orcutt são:

\[\begin{eqnarray*} \ln C_t=-1,2494+0,3914\ln(I_t)+0,3424\ln(L_t)-0,05186\ln(H_t)+0,4562\ln(A_t) \end{eqnarray*}\]

Estimando os parâmetros do modelo pelo procedimento do MQG:

rm(list=ls())
dados<-read.table("C:\\Users\\os\\Documents\\est 744\\dados.txt",h=T,sep="\t")
library(nlme) 
dados$I<-log(dados$I,base=exp(1))
dados$L<-log(dados$L,base=exp(1))
dados$H<-log(dados$H,base=exp(1))
dados$A<-log(dados$A,base=exp(1))
dados$C<-log(dados$C,base=exp(1))
model<-gls(C~I+L+H+A,data=dados,correlation=corARMA(p=1),method='ML')
summary(model)
## Generalized least squares fit by maximum likelihood
##   Model: C ~ I + L + H + A 
##   Data: dados 
##         AIC       BIC   logLik
##   -42.58815 -32.77977 28.29408
## 
## Correlation Structure: AR(1)
##  Formula: ~1 
##  Parameter estimate(s):
##       Phi 
## 0.5365428 
## 
## Coefficients:
##                  Value Std.Error   t-value p-value
## (Intercept) -1.2197390 1.0530230 -1.158321  0.2577
## I            0.3730978 0.2000610  1.864920  0.0740
## L            0.3457890 0.1086496  3.182606  0.0039
## H           -0.0471637 0.1387131 -0.340009  0.7367
## A            0.4565030 0.1505485  3.032266  0.0056
## 
##  Correlation: 
##   (Intr) I      L      H     
## I  0.178                     
## L -0.202 -0.669              
## H -0.909 -0.369  0.177       
## A -0.303 -0.525 -0.047  0.303
## 
## Standardized residuals:
##        Min         Q1        Med         Q3        Max 
## -2.2504655 -0.6664047  0.2559493  0.6120968  1.8160085 
## 
## Residual standard error: 0.1110272 
## Degrees of freedom: 30 total; 25 residual

As estimativas obtidas pelo procedimento do MQG são:

\[\begin{eqnarray*} \ln C_t=-1,2197+0,3730\ln(I_t)+0,3457\ln(L_t)-0,04716\ln(H_t)+0,4565\ln(A_t) \end{eqnarray*}\]

Os valores obtidos pelos métodos do MQG e do Cochrane-Orcutt são muitos próximos entre si.