在R中预测/填补泊松GLM回归模型中的缺失值?

6
我将尝试探索在数据集中填补缺失值的方法。我的数据集包含2001年至2009年、1月至12月、男性/女性和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
首先,对于缺失随机假设一定要非常小心。你的例子似乎表明缺失与女性和年龄组共同出现。你应该真正测试一下缺失是否与任何预测变量相关(或者是否有任何预测变量缺失)。如果是这样的话,响应可能会被扭曲。
其次,你要寻找的函数很可能是predict,它可以采用glm模型。请参阅?predict.glm以获得更多指导。您可能需要拟合一系列模型(即嵌套模型)来处理缺失值。

谢谢您的快速回复!我会看一下?predict.glm! 关于缺失值 - 基本上整个2007年和2008年的几个月都缺失了(对于男性、女性和所有年龄组都是如此)。我尝试理解缺失机制 - 但仍然有点模糊。我会看看预测值的情况,然后进一步调查。我可能需要阅读关于模型级联(嵌套模型)的内容。谢谢。 - OSlOlSO
注意:级联只是一系列模型,用于处理缺失观测值。从数学上讲,如果一个预测变量缺失,就没有广义线性模型可用,因此您需要为该场景准备替代模型。如何选择这些模型取决于您。对于建模函数来说,说“我不知道”应该是安全的 - 就像明智的人一样。 :) - Iterator
对于随机缺失的测试,有几种方法,但一个好的视觉方法就是使用两个类,并查看其他变量的图表,条件是变量(或响应)是否缺失。iplot包在这方面非常有帮助。 - Iterator
1
继续嵌套模型:虽然可以通过编程方式进行嵌套,但你应该自己完成。学习如何处理缺失值比忽略它们要好得多。有时,在调查数据缺失的原因时,可以对响应的影响(从而如何建模)有很多收获。据我所知,glm不支持级联,但你可以使用前向选择变量进行类似操作。无论如何,最初的问题与预测有关,而不是所有随后的数据分析。 :) - Iterator
@Iterator Sjo - 感谢您提供的所有信息。我一定会阅读您在这里说的内容。但是我的统计/ R知识不太好,我并不理解您刚才所说的一切。 - OSlOlSO

0

mice包提供了一个同名函数,它可以使用基于其他值的回归方案来预测每个缺失值。它可以处理预测变量也缺失的情况,因为它使用迭代MCMC算法。

我认为泊松回归不是一个选项,但如果你所有的计数都像正常回归的例子一样大,那么正常回归应该提供一个合理的近似值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接