当在R中使用具有多个插补的数据集(使用Amelia创建)并使用Zelig运行后期估算时,我注意到“sim”命令返回的预期值存在小但可能相关的差异。
以下是一些可重现的代码:
library("Zelig")
library("Amelia")
data(africa)
a.out <- amelia(x = africa, m=5, cs = "country", ts = "year", logs = "gdp_pc")
-- Imputation 1 --
1 2 3
-- Imputation 2 --
1 2 3
-- Imputation 3 --
1 2 3
-- Imputation 4 --
1 2
-- Imputation 5 --
1 2
z.out <- zelig(gdp_pc ~ trade * civlib, model = "ls", data = a.out, cite=F)
summary(z.out)
Model: Combined Imputations
Estimate Std.Error z value
(Intercept) -32.3 149.8 -0.2
trade 20.5 2.2 9.4
civlib 41.7 556.0 0.1
trade:civlib -10.6 8.2 -1.3
Pr(>|z|)
(Intercept) 0.8
trade <0.0000000000000002
civlib 0.9
trade:civlib 0.2
For results from individual imputed datasets, use summary(x, subset = i:j)
Next step: Use 'setx' method
x.out1 <- setx (z.out, trade = 50, civlib = c (0, 0.5))
x.out2 <- setx (z.out, trade = 100, civlib = c (0, 0.5))
s.out <- sim(z.out, x = x.out1, x1 = x.out2)
生成估算值后,我会提取结果并生成预期值的平均值
qi.out <- zelig_qi_to_df(s.out)
mean (qi.out$expected_value)
[1] 1315
但是,如果我再次运行“sim”命令,结果会略有不同:
s.out <- sim(z.out, x = x.out1, x1 = x.out2)
qi.out <- zelig_qi_to_df(s.out)
mean (qi.out$expected_value)
[1] 1316
鉴于上述情况,我有几个问题。
非常感谢您的帮助和关注。这个问题一直困扰着我,所以我真的希望能从这个神奇的社区中获得一些见解。祝你有美好的一天!