如何估计lm虚拟回归以避免多重共线性?

问题描述 投票:0回答:1

我对虚拟变量使用lm进行问题回归。我想弄清楚随着时间的流逝季节性变化(季节性)的变化。为此,我建立了以下回归:

AT.trendinseason.lm <- lm(DTR.detrended~0+dum.jan+dum.feb+dum.mar+dum.apr+dum.may+dum.jun+dum.jul+dum.aug+dum.sep+dum.oct+dum.nov+dum.dec+dum.jan*t+dum.feb*t+dum.mar*t+dum.apr*t+dum.may*t+dum.jun*t+dum.jul*t+dum.aug*t+dum.sep*t+dum.oct*t+dum.nov*t+dum.dec*t)

我得到的输出如下:

summary(AT.trendinseason.lm)

Call:
lm(formula = DTR.detrended ~ 0 + dum.jan + dum.feb + dum.mar + 
    dum.apr + dum.may + dum.jun + dum.jul + dum.aug + dum.sep + 
    dum.oct + dum.nov + dum.dec + dum.jan * t + dum.feb * t + 
    dum.mar * t + dum.apr * t + dum.may * t + dum.jun * t + dum.jul * 
    t + dum.aug * t + dum.sep * t + dum.oct * t + dum.nov * t + 
    dum.dec * t)

Residuals:
    Min      1Q  Median      3Q     Max 
-9.4047 -2.2737 -0.3229  2.0987 18.9906 

Coefficients: (1 not defined because of singularities)
            Estimate Std. Error t value Pr(>|t|)    
dum.jan   -2.495e+00  1.121e-01 -22.262  < 2e-16 ***
dum.feb   -1.527e+00  1.176e-01 -12.983  < 2e-16 ***
dum.mar    2.493e-01  1.124e-01   2.218 0.026552 *  
dum.apr    1.266e+00  1.144e-01  11.073  < 2e-16 ***
dum.may    1.785e+00  1.127e-01  15.844  < 2e-16 ***
dum.jun    1.597e+00  1.147e-01  13.926  < 2e-16 ***
dum.jul    1.882e+00  1.131e-01  16.640  < 2e-16 ***
dum.aug    1.544e+00  1.126e-01  13.721  < 2e-16 ***
dum.sep    1.335e+00  1.134e-01  11.780  < 2e-16 ***
dum.oct    8.306e-02  1.117e-01   0.744 0.456961    
dum.nov   -2.545e+00  1.137e-01 -22.390  < 2e-16 ***
dum.dec   -3.101e+00  1.119e-01 -27.703  < 2e-16 ***
t         -1.343e-05  5.431e-06  -2.473 0.013389 *  
dum.jan:t -8.571e-06  7.681e-06  -1.116 0.264444    
dum.feb:t -3.094e-06  7.866e-06  -0.393 0.694090    
dum.mar:t  5.346e-06  7.681e-06   0.696 0.486406    
dum.apr:t  3.850e-05  7.744e-06   4.971 6.69e-07 ***
dum.may:t  2.748e-05  7.681e-06   3.578 0.000346 ***
dum.jun:t  2.959e-05  7.744e-06   3.821 0.000133 ***
dum.jul:t  3.384e-05  7.698e-06   4.396 1.10e-05 ***
dum.aug:t  4.494e-05  7.711e-06   5.828 5.67e-09 ***
dum.sep:t -1.921e-06  7.744e-06  -0.248 0.804105    
dum.oct:t -1.526e-05  7.681e-06  -1.987 0.046943 *  
dum.nov:t  8.864e-07  7.744e-06   0.114 0.908876    
dum.dec:t         NA         NA      NA       NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.093 on 35745 degrees of freedom
Multiple R-squared:  0.3145,    Adjusted R-squared:  0.314 
F-statistic: 683.2 on 24 and 35745 DF,  p-value: < 2.2e-16

但是这种情况是,我知道多重共线性应该不会有问题。 R仍然忽略了我的变量。有什么办法可以防止R这样做吗?

我想遵循的模型来自我读过的一篇论文,似乎可以解决:

enter image description here

这是我想采用的方法,但似乎不起作用。

请帮助。

我对虚拟变量使用lm进行问题回归。我想弄清楚随着时间的流逝季节性变化(季节性)的变化。为此,我建立了以下回归:AT ....

r model linear-regression lm dummy-variable
1个回答
0
投票

我解决了这个问题,而这完全取决于我如何编写交互条件。似乎R在*号上没有遇到什么麻烦。我用*代替了*,结果成功了。我不知道为什么,但是感谢上帝,我找到了解决方案。新的代码是:

© www.soinside.com 2019 - 2024. All rights reserved.