2011-08-01 31 views
5

私はデータセットに欠損値を代入する方法を模索しようとしています。私のデータセットには、年(2001〜2009年)、月(1-12)、性別(M/F)、年齢グループ(4グループ)の出現回数(不自然、自然および合計)が含まれています。RのポアソンGLM回帰の欠損値の予測/代入?

私が検討している帰属法の1つは、(ポアソン)回帰帰属です。

私のデータは次のようになります言う:基本的なGLM回帰を行った後

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 
... 

から96回の観測が原因彼らが行方不明であることに削除されています。

このGLMモデルの係数を使用してTotalの欠損値を '予測する'(つまり、impute)、別のデータフレームに格納するだけであっても、私はそれらをマージするExcelを使用します)?私は係数を使って異なる階層行を予測できることを知っていますが、これは永遠にかかるでしょう。うまくいけば、1ステップの関数/メソッドがありますか?

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 

答えて

6

まず、無作為に欠落すると仮定してください。あなたの例は、女性と年齢層との共存の欠如のように見えます。欠落がどの予測変数に関連しているか(または予測変数がないかどうか)を実際にテストする必要があります。そうであれば、応答は歪んでいる可能性があります。

第2に、探している機能がpredictである可能性があります。これはglmモデルをとる可能性があります。詳細については、?predict.glmを参照してください。欠損値に対処するために、モデルのカスケード(ネストされたモデル)をフィットさせたい場合があります。

+0

迅速な対応をありがとう!私は見てみる?predict.glm!失われたことについて - 基本的に2007年と2008年の数ヶ月は欠落しています(男性と女性の両方、そしてすべての年齢層で)。私は欠けているメカニズムを理解しようとしました - しかし、まだ少しばかげています。予測された値がどのように見えているのかを確認し、さらに調査します。 おそらく、モデルのカスケード(ネストされたモデル)について読む必要があります。ありがとう – OSlOlSO

+0

+1 NAレスポンスの良い点。 –

+0

NB:カスケードは、観測が欠落している場合の単なる一連のモデルです。数学的には、予測子がない場合はGLMモデルがないため、そのシナリオの代替モデルを用意する必要があります。どのようにそれらを選ぶかはあなた次第です。モデリング機能が「わからない」と言うのは、賢明な人たちと同じように、安全でなければなりません。 :) – Iterator

0

miceパッケージは、他の値に基づく回帰スキームを使用して各欠損値を予測できるようにする同じ名前の機能を提供します。それは反復的なMCMCアルゴリズムを使用しているので、欠落している予測変数にも対処できます。

私はポアソン回帰は選択肢だとは思いませんが、例のように大きなものがあれば、通常の回帰は合理的な近似を提供するはずです。