r - 估算数据集列表的时间滞后分析

标签 r time-series r-mice

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

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))

但是,我的数据集的结构不同,因为我为 psit 估算了缺失值。现在 psitmonthvar 在使用 mice() 之后嵌套在列表 tempdata 函数来估算值。现在 tempdata 包括 40 个新的估算数据集。

tempdata<-mice(data = df, m = 40, method = "pmm", maxit 
 = 50, seed = 500)

我想获取 40 个推算数据集,对每个推算数据集运行相同的时间滞后分析(这不同于上面的帖子,其中有一个数据集来执行时间滞后分析)并汇集每个数据集的 R 平方值就像所有估算数据集之间的时间滞后一样。

mice 上的帖子表明您可以使用以下方法合并 lm() 的结果:

modelFit1 <- with(tempdata,lm(psit~ month))
summary(pool(modelFit1))

但是,我想汇集所有 40 个估算数据集中的类似时间滞后的 R 平方值。所以我不确定如何在 tempdata 中的每个估算数据集上使用 dyn$lm() 函数,然后使用 pool() 函数来平方值的合并结果。

为了达到那个结果。我尝试了以下但出现错误:

modelFit1 <- with(tempData, lapply(1:236, function(i) dyn$lm(psit ~ 
             lag(var, -i),tail(z, 12+i))))
summary(pool(modelFit1),function(x) summary(x)$r.squared))

最佳答案

由于您使用的是 mice 包,“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

关于r - 估算数据集列表的时间滞后分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46395927/

相关文章:

python - 如何预处理时间序列测试数据以进行分类预测?

r - 使用嵌套循环从 ARIMA 中提取 AIC

R-小鼠-机器学习 : re-use imputation scheme from train to test set

r - 如何更改 facet_wrap 中的 facet 标签

r - 获取行的索引,其元素在 R 中向量指示的所有列中都等于 x

r - 任意重新排序 R 中的直方图列

r - 如何获取时间序列中间隙的结束时间?

r - 将 stat_summary 与 ggplot 一起使用时更改条宽

R:mice() 如何知道要插补哪个变量?

r - 如何将预测函数与 mice() 的汇总结果一起使用?