插补数据集列表的时滞分析

时间:2017-09-24 23:52:33

标签: r time-series r-mice

我的问题和数据类似于Loop Through Data with Sequential Time Lags output Linear Regression Coefficients

中的帖子
p + 
  geom_text(data = data.frame(t, test=NA, y=NA), aes(label=t, colour=t), alpha=0, x=1, y=1) +
  theme(legend.key=element_blank(),
        legend.margin=margin(l=-10)) +
  guides(colour=guide_legend(override.aes=list(size=0)))

但是,我的数据集结构不同,因为我为set.seed(242) df<- data.frame(month=order(seq(1,248,1),decreasing=TRUE), psit=c(79,1, NA, 69, 66, 77, 76, 93, NA, 65 ,NA ,3, 45, 64, 88, 88 ,76, NA, NA, 85,sample(1:10,228, replace=TRUE)),var=sample(1:10,248, replace=TRUE)) 估算了缺失值。现在psitpsitmonth现在在使用var函数来估算值后嵌套在列表tempdata中。现在mice()包含40个新的插补数据集。

tempdata

我想采用40个插补数据集,对每个插补数据集运行相同的时滞分析(这与上面有一个数据集进行时滞分析的帖子不同)并汇总每个数据集的R平方值比如所有推算数据集中的时滞。

tempdata<-mice(data = df, m = 40, method = "pmm", maxit = 50, seed = 500) 上的帖子表明您可以使用以下内容汇总mice的结果:

lm()

但是,我希望在所有40个插补数据集中汇总R平方值,以获得类似时间滞后的值。所以我不确定如何在modelFit1 <- with(tempdata,lm(psit~ month)) summary(pool(modelFit1)) 中的每个插补数据集上使用dyn$lm()函数,然后使用tempdata函数汇总平方值的结果。

实现这一结果。我尝试过以下操作但收到错误:

pool()

1 个答案:

答案 0 :(得分:0)

既然您使用的是鼠标包,那么“pool.r.squared”是否适用于您的目的?

pool.r.squared(modelFit1, adjusted = FALSE)
# est      lo 95    hi 95       fmi
# R^2 0.1345633 0.06061036 0.226836 0.1195257