[R] plm "within" models: is the correct F-statistic reported?

Liviu Andronic landronimirc at gmail.com
Wed Mar 17 14:38:19 CET 2010


Dear Achim

On 3/16/10, Achim Zeileis <Achim.Zeileis at uibk.ac.at> wrote:
>  Hence, when saying summary() different models with "no effects" are
> assumed. For gr_fe the model without effects just omits value/capital but
> keeps the firm-specific interecepts. For gr_lm not even the intercept is
> kept in the model. Thus:
>
>  gr_fe_null <- lm(invest ~ 0 + firm, data = pgr)
>  gr_lm_null <- lm(invest ~ 0, data = pgr)
>
What would be the more useful "no effects" model in the plm(...,
effect="twoways") case? Considering the same setting,
library("AER")
data("Grunfeld", package = "AER")
library("plm")
gr <- subset(Grunfeld, firm %in% c("General Electric", "General Motors", "IBM"))
pgr <- plm.data(gr, index = c("firm", "year"))

I am fitting a "twoways" model and an "individual" with manually
specified time effects.
> gr_fe1 <- plm(invest ~ value + capital, data = pgr,
+    model = "within", effect="twoways")
> summary(gr_fe1)
Twoways effects Within Model

Call:
plm(formula = invest ~ value + capital, data = pgr, effect = "twoways",
    model = "within")

Balanced Panel: n=3, T=20, N=60

Residuals :
   Min. 1st Qu.  Median 3rd Qu.    Max.
-153.00  -29.10    2.23   34.80  125.00

Coefficients :
        Estimate Std. Error t-value Pr(>|t|)
value     0.1295     0.0224    5.77  1.4e-06 ***
capital   0.4184     0.0353   11.85  5.5e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Total Sum of Squares:    957000
Residual Sum of Squares: 138000
F-statistic: 107.246 on 2 and 36 DF, p-value: 6.84e-16

>  gr_fe2 <- plm(invest ~ value + capital + year, data = pgr,
+    model = "within", effect="individual")
>  summary(gr_fe2)
Oneway (individual) effect Within Model

Call:
plm(formula = invest ~ value + capital + year, data = pgr, effect =
"individual",
    model = "within")

Balanced Panel: n=3, T=20, N=60

Residuals :
   Min. 1st Qu.  Median 3rd Qu.    Max.
-153.00  -29.10    2.23   34.80  125.00

Coefficients :
          Estimate Std. Error t-value Pr(>|t|)
value       0.1295     0.0224    5.77  1.4e-06 ***
capital     0.4184     0.0353   11.85  5.5e-14 ***
year1936  -83.9625    53.6143   -1.57   0.1261
year1937 -150.9206    58.3282   -2.59   0.0139 *
year1938  -81.2343    50.7175   -1.60   0.1180
year1939 -137.4579    53.4385   -2.57   0.0144 *
year1940  -96.3584    53.9837   -1.78   0.0827 .
year1941  -56.5587    53.0089   -1.07   0.2931
year1942  -36.6539    50.9966   -0.72   0.4769
year1943  -78.0794    52.0249   -1.50   0.1421
year1944  -66.4725    52.5047   -1.27   0.2136
year1945  -89.5562    54.2876   -1.65   0.1077
year1946  -59.1147    55.3115   -1.07   0.2923
year1947  -87.5444    52.6530   -1.66   0.1051
year1948 -119.9125    53.3167   -2.25   0.0307 *
year1949 -167.9552    54.1999   -3.10   0.0038 **
year1950 -172.7676    55.0212   -3.14   0.0034 **
year1951 -191.1369    57.6114   -3.32   0.0021 **
year1952 -195.4503    59.6377   -3.28   0.0023 **
year1953 -174.6639    66.3451   -2.63   0.0124 *
year1954 -181.1273    68.5794   -2.64   0.0121 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Total Sum of Squares:    1890000
Residual Sum of Squares: 138000
F-statistic: 21.8327 on 21 and 36 DF, p-value: 1.32e-14


Following the reasoning in your previous e-mail, I assume that the
(more useful) "no effects" model used in the "twoways" case is
> gr_fe1_null <- lm(invest ~ 0 + firm + year, data = pgr)

However I cannot replicate the F-statistic: 107.246.
> anova(gr_fe1_null, gr_fe1)
Analysis of Variance Table

Response: invest
          Df  Sum Sq Mean Sq F value Pr(>F)
firm       3 7664439 2554813  101.46 <2e-16 ***
year      19  932060   49056    1.95  0.040 *
Residuals 38  956886   25181
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Warning message:
In anova.lmlist(object, ...) :
  models with response "NULL" removed because response differs from model 1
> anova(gr_fe1_null, gr_fe2)
Analysis of Variance Table

Response: invest
          Df  Sum Sq Mean Sq F value Pr(>F)
firm       3 7664439 2554813  101.46 <2e-16 ***
year      19  932060   49056    1.95  0.040 *
Residuals 38  956886   25181
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Warning message:
In anova.lmlist(object, ...) :
  models with response "NULL" removed because response differs from model 1


In the case of "individual" with manually introduced time effects, I
assume the following null is used:
> gr_fe2_null <- lm(invest ~ 0 + firm, data = pgr)

But even here I cannot replicate the F-statistic: 21.8327.
> anova(gr_fe2_null, gr_fe2)
Analysis of Variance Table

Response: invest
          Df  Sum Sq Mean Sq F value Pr(>F)
firm       3 7664439 2554813    77.1 <2e-16 ***
Residuals 57 1888946   33139
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Warning message:
In anova.lmlist(object, ...) :
  models with response "NULL" removed because response differs from model 1


Am I doing something wrong?
Liviu



More information about the R-help mailing list