私の質問とデータがポストに似ています: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
の欠損値を代入されているので、しかし、私のデータセットの構造が異なります。今度は,month
およびvar
がmice()
関数を使用して値を代入した後にリストtempdata
にネストされるようになりました。現在tempdata
には40の新しい帰属データセットが含まれています。
tempdata<-mice(data = df, m = 40, method = "pmm", maxit
= 50, seed = 500)
帰属しているすべてのデータセットのタイムラグのようなそれぞれの二乗値。 mice
上
投稿は、使用してlm()
の結果をプールすることができます示しています
modelFit1 <- with(tempdata,lm(psit~ month))
summary(pool(modelFit1))
は、しかし、私のような時間はすべて40個の帰属のデータセット間の遅れのためのR二乗値をプールします。だから私は、tempdata
の各帰属データセットに対してdyn$lm()
関数を使用する方法が不明で、pool()
関数を使用して、2乗値の結果をプールします。
その結果を達成する。私は次のことを試してみましたが、エラーを取得している:あなたは、マウスのパッケージを使用しているので
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))
戻り値のR値のベクトルが返されます。私は 'dyn $ lm(psit〜lag(var、-i)、tail()を使って、帰属するデータセットごとに一連のタイムラグ回帰(t-1、t-2、t-3 ... months) z、12 + i)))) 'となる。すべての帰属データセットにt-1のr-squaredをプールし、t-2の遅れのr-squaredをすべての帰属データセットなどにプールします。だから私は、各タイムラグ回帰のためにプールされたr-二乗のベクトルを持つだろう。 – Danielle