在 pscl 中使用 predprob 进行计数预测的公式或矩阵
formula or matrix underlying count predictions using predprob in pscl
R
中的 pscl
包用于拟合零膨胀泊松模型等模型。
我有一个关于每周食物消费的数据框,它是零膨胀的。我在拟合零膨胀泊松 (ZIP) 模型时没有遇到任何问题,该模型成功预测了我的数据中零计数的百分比。数据包含大约 30% 的零计数,以及超过 4600 个观测值。
ZIP 模型是:
zeroinfl(LightC.home~SEX+AGEDET+Inhabitants, data=FoodAnalysis)
其中 LightC
是每周消费计数(范围 0 - 74),SEX
是受访者性别(具有 2 个水平的因素),AGEDET
是受访者年龄段(具有 12 的因素级别,例如“5-9 岁”),Inhabitants
是家庭中的人数(整数,范围为 1 到 8)。
ZIP 模型摘要为:
Call:
zeroinfl(formula = LightC.home ~ SEX + AGEDET + Inhabitants, data = FoodAnalysis)
Pearson residuals:
Min 1Q Median 3Q Max
-3.3479 -1.2781 -0.5170 0.6342 12.2912
Count model coefficients (poisson with log link):
Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.133213 0.029229 72.983 < 2e-16 ***
SEXFemale -0.079156 0.010284 -7.697 1.39e-14 ***
AGEDET5-9 years -0.038153 0.032745 -1.165 0.243963
AGEDET10-14 years 0.014199 0.032411 0.438 0.661317
AGEDET15-17 years 0.253942 0.035419 7.170 7.52e-13 ***
AGEDET18-24 years 0.148395 0.029089 5.101 3.37e-07 ***
AGEDET25-34 years 0.158506 0.026291 6.029 1.65e-09 ***
AGEDET35-44 years 0.157821 0.026043 6.060 1.36e-09 ***
AGEDET45-54 years 0.307299 0.026153 11.750 < 2e-16 ***
AGEDET55-64 years 0.340590 0.026913 12.655 < 2e-16 ***
AGEDET65-74 years 0.361976 0.027260 13.278 < 2e-16 ***
AGEDET75-84 years 0.251614 0.039866 6.311 2.76e-10 ***
AGEDET85 years or more 0.606829 0.083345 7.281 3.32e-13 ***
Inhabitants 0.014697 0.004302 3.416 0.000635 ***
Zero-inflation model coefficients (binomial with logit link):
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.82861 0.17389 -4.765 1.89e-06 ***
SEXFemale -0.08333 0.07196 -1.158 0.246893
AGEDET5-9 years -0.27280 0.18082 -1.509 0.131390
AGEDET10-14 years -0.32820 0.18390 -1.785 0.074308 .
AGEDET15-17 years -0.06472 0.20589 -0.314 0.753276
AGEDET18-24 years -0.06973 0.16047 -0.435 0.663896
AGEDET25-34 years -0.27054 0.14791 -1.829 0.067385 .
AGEDET35-44 years -0.71412 0.15648 -4.564 5.03e-06 ***
AGEDET45-54 years -0.50510 0.15585 -3.241 0.001191 **
AGEDET55-64 years -0.65281 0.16541 -3.947 7.92e-05 ***
AGEDET65-74 years -1.09276 0.18313 -5.967 2.41e-09 ***
AGEDET75-84 years -1.28092 0.34508 -3.712 0.000206 ***
AGEDET85 years or more -12.75039 279.21031 -0.046 0.963577
Inhabitants 0.01733 0.02872 0.603 0.546296
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Number of iterations in BFGS optimization: 35
Log-likelihood: -2.136e+04 on 28 Df
我使用 pscl
包中的 predprob
命令来构建食物消费概率的向量。这构建了一个矩阵,每个观察值一行,每个观察值给出了 0(最小值)和 74(最大值)之间的每个计数的消耗概率。此矩阵中有 165 个唯一行,这是由于零膨胀泊松模型中预测变量的 165 个唯一组合。
我如何为每个预测变量组合(例如女性、25-34 岁、4 名居民)构建支持这 75 个概率的公式?从数学角度看不懂这75个概率之间的关系
例如,预测组合 SEX=="Female"
、AGEDET=="25-34 years"
和 Inhabitants == 4
给出了数据中具有该预测组合的每个人的这些概率(仅显示 75 个中的前 6 个) :
X0 X1 X2 X3 X4 X5
0.2473285 0.0004504804 0.002183136 0.007053337 0.01709108 0.03313101
考虑到原始 zeroinfl
公式看起来像是简单地估计预测变量组合的消耗平均值而不是所有 75 个概率,这些概率是如何估计的?
零膨胀泊松模型是零点质量点和泊松分布的混合体。有关确切的公式,请参阅 vignette("countreg", package = "pscl")
的第 2.3 节。
在您的模型中有两个线性预测变量:一个用于泊松分量的均值(使用 log link),另一个用于零 inflation 概率(使用 logit link).使用您问题中指示的特定回归向量,我们可以计算两个线性预测变量,然后应用各自的反 link 函数以获得平均值 mu
和零 inflation 概率 pr
:
mu <- exp(2.133213 -0.079156 + 0.158506 + 0.014697 * 4)
mu
## [1] 9.692487
pr <- plogis(-0.82861 -0.08333 -0.27054 + 0.01733 * 4)
pr
## [1] 0.2472822
然后我们可以将这些输入到混合物密度中(参见小插图中的方程式 7:
y <- 0:5
pr * I(y == 0) + (1-pr) * dpois(y, mu)
## [1] 0.2473287134 0.0004504784 0.0021831278 0.0070533124 0.0170910338
## [6] 0.0331309230
R
中的 pscl
包用于拟合零膨胀泊松模型等模型。
我有一个关于每周食物消费的数据框,它是零膨胀的。我在拟合零膨胀泊松 (ZIP) 模型时没有遇到任何问题,该模型成功预测了我的数据中零计数的百分比。数据包含大约 30% 的零计数,以及超过 4600 个观测值。
ZIP 模型是:
zeroinfl(LightC.home~SEX+AGEDET+Inhabitants, data=FoodAnalysis)
其中 LightC
是每周消费计数(范围 0 - 74),SEX
是受访者性别(具有 2 个水平的因素),AGEDET
是受访者年龄段(具有 12 的因素级别,例如“5-9 岁”),Inhabitants
是家庭中的人数(整数,范围为 1 到 8)。
ZIP 模型摘要为:
Call:
zeroinfl(formula = LightC.home ~ SEX + AGEDET + Inhabitants, data = FoodAnalysis)
Pearson residuals:
Min 1Q Median 3Q Max
-3.3479 -1.2781 -0.5170 0.6342 12.2912
Count model coefficients (poisson with log link):
Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.133213 0.029229 72.983 < 2e-16 ***
SEXFemale -0.079156 0.010284 -7.697 1.39e-14 ***
AGEDET5-9 years -0.038153 0.032745 -1.165 0.243963
AGEDET10-14 years 0.014199 0.032411 0.438 0.661317
AGEDET15-17 years 0.253942 0.035419 7.170 7.52e-13 ***
AGEDET18-24 years 0.148395 0.029089 5.101 3.37e-07 ***
AGEDET25-34 years 0.158506 0.026291 6.029 1.65e-09 ***
AGEDET35-44 years 0.157821 0.026043 6.060 1.36e-09 ***
AGEDET45-54 years 0.307299 0.026153 11.750 < 2e-16 ***
AGEDET55-64 years 0.340590 0.026913 12.655 < 2e-16 ***
AGEDET65-74 years 0.361976 0.027260 13.278 < 2e-16 ***
AGEDET75-84 years 0.251614 0.039866 6.311 2.76e-10 ***
AGEDET85 years or more 0.606829 0.083345 7.281 3.32e-13 ***
Inhabitants 0.014697 0.004302 3.416 0.000635 ***
Zero-inflation model coefficients (binomial with logit link):
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.82861 0.17389 -4.765 1.89e-06 ***
SEXFemale -0.08333 0.07196 -1.158 0.246893
AGEDET5-9 years -0.27280 0.18082 -1.509 0.131390
AGEDET10-14 years -0.32820 0.18390 -1.785 0.074308 .
AGEDET15-17 years -0.06472 0.20589 -0.314 0.753276
AGEDET18-24 years -0.06973 0.16047 -0.435 0.663896
AGEDET25-34 years -0.27054 0.14791 -1.829 0.067385 .
AGEDET35-44 years -0.71412 0.15648 -4.564 5.03e-06 ***
AGEDET45-54 years -0.50510 0.15585 -3.241 0.001191 **
AGEDET55-64 years -0.65281 0.16541 -3.947 7.92e-05 ***
AGEDET65-74 years -1.09276 0.18313 -5.967 2.41e-09 ***
AGEDET75-84 years -1.28092 0.34508 -3.712 0.000206 ***
AGEDET85 years or more -12.75039 279.21031 -0.046 0.963577
Inhabitants 0.01733 0.02872 0.603 0.546296
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Number of iterations in BFGS optimization: 35
Log-likelihood: -2.136e+04 on 28 Df
我使用 pscl
包中的 predprob
命令来构建食物消费概率的向量。这构建了一个矩阵,每个观察值一行,每个观察值给出了 0(最小值)和 74(最大值)之间的每个计数的消耗概率。此矩阵中有 165 个唯一行,这是由于零膨胀泊松模型中预测变量的 165 个唯一组合。
我如何为每个预测变量组合(例如女性、25-34 岁、4 名居民)构建支持这 75 个概率的公式?从数学角度看不懂这75个概率之间的关系
例如,预测组合 SEX=="Female"
、AGEDET=="25-34 years"
和 Inhabitants == 4
给出了数据中具有该预测组合的每个人的这些概率(仅显示 75 个中的前 6 个) :
X0 X1 X2 X3 X4 X5
0.2473285 0.0004504804 0.002183136 0.007053337 0.01709108 0.03313101
考虑到原始 zeroinfl
公式看起来像是简单地估计预测变量组合的消耗平均值而不是所有 75 个概率,这些概率是如何估计的?
零膨胀泊松模型是零点质量点和泊松分布的混合体。有关确切的公式,请参阅 vignette("countreg", package = "pscl")
的第 2.3 节。
在您的模型中有两个线性预测变量:一个用于泊松分量的均值(使用 log link),另一个用于零 inflation 概率(使用 logit link).使用您问题中指示的特定回归向量,我们可以计算两个线性预测变量,然后应用各自的反 link 函数以获得平均值 mu
和零 inflation 概率 pr
:
mu <- exp(2.133213 -0.079156 + 0.158506 + 0.014697 * 4)
mu
## [1] 9.692487
pr <- plogis(-0.82861 -0.08333 -0.27054 + 0.01733 * 4)
pr
## [1] 0.2472822
然后我们可以将这些输入到混合物密度中(参见小插图中的方程式 7:
y <- 0:5
pr * I(y == 0) + (1-pr) * dpois(y, mu)
## [1] 0.2473287134 0.0004504784 0.0021831278 0.0070533124 0.0170910338
## [6] 0.0331309230