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

ldply extract standard deviation from coefficients (models)

我用这个功能调整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 中

谢谢

问题在于 ldply(models, coef(summary(models)),在 ldply 中,您正在遍历模型并且函数需要处理列表的每个元素。您需要编写一个函数先做总结,再做系数,见

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