Формула или матрица, лежащие в основе прогнозов количества с использованием predprob в PSCL

pscl пакет в R используется, среди прочих моделей, для моделей Пуассона с нулевым давлением.

У меня есть данные о еженедельном потреблении пищи, которые равны нулю. У меня не было проблем с подгонкой модели Пуассона с нулевым раздувом (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

Я использовал predprob команда в pscl пакет для построения вектора вероятностей потребления продуктов питания. Это построило матрицу, по одной строке на наблюдение, причем каждому наблюдению давалась вероятность потребления для каждого счета от 0 (минимум) до 74 (максимум). В этой матрице 165 уникальных строк, что обусловлено 165 уникальными комбинациями предикторов в модели Пуассона с нулевым раздуванием.

Как я могу построить формулу, лежащую в основе этих 75 вероятностей для каждой комбинации предикторов (например, женщины, в возрасте 25-34 лет, 4 жителей)? Я не понимаю взаимосвязи между 75 вероятностями с математической точки зрения.

Например, комбинация предикторов SEX=="Female", AGEDET=="25-34 years" а также Inhabitants == 4, дает эти вероятности для каждого человека с этой комбинацией предиктора в данных (показаны только первые 6 из 75):

        X0            X1           X2           X3          X4          X5
 0.2473285  0.0004504804  0.002183136  0.007053337  0.01709108  0.03313101

Как оценивались эти вероятности, учитывая, что оригинал zeroinfl Формула выглядит так, будто она просто оценивает среднее значение потребления для комбинации предикторов, а не для всех 75 вероятностей?

1 ответ

Решение

Раздуваемая нулями модель Пуассона представляет собой смесь точечной массы в нуле и распределения Пуассона. Смотрите Раздел 2.3 vignette("countreg", package = "pscl") для точных формул.

В вашей модели есть два линейных предиктора: один для среднего компонента Пуассона (с лог-ссылкой) и один для вероятности нулевой инфляции (с логит-ссылкой). Используя конкретный вектор регрессора, указанный в вашем вопросе, мы можем вычислить оба линейных предиктора, а затем применить соответствующие функции обратной связи, чтобы получить среднее значение. mu и вероятность нулевой инфляции 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
Другие вопросы по тегам