首页 文章

使用zelig进行模拟

提问于
浏览
0

我对包Zelig非常困惑,尤其是函数sim . 我想要做的是使用我的数据子集估计逻辑回归,然后估计剩余数据的拟合值,以查看估计的执行情况 . 一些示例代码如下:

数据(道岔)道岔< - data.table(道岔)随机数据道岔< - 道岔[样本(.N,2000)]为回归生成样本turnout_sample < - 道岔[1:1800,]创建样本数据测试turnout_sample2 < - turnout [1801:2000,]运行回归z.out1 < - zelig(投票〜年龄竞赛,模型=“logit”,data = turnout_sample)摘要(z.out1)模型:

致电:z5 $ zelig(公式=投票〜年龄比赛,数据= turnout_sample)

Deviance Residuals:Min 1Q Median 3Q Max
-1.9394 -1.2933 0.7049 0.7777 1.0718

系数:估计标准 . 误差z值Pr(> | z |)(截距)0.028874 0.186446 0.155 0.876927 age 0.011830 0.003251 3.639 0.000274 racewhite 0.633472 0.142994 4.430 0.00000942

(二项式族的色散参数为1)

Null deviance: 2037.5  on 1799  degrees of freedom

剩余偏差:2002.9对1797自由度AIC:2008.9

Fisher评分迭代次数:4

下一步:使用'setx'方法

将x值设置为剩余的200个观测值x.out1 < - setx(z.out1,fn = NULL,data = turnout_sample2)模拟s.out1 < - sim(z.out1,x = x.out1)获取拟合值拟合< - s.out1 $ getqi(“ev”)

我不明白的是,现在安装的列表包含1000个值,所有值都在0,728和0,799之间 . 1.当我想要估算的是200个观测值的拟合值时,为什么有1000个值? 2.为什么观察结果如此紧密?

我希望有人可以帮助我 .

最好的祝福

1 回答

  • 0

    第一个问题:
    simsim(obj, x = NULL, x1 = NULL, y = NULL, num = 1000 ..)的签名中,您可以看到默认的模拟数量为1000.如果您想要200,请设置 num=200 .

    但是,你使用的example from documentation中的 sim 实际上生成(模拟)一个人投票给定某些值的概率(由 setx 计算或计算并固定在某些值上,如 setx(z.out, race = "white") ) .

    因此,在您的情况下,您有1000个模拟概率值介于0,728和0,799之间,这是您应该得到的 .

相关问题