ldply从系数(模型)中提取标准偏差

时间:2019-11-13 08:31:41

标签: r lm

我使用此功能将lm模型调整101次:

models <- dlply(mee_chua_sort, "mu", function(df) 
lm(nachher~vorher, data = df))

现在,我不仅要从模型中提取估计值,而且要使用:

mod_coef<-ldply(models, coef)

我也希望能够提取标准偏差,p值等。如果我尝试使用类似的内容:

mod_coef1<-ldply(models, coef(summary(models))[,'Std.Error'])

我得到了错误: 错误:$运算符对于原子向量无效

有人可以帮我吗?我想像使用mod_coef一样将其他值保存在df中

谢谢

1 个答案:

答案 0 :(得分:0)

问题在于ldply(models,coef(summary(models)),在ldply中,您正在遍历模型,并且该函数需要处理列表的每个元素。您需要编写一个执行摘要的函数首先,然后是coef,请参见

library(dlply)

linmod <- function(df) {
       lm(rbi ~ year, data = mutate(df, year = year - min(year)))
 }

models <- dlply(baseball, .(id), linmod)
mod_coef<-ldply(models, coef)
results <- ldply(models,function(i)coef(summary(i)))


 > head(results)
         id      Estimate  Std. Error     t value     Pr(>|t|)
1 aaronha01 118.923913043  9.44994928 12.58460860 3.013683e-11
2 aaronha01  -1.732213439  0.73567755 -2.35458242 2.835224e-02
3 abernte02   0.554009613  0.44022430  1.25847122 2.274573e-01
4 abernte02  -0.002403238  0.03829954 -0.06274848 9.507953e-01
5 adairje01  18.831034483 11.77420551  1.59934651 1.337547e-01
6 adairje01   0.879310345  1.61731151  0.54368645 5.958584e-01

# to get standard error
> head(results[,"Std. Error"])
[1]  9.44994928  0.73567755  0.44022430  0.03829954 11.77420551  1.61731151