如何使用Stata中记录的自变量从负二项回归生成预测计数?

时间:2016-09-23 16:37:53

标签: stata

我有一组带有因变量的数据,这是一个计数,还有几个独立的变量。我的主要自变量是大的美元价值。如果我将美元价值除以10,000(以保持系数可管理),模型(负二项式和零膨胀负二项式)在Stata中运行,我可以用置信区间生成预测计数。但是,从理论上讲,采用这个变量的自然对数更合乎逻辑。当我这样做时,模型仍然运行,但现在预测的范围在0.22-0.77左右。如何解决此问题,以便正确生成预测计数?

1 个答案:

答案 0 :(得分:0)

您的问题未显示任何代码或数据。没有这两种成分,几乎不可能知道出了什么问题。你的问题是"我为其他东西做了一些令人惊讶的结果。" 为了提出一个好问题,您应该使用每个人都可以访问的数据集来复制您的编码方法,例如rod93。

这是我的尝试,它显示了来自两个模型nbreg的相似预测:

webuse rod93, clear
replace exposure = exposure/10000

nbreg deaths exposure age_mos, nolog
margins
predictnl d1 =predict(n), ci(lb1 ub1)
/* Compare the prediction for the first obs by hand */
di exp(_b[_cons]+_b[age_mos]*age_mos[1]+_b[exposure]*exposure[1])
di d1[1]

gen ln_exp = ln(exposure)
nbreg deaths ln_e age_mos, nolog
margins
predictnl d2 =predict(n), ci(lb2 ub2)
/* Compare the prediction for the first obs by hand */
di exp(_b[_cons]+_b[age_mos]*age_mos[1]+_b[ln_e]*ln(exposure[1]))
di d2[1]
sum d? lb* ub*, sep(2)

这会产生非常相似的预测和置信区间:

. sum d? lb* ub*, sep(2)

    Variable |        Obs        Mean    Std. Dev.       Min        Max
-------------+---------------------------------------------------------
          d1 |         21    84.82903    25.44322   12.95853   104.1868
          d2 |         21     85.0432    25.24095   32.87827   105.1733
-------------+---------------------------------------------------------
         lb1 |         21    64.17752    23.19418   1.895858   80.72885
         lb2 |         21    59.80346    22.01917    10.9009   79.71531
-------------+---------------------------------------------------------
         ub1 |         21    105.4805    29.39726   24.02121   152.7676
         ub2 |         21    110.2829    29.16468   51.76427    143.856