Zelig使用Amelia多次推算数据进行模拟的结果不一致

时间:2018-06-12 11:14:20

标签: r regression simulation r-zelig

当在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

鉴于上述情况,我有几个问题。

  1. 这是Zelig和sim工作方式的正常结果,还是它 包和/或命令中有问题的迹象?
  2. 如果这不是任何问题的标志,而只是它与Zelig用于处理后期估算的系统一起使用的方式,是否有任何可以改善问题的方法?在“sim”中使用“num”参数来增加模拟次数似乎并没有大大帮助减少变化的程度。
  3. 如果这不是任何问题的标志,而只是它的工作方式,那么如何处理输出中的小差异呢?原则上,每次新的迭代都会返回略有不同的结果,显然这对草稿写作来说并不好,更不用说复制了。您建议在自己的工作流程和报告实践方面做些什么?
  4. 非常感谢您的帮助和关注。这个问题一直困扰着我,所以我真的希望能从这个神奇的社区中获得一些见解。祝你有美好的一天!

0 个答案:

没有答案