4

我正在尝试在 R 中拟合线性时间序列模型。我的第一种方法是使用 lm:

> m1 = lm(logp~logg, data = data)
> summary(m1)

Call:
lm(formula = logp ~ logg, data = data)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.56209 -0.21766 -0.02728  0.20243  0.82112 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  2.14218    0.59651   3.591 0.000556 ***
logg        -0.57819    0.04931 -11.725  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Residual standard error: 0.2921 on 83 degrees of freedom
Multiple R-squared: 0.6236, Adjusted R-squared: 0.619 
F-statistic: 137.5 on 1 and 83 DF,  p-value: < 2.2e-16 

但是,我意识到残差是自相关的,我想对此进行补偿。所以我用 gls 代替:

> m2 = gls(logp~logg, data = data, correlation=corAR1(form=~1))
> summary(m2)

Generalized least squares fit by REML
  Model: logp ~ logg 
  Data: data 
       AIC       BIC  logLik
  -83.1498 -73.47444 45.5749

Correlation Structure: AR(1)
 Formula: ~1 
 Parameter estimate(s):
      Phi 
0.9313839 

Coefficients:
               Value Std.Error   t-value p-value
(Intercept)  4.82358 1.1435778  4.217972   1e-04
logg        -0.35891 0.0925918 -3.876257   2e-04

 Correlation: 
     (Intr)
logg 0.986 

Standardized residuals:
       Min         Q1        Med         Q3        Max 
-1.5206442 -0.7602385 -0.2905489  0.6310135  2.7341294 

Residual standard error: 0.3788309 
Degrees of freedom: 85 total; 83 residual

我的理解是参数估计应该仍然相同,但 t 统计量应该不同,如此处所示。但是,我得到了非常不同的参数估计。这是为什么?我做错了什么,还是我误解了统计数据?

当我比较拟合值时m1$fitted.valuesm2$fitted它们完全相同。这让我相信来自 gls 的参数估计应该以不同于来自 lm 的方式来解释,但是如何解释呢?

4

1 回答 1

4

看起来 AR(1) 已经吞噬了一些趋势 - 参数phi非常大。本质上,GLS 模型有一个额外的模型对应于 AR(1) 部分。因此你有

回归+ AR(1) + $\epsilon$

回归AR(1)结合起来给出与拟合回归相同的拟合值,lm()但拟合只是分解不同,解释也不同。

GLS估计参数 $\phi$ 的值(phi在上面的输出中),这就是系数的其他估计发生变化的原因。相反,您可以通过 $\phi$的输入值corAR1(value = myphi)在哪里指定 $\phi$ 的值。myphi一种选择可能是拟合lm()模型,然后从该模型的残差中估计 $\phi$,然后将 $\phi$ 的估计值插入 GLS 模型并进行拟合。summary()这样你最终会得到一个包含自相关的 GLS 模型,因此标准错误等会在输出等中考虑到它。

综上所述,如此大的 AR(1) 很可能表明存在问题或这不是正确的模型。我一定会检查模型是否合适等。

于 2013-03-22T20:55:57.243 回答