plm vs lm - 不同的结果?

时间:2018-03-01 20:22:51

标签: r plm

我尝试了几次使用lm和plm进行回归。而且我得到了不同的结果。

首先,我使用lm如下:

trace(HTMLLoader.swfCapability == HTMLSWFCapability.STATUS_OK); // always true

此外,我以下列方式使用plm:

fixed.Region1 <- lm(CapNormChange ~ Policychanges + factor(Region), 
    data=Panel)

我认为plm有问题,因为我没有在结果中看到拦截(见下文)。 此外,我不完全确定fixed.Region2 <- plm(CapNormChange ~ Policychanges+ factor(Region), data=Panel, index=c("Region", "Year"), model="within", effect="individual") 是否有必要,但如果不存在,我就不会看到假人的系数(和显着性)。

所以,我的问题是:

  1. 我使用plm函数错了? (或者它有什么问题)
  2. 如果没有,结果会有什么不同?
  3. 如果有人能给我一个提示,我真的很感激。

    LM的结果:

    + factor (Region)

    PLM的结果:

    Call:
    lm(formula = CapNormChange ~ Policychanges + factor(Region), 
        data = Panel)
    
    Residuals:
        Min      1Q  Median      3Q     Max 
    -31.141  -4.856  -0.642   1.262 192.803 
    
    Coefficients:
                                    Estimate Std. Error t value Pr(>|t|)    
    (Intercept)                      17.3488     4.9134   3.531 0.000558 ***
    Policychanges                     0.6412     0.1215   5.277 4.77e-07 ***
    factor(Region)Asia              -19.3377     6.7804  -2.852 0.004989 ** 
    factor(Region)C America + Carib   0.1147     6.8049   0.017 0.986578    
    factor(Region)Eurasia           -17.6476     6.8294  -2.584 0.010767 *  
    factor(Region)Europe            -20.7759     8.8993  -2.335 0.020959 *  
    factor(Region)Middle East       -17.3348     6.8285  -2.539 0.012200 *  
    factor(Region)N America         -17.5932     6.8064  -2.585 0.010745 *  
    factor(Region)Oceania           -14.0440     6.8417  -2.053 0.041925 *  
    factor(Region)S America         -14.3580     6.7781  -2.118 0.035878 *  
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    
    Residual standard error: 19.72 on 143 degrees of freedom
    Multiple R-squared:  0.3455,    Adjusted R-squared:  0.3043 
    F-statistic: 8.386 on 9 and 143 DF,  p-value: 5.444e-10`
    

1 个答案:

答案 0 :(得分:1)

您需要在plm的公式中省略+ factor(Region)以获得您想要的内容。

在模型中没有拦截,但有些软件包(特别是Stata和Gretl)会报告一个。您可以通过在估算的模型上运行within_intercept来估算它。帮助页面包含有关这种有点人为拦截的详细信息。

如果您想要个人效果及其重要性,请使用summary(fixef(<your_plm_model>))。使用pFtest检查内部规范是否值得。

lm模型和plm模型之间的R平方分歧。这是由于lm模型(如果与假人一起使用,它通常被称为LSDV模型(最小二乘虚拟变量))给出有时被称为整体R平方,而plm将给出你的R平方的贬值回归,有时称为R内平方。 Stata的文档中有一些详细信息:https://www.stata.com/manuals/xtxtreg.pdf