Прогнозирование / вменение отсутствующих значений регрессии Пуассона GLM в R? - PullRequest
5 голосов
/ 01 августа 2011

Я пытаюсь изучить способы вписывания пропущенных значений в набор данных.В моем наборе данных содержится количество случаев (Неестественный, Естественный и Общая сумма) за Год (2001-2009), Месяц (1-12), Пол (M / F) и Возрастная группа (4 группы).

Один из методов вменения, который я изучаю, - это (пуассоновское) регрессивное вменение.

Скажем, мои данные выглядят так:

    Year Month Gender AgeGroup Unnatural Natural Total
569 2006     5   Male     15up       278     820  1098
570 2006     6   Male     15up       273     851  1124
571 2006     7   Male     15up       304     933  1237
572 2006     8   Male     15up       296    1064  1360
573 2006     9   Male     15up       298     899  1197
574 2006    10   Male     15up       271     819  1090
575 2006    11   Male     15up       251     764  1015
576 2006    12   Male     15up       345     792  1137
577 2007     1 Female        0        NA      NA    NA
578 2007     2 Female        0        NA      NA    NA
579 2007     3 Female        0        NA      NA    NA
580 2007     4 Female        0        NA      NA    NA
581 2007     5 Female        0        NA      NA    NA
...

После выполнения базовой регрессии GLM - 96 наблюденийбыли удалены из-за их отсутствия.

Возможно, есть способ / пакет / функция в R, который будет использовать коэффициенты этой модели GLM для «прогнозирования» (т. е. исчисления) отсутствующих значений для Total (даже если он просто хранит его в отдельном фрейме данных - я буду использовать Excel для их объединения)?Я знаю, что могу использовать коэффициенты для прогнозирования различных иерархических строк - но это займет вечность.Надеюсь, есть одношаговая функция / метод?

Call:
glm(formula = Total ~ Year + Month + Gender + AgeGroup, family = poisson)

Deviance Residuals: 
      Min         1Q     Median         3Q        Max  
-13.85467   -1.13541   -0.04279    1.07133   10.33728  

Coefficients:
                Estimate Std. Error z value Pr(>|z|)    
(Intercept)   13.3433865  1.7541626   7.607 2.81e-14 ***
Year          -0.0047630  0.0008750  -5.443 5.23e-08 ***
Month          0.0134598  0.0006671  20.178  < 2e-16 ***
GenderMale     0.2265806  0.0046320  48.916  < 2e-16 ***
AgeGroup01-4  -1.4608048  0.0224708 -65.009  < 2e-16 ***
AgeGroup05-14 -1.7247276  0.0250743 -68.785  < 2e-16 ***
AgeGroup15up   2.8062812  0.0100424 279.444  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 403283.7  on 767  degrees of freedom
Residual deviance:   4588.5  on 761  degrees of freedom
  (96 observations deleted due to missingness)
AIC: 8986.8

Number of Fisher Scoring iterations: 4

Ответы [ 2 ]

6 голосов
/ 01 августа 2011

Во-первых, будьте очень осторожны с предположением пропустить случайно.Ваш пример выглядит так, как будто пропадание происходит вместе с женщиной и возрастной группой.Вы должны действительно проверить, связано ли отсутствие с какими-либо предикторами (или отсутствуют какие-либо предикторы).Если это так, ответы могут быть искажены.

Во-вторых, функция, которую вы ищете, вероятно, будет predict, которая может принять модель glm.См. ?predict.glm для получения дополнительной информации.Возможно, вы захотите установить каскад моделей (то есть вложенных моделей) для устранения пропущенных значений.

0 голосов
/ 14 июня 2012

Пакет mice предоставляет функцию с тем же именем, которая позволяет прогнозировать каждое пропущенное значение с использованием схемы регрессии, основанной на других значениях. Он может справиться с отсутствием предикторов, поскольку использует итеративный алгоритм MCMC.

Я не думаю, что регрессия Пуассона - это вариант, но если все ваши показатели столь же велики, как пример, нормальная регрессия должна предложить разумное приближение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...