lme4 glmerおよびglmer.nbを使用してカウントデータGLMMを解釈するのに役立ちます-負の2項対ポアソン


9

GLMMの仕様と解釈につ​​いて質問があります。3つの質問は間違いなく統計的で、2つはRについてより具体的です。最終的に問題はGLMMの結果の解釈だと思うので、ここに投稿します。

私は現在GLMMに適合させようとしています。Longitudinal Tract Databaseの米国国勢調査データを使用しています。私の観察は国勢調査地区です。私の従属変数は空いている住宅の数で、空室と社会経済変数の関係に興味があります。ここの例は単純で、2つの固定効果を使用しています。非白人人口の割合(人種)と中央値世帯収入(クラス)、およびそれらの相互作用です。私は2つの入れ子にされたランダム効果を含めたいと思います:数十年から数十年以内のトラクト、つまり(10年/トラクト)。私はこれらのランダムを、空間的(すなわちトラクト間)および時間的(すなわち数十年間)の自己相関を制御するために検討しています。ただし、固定効果としては10年にも興味があるので、固定要素としても含めています。

私の独立変数は非負の整数カウント変数であるため、ポアソンおよび負の二項GLMMを近似しようとしています。オフセットとして、総住宅数のログを使用しています。これは、係数が空き家の総数ではなく、空室率への影響として解釈されることを意味します。

私は現在、ポアソンと負の二項GLMMの結果からglmerとglmer.nbを用いて推定していlme4。係数の解釈は、データと研究領域に関する私の知識に基づいて私には理にかなっています。

データスクリプトが必要な場合は、私のGithubにあります。スクリプトには、モデルを構築する前に行った記述的調査の詳細が含まれています。

これが私の結果です:

ポアソンモデル

Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
 Family: poisson  ( log )
Formula: R_VAC ~ decade + P_NONWHT + a_hinc + P_NONWHT * a_hinc + offset(HU_ln) +      (1 | decade/TRTID10)
   Data: scaled.mydata

     AIC      BIC   logLik deviance df.resid 
 34520.1  34580.6 -17250.1  34500.1     3132 

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.24211 -0.10799 -0.00722  0.06898  0.68129 

Random effects:
 Groups         Name        Variance Std.Dev.
 TRTID10:decade (Intercept) 0.4635   0.6808  
 decade         (Intercept) 0.0000   0.0000  
Number of obs: 3142, groups:  TRTID10:decade, 3142; decade, 5

Fixed effects:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept)     -3.612242   0.028904 -124.98  < 2e-16 ***
decade1980       0.302868   0.040351    7.51  6.1e-14 ***
decade1990       1.088176   0.039931   27.25  < 2e-16 ***
decade2000       1.036382   0.039846   26.01  < 2e-16 ***
decade2010       1.345184   0.039485   34.07  < 2e-16 ***
P_NONWHT         0.175207   0.012982   13.50  < 2e-16 ***
a_hinc          -0.235266   0.013291  -17.70  < 2e-16 ***
P_NONWHT:a_hinc  0.093417   0.009876    9.46  < 2e-16 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr) dc1980 dc1990 dc2000 dc2010 P_NONWHT a_hinc
decade1980  -0.693                                            
decade1990  -0.727  0.501                                     
decade2000  -0.728  0.502  0.530                              
decade2010  -0.714  0.511  0.517  0.518                       
P_NONWHT     0.016  0.007 -0.016 -0.015  0.006                
a_hinc      -0.023 -0.011  0.023  0.022 -0.009  0.221         
P_NONWHT:_h  0.155  0.035 -0.134 -0.129  0.003  0.155   -0.233
convergence code: 0
Model failed to converge with max|grad| = 0.00181132 (tol = 0.001, component 1)

負の二項モデル

Generalized linear mixed model fit by maximum likelihood (Laplace Approximation) ['glmerMod']
 Family: Negative Binomial(25181.5)  ( log )
Formula: R_VAC ~ decade + P_NONWHT + a_hinc + P_NONWHT * a_hinc + offset(HU_ln) +      (1 | decade/TRTID10)
   Data: scaled.mydata

     AIC      BIC   logLik deviance df.resid 
 34522.1  34588.7 -17250.1  34500.1     3131 

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.24213 -0.10816 -0.00724  0.06928  0.68145 

Random effects:
 Groups         Name        Variance  Std.Dev. 
 TRTID10:decade (Intercept) 4.635e-01 6.808e-01
 decade         (Intercept) 1.532e-11 3.914e-06
Number of obs: 3142, groups:  TRTID10:decade, 3142; decade, 5

Fixed effects:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept)     -3.612279   0.028946 -124.79  < 2e-16 ***
decade1980       0.302897   0.040392    7.50 6.43e-14 ***
decade1990       1.088211   0.039963   27.23  < 2e-16 ***
decade2000       1.036437   0.039884   25.99  < 2e-16 ***
decade2010       1.345227   0.039518   34.04  < 2e-16 ***
P_NONWHT         0.175216   0.012985   13.49  < 2e-16 ***
a_hinc          -0.235274   0.013298  -17.69  < 2e-16 ***
P_NONWHT:a_hinc  0.093417   0.009879    9.46  < 2e-16 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr) dc1980 dc1990 dc2000 dc2010 P_NONWHT a_hinc
decade1980  -0.693                                            
decade1990  -0.728  0.501                                     
decade2000  -0.728  0.502  0.530                              
decade2010  -0.715  0.512  0.517  0.518                       
P_NONWHT     0.016  0.007 -0.016 -0.015  0.006                
a_hinc      -0.023 -0.011  0.023  0.022 -0.009  0.221         
P_NONWHT:_h  0.154  0.035 -0.134 -0.129  0.003  0.155   -0.233

ポアソンDHARMaテスト

    One-sample Kolmogorov-Smirnov test

data:  simulationOutput$scaledResiduals
D = 0.044451, p-value = 8.104e-06
alternative hypothesis: two-sided

    DHARMa zero-inflation test via comparison to expected zeros with simulation under H0 = fitted model

data:  simulationOutput
ratioObsExp = 1.3666, p-value = 0.159
alternative hypothesis: more

負の二項DHARMaテスト

    One-sample Kolmogorov-Smirnov test

data:  simulationOutput$scaledResiduals
D = 0.04263, p-value = 2.195e-05
alternative hypothesis: two-sided

    DHARMa zero-inflation test via comparison to expected zeros with simulation under H0 = fitted model

data:  simulationOutput2
ratioObsExp = 1.376, p-value = 0.174
alternative hypothesis: more

DHARMaプロット

ポアソン

ポアソンモデルDHARMaプロット

負の二項

負の二項モデルDHARMaプロット

統計の質問

私はまだGLMMを理解しているので、仕様と解釈につ​​いて不安を感じています。いくつか質問があります。

  1. 私のデータはポアソンモデルの使用をサポートしていないようです。そのため、負の二項式を使用する方がよいでしょう。ただし、最大制限を増やしても、負の二項モデルが反復制限に達するという警告が常に表示されます。「theta.ml(Y、mu、weights = object @ resp $ weights、limit = limit、:反復制限に達しました。」これは、かなりの数の異なる仕様(つまり、固定効果とランダム効果の両方の最小モデルと最大モデル)を使用して発生します。また、上位1%の値は非常に外れ値であるため(最下位99%の範囲は0〜1012、上位1%は1013〜5213)、従属(外れ値)の外れ値も削除してみました。 tは反復に影響を与え、係数にもほとんど影響を与えません。ここではそれらの詳細を含めません。ポアソンと負の二項式の間の係数もかなり似ています。この収束の欠如は問題ですか?負の二項モデルは適切ですか?を使用して負の二項モデルも実行しましたすべてのオプティマイザではなくAllFitがこの警告をスローします(bobyqa、Nelder Mead、およびnlminbwはスローしませんでした)。

  2. 私の10年間の固定効果の分散は一貫して非常に低いか0です。これは、モデルが過適合であることを意味していることを理解しています。固定効果から10を取り除いても、10進変量効果の分散は0.2620に増加し、固定効果係数にはあまり影響しません。それを残すことに何か問題がありますか?私はそれを単に観測の分散の間で説明するために必要とされていないと解釈します。

  3. これらの結果は、ゼロインフレモデルを試す必要があることを示していますか?DHARMaはゼロインフレが問題ではないかもしれないと示唆しているようです。とにかく私が試してみるべきだと思うなら、以下を見てください。

Rの質問

  1. ゼロインフレモデルを試してみてもかまいませんが、ゼロパッケージのポアソンと負の二項GLMMの入れ子になったランダム効果をどのパッケージが意味するかはわかりません。glmmADMBを使用してAICをゼロ膨張モデルと比較しますが、これは単一のランダム効果に制限されているため、このモデルでは機能しません。MCMCglmmを試すこともできますが、ベイジアン統計がわからないので、これも魅力的ではありません。他のオプションはありますか?

  2. 集計(モデル)内で指数係数を表示できますか、またはここで行ったように、集計外で表示する必要がありますか?


1
(2)は簡単です。decade固定とランダムの両方を持つことは意味がありません。それを固定して、(1 | decade:TRTID10)ランダムにのみ含める(これは、10年ごとに同じレベルがないと(1 | TRTID10)仮定することTRTID10と同じです)か、固定効果から削除します。レベルが4つしかない場合は、それを修正しておくとよいでしょう。通常の推奨事項は、5つ以上のレベルがある場合はランダムな効果を当てはめることです。
amoeba

1
それとは別に、2つのプロットは同一に見えます。
amoeba

1
収束警告について-(1)でbobyqaオプティマイザを試したが警告は出されなかったと言った。それで問題は何ですか?だけを使用してくださいbobyqa
amoeba

1
ちなみに、「私のデータはポアソンモデルの使用をサポートしていないようです」と言う理由がわかりません。
amoeba

1
私の経験でbobyqaは、デフォルトのオプティマイザよりも収束が良好です(そして、将来のバージョンのでデフォルトになるとどこかで読んだと思いますlme4)。デフォルトのオプティマイザーがと収束する場合でも、収束しないことについて心配する必要はないと思いますbobyqa
amoeba

回答:


10

あなたの見積もりで対処すべきいくつかの重要な問題があると思います。

私があなたのデータを調べて集めたものから、あなたのユニットは地理的にグループ化されていません、すなわち、郡内の国勢調査地区です。したがって、グループ化要素としてトラクトを使用することは、グループと同じ数の個体がいることを意味するため(または言い換えると、すべてのグループにそれぞれ1つだけの観測値があるため)、空間の不均一性をキャプチャするのに適していません。マルチレベルのモデリング戦略を使用すると、グループ間の分散を制御しながら、個々のレベルの分散を推定できます。グループにはそれぞれ1人しかいないため、グループ間の差異は個人レベルの差異と同じであり、マルチレベルアプローチの目的に反しています。

一方、グループ化係数は、繰り返し測定を表すことができます。たとえば、縦断的研究の場合、個人の「数学」スコアは毎年リコアされる可能性があります。したがって、各学生のn年間の年間値が得られます(この場合、グループ化係数はn学生内で「ネストされた」観察の数)。あなたの場合、あなたは国勢調査地区ごとにを繰り返し測定しましたdecade。したがって、TRTID10変数をグループ化因子として使用して、「10年間の差異」を取得できます。これにより、635の地域にネストされた3142の観測結果が得られ、国勢調査地域あたり約4および5の観測結果が得られます。

コメントで述べたように、decade国勢調査区ごとに約50年しかないため、グループ化因子としての使用はあまり適切ではなく、それらの効果はdecade共変量として導入することでより適切に捉えることができます。

次に、ポアソンモデルまたは負の二項モデル(またはゼロインフレートアプローチ)を使用してデータをモデル化する必要があるかどうかを判断します。データの過剰分散の量を考慮してください。ポアソン分布の基本的な特性は等分散です。これは、平均が分布の分散に等しいことを意味します。データを見ると、過度の分散が存在することは明らかです。分散は平均よりはるかに大きいです。

library(dplyr)    
 dispersionstats <- scaled.mydata %>%
 + group_by(decade) %>%
 + summarise(
 + means = mean(R_VAC),
 + variances = var(R_VAC),
 + ratio = variances/means)

##   dispersionstats
##   # A tibble: 5 x 5
##   decade     means variances     ratio 
##    <int>     <dbl>     <dbl>     <dbl> 
## 1   1970  45.43513   4110.89  90.47822 
## 2   1980 103.52365  17323.34 167.33707 
## 3   1990 177.68038  62129.65 349.67087 
## 4   2000 190.23150  91059.60 478.67784 
## 5   2010 247.68246 126265.60 509.78821 

それでも、負の2項が統計的に適切かどうかを判断するための標準的な方法は、ポアソンモデルと負の2項モデルの間で尤度比検定を行うことです。

library(MASS)
library(lmtest)

modelformula <- formula(R_VAC ~ factor(decade) + P_NONWHT * a_hinc + offset(HU_ln))

poismodel <- glm(modelformula, data = scaled.mydata, family = "poisson")   
nbmodel <- glm.nb(modelformula, data = scaled.mydata)

lrtest(poismodel, nbmodel)

## Likelihood ratio test

##  Model 1: R_VAC ~ factor(decade) + P_NONWHT * a_hinc + offset(HU_ln)  
## Model 2: R_VAC ~ factor(decade) + P_NONWHT * a_hinc + offset(HU_ln)
##   #Df  LogLik Df  Chisq Pr(>Chisq)
## 1   8 -154269
## 2   9  -17452  1 273634  < 2.2e-16 ***
##  ---
## Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

これを確立した後、次のテストでは、同様のアプローチを使用してマルチレベル(混合モデル)アプローチが正当化されるかどうかを検討できます。これは、マルチレベルバージョンの方が適切であることを示唆しています。(モデルが他の点で同じである限り、ポアソン分布を想定したglmerフィットをglmer.nbオブジェクトと比較するために、同様のテストを使用できます。)

library(lme4)

glmmformula <- update(modelformula, . ~ . + (1|TRTID10))

nbglmm <- glmer.nb(glmmformula, data = scaled.mydata)

lrtest(nbmodel, nbglmm)

## Model 1: R_VAC ~ factor(decade) + P_NONWHT * a_hinc + offset(HU_ln)
## Model 2: R_VAC ~ factor(decade) + P_NONWHT + a_hinc + (1 | TRTID10) +
##     P_NONWHT:a_hinc + offset(HU_ln)
##   #Df LogLik Df Chisq Pr(>Chisq)
## 1   9 -17452
## 2  10 -17332  1 239.3  < 2.2e-16 ***
## ---
## Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

ポアソンモデルとnbモデルの推定値については、それらは実際には互いに非常に類似していると予想されます。主な違いは標準誤差です。つまり、過剰分散が存在する場合、ポアソンモデルは標準誤差にバイアスをかける傾向があります。例としてデータを取り上げます。

poissonglmm <- glmer(glmmformula, data = scaled.mydata)
summary(poissonglmm)

## Random effects:
##  Groups  Name        Variance Std.Dev.
## TRTID10 (Intercept) 0.2001   0.4473
## Number of obs: 3142, groups:  TRTID10, 635

## Fixed effects:
##                     Estimate Std. Error z value Pr(>|z|)
## (Intercept)        -2.876013   0.020602 -139.60   <2e-16 ***
## factor(decade)1980  0.092597   0.007602   12.18   <2e-16 ***
## factor(decade)1990  0.903543   0.007045  128.26   <2e-16 ***
## factor(decade)2000  0.854821   0.006913  123.65   <2e-16 ***
## factor(decade)2010  0.986126   0.006723  146.67   <2e-16 ***
## P_NONWHT           -0.125500   0.014007   -8.96   <2e-16 ***
## a_hinc             -0.107335   0.001480  -72.52   <2e-16 ***
## P_NONWHT:a_hinc     0.160937   0.003117   51.64   <2e-16 ***
## ---
## Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

summary(nbglmm)
## Random effects:
##  Groups  Name        Variance Std.Dev.
##  TRTID10 (Intercept) 0.09073  0.3012
## Number of obs: 3142, groups:  TRTID10, 635

## Fixed effects:
##                     Estimate Std. Error z value Pr(>|z|)
## (Intercept)        -2.797861   0.056214  -49.77  < 2e-16 ***
## factor(decade)1980  0.118588   0.039589    3.00  0.00274 **
## factor(decade)1990  0.903440   0.038255   23.62  < 2e-16 ***
## factor(decade)2000  0.843949   0.038172   22.11  < 2e-16 ***
## factor(decade)2010  1.068025   0.037376   28.58  < 2e-16 ***
## P_NONWHT            0.020012   0.089224    0.22  0.82253
## a_hinc             -0.129094   0.008109  -15.92  < 2e-16 ***
## P_NONWHT:a_hinc     0.149223   0.018967    7.87 3.61e-15 ***
## ---
## Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

係数推定値がすべて非常に似ていることに注目してください。主な違いは、共変量の1つの有意性と変量効果分散の違いだけです。これは、nbの過剰分散パラメーターによって取得された単位レベルの分散であることを示唆しています。モデル(thetaglmer.nbオブジェクトの値)は、変量効果によって取得された管路間の差異の一部を取得します。

指数係数(および関連する信頼区間)については、以下を使用できます。

fixed <- fixef(nbglmm)
confnitfixed <- confint(nbglmm, parm = "beta_", method = "Wald") # Beware: The Wald method is less accurate but much, much faster.

# The exponentiated coefficients are also known as Incidence Rate Ratios (IRR)
IRR <- exp(cbind(fixed, confintfixed)
IRR
##                         fixed      2.5 %     97.5 %
## (Intercept)        0.06094028 0.05458271 0.06803835
## factor(decade)1980 1.12590641 1.04184825 1.21674652
## factor(decade)1990 2.46807856 2.28979339 2.66024515
## factor(decade)2000 2.32553168 2.15789585 2.50619029
## factor(decade)2010 2.90962703 2.70410073 3.13077444
## P_NONWHT           1.02021383 0.85653208 1.21517487
## a_hinc             0.87889172 0.86503341 0.89297205
## P_NONWHT:a_hinc    1.16093170 1.11856742 1.20490048

インフレゼロに関する最終的な考え。混合物のゼロ膨張成分の方程式を指定できるゼロ膨張ポアソンモデルまたはネグビンモデルのマルチレベル実装はありません(少なくとも私は知っています)。このglmmADMBモデルでは、一定のゼロインフレパラメーターを推定できます。別のアプローチはzeroinflpsclパッケージ内の関数を使用することですが、これはマルチレベルモデルをサポートしていません。したがって、単一レベルの負の二項式の適合を、単一レベルのゼロの膨張した負の二項式と比較できます。ゼロレベルがシングルレベルモデルにとって重要ではない場合、マルチレベル仕様にとって重要ではない可能性があります。

補遺

空間的自己相関が心配な場合は、何らかの地理的加重回帰を使用してこれを制御できます(ただし、これはエリアではなくポイントデータを使用すると思います)。または、国勢調査地区を追加のグループ化要素(州、郡)でグループ化し、これをランダム効果として含めることもできます。最後に、これが完全に実現可能かどうかはわかりませんが、たとえば、R_VAC1次近傍の平均カウントを共変量として使用して、空間依存を組み込むことができる場合があります。いずれの場合でも、そのようなアプローチの前に、(Global MoranのI、LISAテスト、および同様のアプローチを使用して)空間的自己相関が実際に存在するかどうかを判断するのが賢明です。


1
brmsは、ランダム効果のあるゼロ膨張の負の二項モデルに適合できます。
アンドリューM

@prestevezと@Andrew、これはとても便利です!それは私が抱えていた多くの問題を明らかにしました。お時間を割いていただき、ありがとうございます。brms上で概説したように、zinb混合モデルのフィッティングを試み、それをglmer.nbモデルと比較します。また、変量効果のグループ化要素として国勢調査で定義された場所(基本的には自治体、約170グループ)を含めてみます(データ内の5つの郡のみなので、使用しません)。また、Global MoranのIを使用して残差の空間的自己相関をテストします。完了したらレポートを返します。
Samuel Walker

@AndrewM、情報ありがとうございます!私はbrmsに気づかず、ベイジアン統計全般に精通していませんでしたが、今はそれを調べることに非常に興味があります。
prestevez 2017年

1
@SamuelWalkerよかった!自治体は良い選択のように聞こえます(私は米国の国勢調査のデータに精通していないので、それらが適切であるかどうかを本当に知らずに郡を提案しました)。glmer.nbの適合性をbrmsオブジェクトに適合させることに関しては、ベイジアン統計に詳しくないため、それらを比較するのに最適な方法は何なのかわかりません。幸運を!
prestevez 2017年

1
@SamuelWalkerの潜在的な代替案は、標準モデルbrmsとゼロインフレートネグビンモデルの両方を使用してそれらを比較することです。
prestevez 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.