GLMの過剰分散が重要かどうかを判断するテストはありますか?


44

RでポアソンGLMを作成しています。過剰分散をチェックするために、残留偏差と自由度の比を調べていsummary(model.name)ます。

この比率を「有意」とみなすカットオフ値またはテストはありますか?1より大きい場合、データは分散しすぎますが、比率が1に比較的近い場合(たとえば、比率1.7(残差= 25.48、df = 15)と1.3(rd = 324、df) = 253)]、まだ準ポアソン/負の二項式に切り替える必要がありますか?ここで、このテストの重要性を発見しまし:1-pchisq(residual deviance、df)ですが、これは一度しか見たことがなく、緊張しています。また、比率<1.5が一般に安全であると読みました(ソースが見つかりません)。ご意見?

回答:


45

RパッケージAERには、Cameron&Trivedi(1990)による過分散のテストdispersiontestを実装する関数があります。

ポアソンモデルでは、平均はあり、分散もV a r Y = μです。彼らは平等です。試験は、単に代替に対する帰無仮説としてこの仮定をテストVは、R Y = μ + C * F μ 定数C < 0手段underdispersionおよびC > 0手段過分散。関数fE(Y)=μVar(Y)=μVar(Y)=μ+cf(μ)c<0c>0は単調な関数です(多くの場合、線形または二次関数です;前者がデフォルトです)。結果のテストは、 H 0c = 0 vs. H 1c 0のテストと同等であり、使用されるテスト統計は t統計です。これは、nullの下で漸近的に標準の標準です。f(.)H0:c=0H1:c0t

例:

R> library(AER)
R> data(RecreationDemand)
R> rd <- glm(trips ~ ., data = RecreationDemand, family = poisson)
R> dispersiontest(rd,trafo=1)

Overdispersion test

data:  rd
z = 2.4116, p-value = 0.007941
alternative hypothesis: true dispersion is greater than 0
sample estimates:
dispersion 
    5.5658 

ここで、等分散(すなわちc = 0)の仮定に非常に強く反発する過剰分散(cは5.57と推定される)の証拠があることが明確にわかります。

trafo=1H0:c=1H1:c1c=c+1


1
私が使用していたglm(trips ~ 1, data = data, family = poisson)(すなわち1ではなく.、私のデータのために)、しかし素晴らしい、ありがとう
フィル・

12

odTestpsclμ=Var

>library(pscl)

>odTest(NegBinModel) 

Likelihood ratio test of H0: Poisson, as restricted NB model:
n.b., the distribution of the test-statistic under H0 is non-standard
e.g., see help(odTest) for details/references

Critical value of test statistic at the alpha= 0.05 level: 2.7055 
Chi-Square Test Statistic =  52863.4998 p-value = < 2.2e-16

ここでは、負の二項回帰を支持して、ポアソン制限の無効が拒否されNegBinModelます。どうして?検定統計量があるので52863.4998超える2.7055p-value of < 2.2e-16

の利点は、AER dispersiontestクラス "htest"の返されたオブジェクトが、クラスレスの 'odTest`よりも簡単にフォーマット(LaTeXへの変換など)されることです。



2

さらに別のオプションは、尤度比検定を使用して、過分散のある準ポアソンGLMが、過分散のない通常のポアソンGLMよりも大幅に優れていることを示すことです。

fit = glm(count ~ treatment,family="poisson",data=data) 
fit.overdisp = glm(count ~ treatment,family="quasipoisson",data=data) 
summary(fit.overdisp)$dispersion # dispersion coefficient
pchisq(summary(fit.overdisp)$dispersion * fit$df.residual, fit$df.residual, lower = F) # significance for overdispersion
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.