Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Zelig“;sim";函数与Amelia数据集一起使用,以获得R_R - Fatal编程技术网

使用Zelig“;sim";函数与Amelia数据集一起使用,以获得R

使用Zelig“;sim";函数与Amelia数据集一起使用,以获得R,r,R,我正在使用一个多重插补数据集和Amelia,然后希望Zelig从回归模型计算预测值。声明“当绘制感兴趣的数量时,如预期值和预测值以及第一次差异,这些数据正确地汇集在m个插补数据集中的数据中”。这是真的,但我也希望获得每个插补数据集的估计值,作为“sim”命令的输出 下面是复制Zelig webiste上的指令并生成相同输出的示例代码: library("Amelia") data(africa) a.out <- amelia(x = africa, m=5, cs = "country"

我正在使用一个多重插补数据集和Amelia,然后希望Zelig从回归模型计算预测值。声明“当绘制感兴趣的数量时,如预期值和预测值以及第一次差异,这些数据正确地汇集在m个插补数据集中的数据中”。这是真的,但我也希望获得每个插补数据集的估计值,作为“sim”命令的输出

下面是复制Zelig webiste上的指令并生成相同输出的示例代码:

library("Amelia")
data(africa)
a.out <- amelia(x = africa, m=5, cs = "country", ts = "year", logs = "gdp_pc")
z.out <- zelig(gdp_pc ~ trade + civlib, model = "ls", data = a.out)
summary(z.out)
这里,我得到每个插补数据集的所有值,而不是所有乘法插补数据集的值。在提供预测估计的汇总统计数据时,以及在根据预测数据绘制图表时,是否有办法让Zelig将Rubin规则应用于多重插补数据集

注:我需要的应用程序要求Zelig中使用的模型是负二项回归,而不是线性回归。我用这个例子复制了Zelig开发人员提供的例子


非常感谢你的帮助,祝你度过愉快的一天

在这种情况下,您不需要使用鲁宾规则,因为不确定性是根据模拟中的方差计算出来的。我有点惊讶,Zelig没有为你平均这些,但你可以自己做,没有太多困难:

qi.out <- zelig_qi_to_df(s.out)

lapply(split(qi.out, qi.out["trade"]),
       function(x) c(trade = unique(x$trade),
                     mean = mean(x$expected_value),
                     sd = sd(x$expected_value),
                     median = median(x$expected_value),
                     quantile(x$expected_value, probs = c(0.5, 0.025, 0.975))))

lapply(split(qi.out, qi.out["trade"]),
       function(x) c(trade = unique(x$trade),
                     mean = mean(x$predicted_value),
                     sd = sd(x$predicted_value),
                     median = median(x$predicted_value),
                     quantile(x$predicted_value, probs = c(0.5, 0.025, 0.975))))

qi.out非常感谢@Ista。是否有共识认为不需要鲁宾的规则来在插补数据集中汇总这些类型的值?Zelig的网页上说“当绘制出感兴趣的数量时,例如预期值和预测值以及第一次差异,这些数据被正确地汇集到m个插补数据集中的数据中”,我认为这意味着汇集的方式比计算方法更复杂。再次感谢!我不知道如何达成共识,但我认为鲁宾的规则根本不适用于这种情况。鲁宾的规则采用
m
估计值和
m
标准误差,对估计值进行平均,并调整标准误差,以考虑
m
值之间的额外差异。在我们的例子中,我们没有
m
标准错误,我们有
m*n
n
是模拟的数量)感兴趣的数量。我们从
n
感兴趣的数量估计不确定性的方法是查看分布的方差。我所做的就是将该逻辑扩展到
m
之间的差异。亲爱的@Ista,您是否有机会帮助我使用您帮助生成的代码创建带有ggplot的绘图?现在我有以下几点:我已经在万分感谢中回答了你同样的问题!
s.out <- sim (z.out, x = x.out)
plot(s.out)
summary(s.out)
[1] 50


 sim range :
 -----
ev
     mean     sd      50%     2.5%   97.5%
1 844.843 30.567 845.1218 791.8107 908.658
pv
         mean       sd      50%     2.5%    97.5%
[1,] 857.6479 372.9689 852.9239 157.7842 1553.552

 sim range :
 -----
ev
      mean       sd      50%     2.5%    97.5%
1 836.2505 36.72892 833.3876 770.7931 908.7371
pv
         mean      sd      50%     2.5%    97.5%
[1,] 821.3542 359.461 790.5742 204.7687 1483.275

 sim range :
 -----
ev
     mean       sd      50%     2.5%    97.5%
1 837.307 34.99979 839.4895 765.0043 896.1513
pv
         mean       sd      50%     2.5%    97.5%
[1,] 831.6275 347.4005 844.0667 120.8968 1526.509

 sim range :
 -----
ev
      mean       sd      50%     2.5%    97.5%
1 838.1396 33.49521 837.6317 776.3413 901.4235
pv
         mean       sd      50%     2.5%    97.5%
[1,] 866.5946 364.2909 830.9851 263.8757 1594.664

 sim range :
 -----
ev
     mean       sd      50%     2.5%    97.5%
1 842.784 35.18827 843.5563 779.9052 914.5869
pv
         mean       sd      50%     2.5%    97.5%
[1,] 834.7425 350.5647 834.0003 228.0261 1527.293


[1] 100


 sim range :
 -----
ev
      mean       sd      50%    2.5%    97.5%
1 1743.969 54.06692 1742.795 1627.39 1840.744
pv
        mean       sd      50%     2.5%    97.5%
[1,] 1700.53 350.1268 1718.504 1047.998 2322.216

 sim range :
 -----
ev
      mean       sd      50%     2.5%    97.5%
1 1748.554 58.46152 1755.443 1634.345 1854.652
pv
         mean       sd      50%     2.5%    97.5%
[1,] 1734.831 340.8356 1734.907 1071.973 2347.156

 sim range :
 -----
ev
      mean       sd      50%     2.5%    97.5%
1 1741.014 63.86164 1741.492 1615.497 1863.306
pv
         mean       sd      50%   2.5%    97.5%
[1,] 1759.305 329.6513 1746.153 1172.5 2435.067

 sim range :
 -----
ev
      mean       sd      50%     2.5%    97.5%
1 1738.422 64.75221 1738.474 1615.078 1854.675
pv
         mean       sd      50%     2.5%    97.5%
[1,] 1728.152 386.8327 1761.047 849.7188 2395.825

 sim range :
 -----
ev
      mean       sd      50%     2.5%    97.5%
1 1746.575 53.02558 1744.919 1638.602 1848.114
pv
         mean       sd      50%    2.5%    97.5%
[1,] 1710.864 342.1865 1702.769 1050.85 2288.021
qi.out <- zelig_qi_to_df(s.out)

lapply(split(qi.out, qi.out["trade"]),
       function(x) c(trade = unique(x$trade),
                     mean = mean(x$expected_value),
                     sd = sd(x$expected_value),
                     median = median(x$expected_value),
                     quantile(x$expected_value, probs = c(0.5, 0.025, 0.975))))

lapply(split(qi.out, qi.out["trade"]),
       function(x) c(trade = unique(x$trade),
                     mean = mean(x$predicted_value),
                     sd = sd(x$predicted_value),
                     median = median(x$predicted_value),
                     quantile(x$predicted_value, probs = c(0.5, 0.025, 0.975))))