[R] lmList and lapply(... lm) different std. errors

beatlebg rhelpforum at gmail.com
Wed Dec 15 13:24:38 CET 2010


Am I trying to perform multiple linear regressions on each 'VARIABLE2'. I
figured out that there are different ways, using the following code:   (data
is given at the end of this message) 
reg <- lapply(split(TRY, VARIABLE2), function(X){lm(X2 ~ X3, data=X)}) 
lapply(reg, summary) 

Which produces the following: 

$`1` 

Call: 
lm(formula = X2 ~ X3, data = X) 

Residuals: 
     Min       1Q   Median       3Q      Max 
-1.24233 -0.30028  0.03706  0.46170  1.12408 

Coefficients: 
            Estimate Std. Error t value Pr(>|t|)     
(Intercept)   3.0705     0.2323  13.215 5.95e-15 *** 
X3            0.4744     0.2640   1.797   0.0813 .   
--- 
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.5752 on 34 degrees of freedom 
Multiple R-squared: 0.08672,    Adjusted R-squared: 0.05986 
F-statistic: 3.228 on 1 and 34 DF,  p-value: 0.08126 


$`2` 

Call: 
lm(formula = X2 ~ X3, data = X) 

Residuals: 
    Min      1Q  Median      3Q     Max 
-1.1358 -0.6403  0.2505  0.4055  1.2088 

Coefficients: 
            Estimate Std. Error t value Pr(>|t|)     
(Intercept)   2.5859     0.2968   8.713 4.53e-10 *** 
X3            0.4957     0.3435   1.443    0.158     
--- 
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.6765 on 33 degrees of freedom 
Multiple R-squared: 0.05937,    Adjusted R-squared: 0.03086 
F-statistic: 2.083 on 1 and 33 DF,  p-value: 0.1584 


$`3` 

Call: 
lm(formula = X2 ~ X3, data = X) 

Residuals: 
     Min       1Q   Median       3Q      Max 
-1.70021 -0.66049 -0.00138  0.81210  1.26162 

Coefficients: 
            Estimate Std. Error t value Pr(>|t|)     
(Intercept)   1.9473     0.3522   5.529 2.73e-06 *** 
X3            0.8515     0.3954   2.154   0.0378 *   
--- 
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.8979 on 37 degrees of freedom 
Multiple R-squared: 0.1114,     Adjusted R-squared: 0.08739 
F-statistic: 4.639 on 1 and 37 DF,  p-value: 0.03784 

It should also be possible to use the lmList function, but remarkebly, I get
the same estimates, but different Std. Errors... I used the following code: 


modlst <- lmList(X2 ~ X3 | VARIABLE2, TRY) 
summary(modlst) 

Which produces 

Call: 
  Model: X2 ~ X3 | VARIABLE2 
   Data: TRY 

Coefficients: 
   (Intercept) 
  Estimate Std. Error   t value     Pr(>|t|) 
1 3.070507  0.2969014 10.341841 0.000000e+00 
2 2.585938  0.3224380  8.019952 1.665779e-12 
3 1.947292  0.2882936  6.754546 8.454271e-10 
   X3 
   Estimate Std. Error  t value    Pr(>|t|) 
1 0.4744112  0.3373931 1.406108 0.162672738 
2 0.4957349  0.3731949 1.328354 0.186968753 
3 0.8515270  0.3236325 2.631154 0.009803152 

Residual standard error: 0.7350239 on 104 degrees of freedom 

I do not understand what is the difference between these two methods and
what causes the difference in Std. Errors. Which method is preferable? I
checked the results with other software programm, and those results
corresponded with the first method...   

I really hope someone can explain where I made a mistake. Thank you. 



data.frame: TRY: 

   VARIABLE2        X2         X3 
1           1 2.3025851 1.00000000 
2           1 3.8286414 1.00000000 
3           1 4.3820266 1.00000000 
4           1 3.6375862 1.00000000 
5           1 3.7841896 1.00000000 
6           1 3.4965076 1.00000000 
7           1 2.8332133 1.00000000 
8           1 3.6375862 1.00000000 
9           1 4.0775374 1.00000000 
10          1 3.4339872 1.00000000 
11          1 3.5263605 1.00000000 
12          1 3.0445224 1.00000000 
13          1 2.8332133 1.00000000 
14          1 2.7725887 1.00000000 
15          1 3.0910425 1.00000000 
16          1 4.1108739 1.00000000 
17          1 3.2958369 1.00000000 
18          1 2.7080502 1.00000000 
19          1 2.9957323 1.00000000 
20          1 3.6375862 1.00000000 
21          1 3.8918203 1.00000000 
22          1 3.8712010 1.00000000 
23          1 3.4011974 1.00000000 
24          1 3.2958369 1.00000000 
25          1 4.1271344 1.00000000 
26          1 4.1588831 1.00000000 
27          1 4.1271344 0.90476190 
28          1 3.8712010 0.66666667 
29          1 4.5108595 0.66666667 
30          1 3.9120230 0.33333333 
31          1 3.6375862 0.23809524 
32          1 3.4339872 0.04761905 
33          1 2.8903718 0.00000000 
34          1 2.8903718 0.00000000 
35          1 2.8332133 0.00000000 
36          1 1.9459101 0.00000000 
37          2 2.0794415 1.00000000 
38          2 3.4657359 1.00000000 
39          2 3.9889840 1.00000000 
40          2 3.4339872 1.00000000 
41          2 3.4011974 1.00000000 
42          2 3.3322045 1.00000000 
43          2 2.8903718 1.00000000 
44          2 3.3672958 1.00000000 
45          2 3.3322045 1.00000000 
46          2 3.4339872 1.00000000 
47          2 3.4011974 1.00000000 
48          2 3.2958369 1.00000000 
49          2 2.8332133 1.00000000 
50          2 3.3322045 1.00000000 
51          2 3.3672958 1.00000000 
52          2 3.6635616 1.00000000 
53          2 2.8903718 1.00000000 
54          2 1.9459101 1.00000000 
55          2 2.0794415 1.00000000 
56          2 2.3025851 1.00000000 
57          2 2.4849066 1.00000000 
58          2 2.0794415 1.00000000 
59          2 2.3978953 1.00000000 
60          2 2.4849066 1.00000000 
61          2 4.2904594 1.00000000 
62          2 3.9889840 0.57142857 
63          2 3.6109179 0.52380952 
64          2 3.5553481 0.33333333 
65          2 3.1780538 0.33333333 
66          2 3.1780538 0.33333333 
67          2 2.7725887 0.33333333 
68          2 3.1354942 0.19047619 
69          2 1.7917595 0.09523810 
70          2 1.9459101 0.19047619 
71          2 1.6094379 0.00000000 
72          3 2.3978953 1.00000000 
73          3 2.4849066 1.00000000 
74          3 1.6094379 1.00000000 
75          3 1.3862944 1.00000000 
76          3 1.7917595 1.00000000 
77          3 1.0986123 1.00000000 
78          3 2.0794415 1.00000000 
79          3 1.3862944 1.00000000 
80          3 1.9459101 1.00000000 
81          3 3.1780538 1.00000000 
82          3 2.1972246 1.00000000 
83          3 2.4849066 1.00000000 
84          3 2.6390573 1.00000000 
85          3 3.6109179 1.00000000 
86          3 2.3978953 1.00000000 
87          3 2.1972246 1.00000000 
88          3 1.6094379 1.00000000 
89          3 3.0910425 1.00000000 
90          3 3.6888795 1.00000000 
91          3 3.3672958 1.00000000 
92          3 3.4011974 1.00000000 
93          3 2.4849066 1.00000000 
94          3 3.4657359 1.00000000 
95          3 4.0604430 1.00000000 
96          3 3.6635616 1.00000000 
97          3 3.6109179 1.00000000 
98          3 3.8286414 1.00000000 
99          3 3.6375862 1.00000000 
100         3 3.7135721 1.00000000 
101         3 3.8918203 0.80952381 
102         3 3.7376696 0.85714286 
103         3 3.0445224 0.66666667 
104         3 3.2958369 0.33333333 
105         3 2.7080502 0.00000000 
106         3 1.9459101 0.00000000 
107         3 2.4849066 0.04761905 
108         3 1.9459101 0.00000000 
109         3 0.6931472 0.00000000 

-- 
View this message in context: http://r.789695.n4.nabble.com/lmList-and-lapply-lm-different-std-errors-tp3088903p3088903.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list