[R-br] Modelo linear com autocorrelação

Paulo Dick paulopcdick em gmail.com
Quarta Dezembro 21 17:39:31 BRST 2016


Caros colegas,

Gostaria da ajuda de vocês com um problema, que tem um pouco de novidade
para mim.

Possuo uma série de 19 resultados agregados por trimestre, para os quais
espero que haja uma estrutura de correlação temporal. Gostaria de fazer um
modelo linear que relacione a variável y (média de rendimentos) às
variáveis x1 (medida derivada do salário mínimo) e x2 (medida derivada do
PIB). Pensei em fazer um autorregressivo de ordem 1, de acordo com a
estrutura a seguir (omiti algumas passagens das saídas):

dados <- structure(list(periodo = structure(1:19, .Label =
c("2012_01", "2012_02",
"2012_03", "2012_04", "2013_01", "2013_02", "2013_03", "2013_04",
"2014_01", "2014_02", "2014_03", "2014_04", "2015_01",
"2015_02", "2015_03", "2015_04", "2016_01", "2016_02", "2016_03"), class =
"factor"), y = c(733.384601, 744.827647, 753.5034207, 753.1709712,
768.7507878, 777.6006481, 791.1782806, 791.9151729,
811.0964066, 780.0872518, 767.3666407, 793.1892722, 812.0534955, 797.8992735,
786.6962087, 776.6167214, 781.8815115, 778.9038465, 783.0461686), x1 =
c(8.569195652, 8.466388156, 8.389005478, 8.243063605,
8.786043379, 8.665048836, 8.619304392, 8.494686625, 8.877923393, 8.69843061,
8.641290323, 8.512972168, 8.971745386, 8.727847168, 8.587190411,
8.386888367, 9.078997556, 8.915777833, 8.8), x2 = c(163.19,
167.97, 173.63, 171.91, 167.62, 174.71, 178.42, 176.29, 173.51, 174.02,
177.27, 175.74, 170.41, 168.87, 169.24, 165.62, 161.17, 162.82, 164.38)),
.Names = c("periodo", "y", "x1", "x2"), row.names = c(NA,
-19L), class = "data.frame")

> # Modelo sem correlacao
*> summary(lm(log(y) ~ x1 + x2, data = dados))*

[...]
Coefficients:
             Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.4405431  0.3047514  17.852 5.47e-12 ***
x1          0.0884444  0.0234849   3.766  0.00169 **
x2          0.0026444  0.0009688   2.730  0.01484 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

> # Modelo com correlacao
*> summary(gls(log(y) ~ x1 + x2, data = dados, correlation = corARMA(p=1)))*
[...]
Correlation Structure: AR(1)
 Formula: ~1
 Parameter estimate(s):
      Phi
0.8897408

Coefficients:
               Value Std.Error   t-value p-value
(Intercept) 6.025572 0.3182184 18.935334  0.0000
x1          0.042154 0.0168588  2.500400  0.0237
x2          0.001515 0.0012822  1.181606  0.2546


Estranhei a diferença relativamente grande nos coeficientes estimados do
modelo a partir da inclusão. Graficamente, testei fazer apenas com x1 e o
modelo pareceu não ter ajuste "bom".
plot(log(y) ~ x1, dados); abline(gls(log(y) ~ x1, data = dados, correlation
= corARMA(p=1)), col="blue")

Ficou então a dúvida se procedi corretamente na sintaxe do modelo (ou na
definição do modelo?). O que acham?

Agradeço desde já.

Abraços

*Paulo Dick*
Estatístico / Epidemiologia em Saúde Pública
Tel.: (55 21) 99591-2716
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20161221/ce4b4f36/attachment.html>


Mais detalhes sobre a lista de discussão R-br