Rのゼロインフレカウントモデル:本当の利点は何ですか?


11

ゼロインフレ鳥数を分析するために、Rパッケージpsclを使用してゼロインフレ数モデルを適用したいと思います。ただし、ドキュメントで提供されている主要な関数の1つ(?zeroinfl)の例を見て、これらのモデルの本当の利点は何なのか疑問に思い始めます。そこに示されているサンプルコードに従って、標準のポアソン、準ポアソン、負の二項モデル、単純なゼロ膨張のポアソンモデル、負の二項モデル、ゼロ成分の回帰子を含むゼロ膨張のポアソンモデル、負の二項モデルを計算しました。次に、観測データと適合データのヒストグラムを調べました。(これを複製するためのコードは次のとおりです。)

library(pscl)
data("bioChemists", package = "pscl")

## standard count data models
fm_pois  <- glm(art ~ .,    data = bioChemists, family = poisson)
fm_qpois <- glm(art ~ .,    data = bioChemists, family = quasipoisson)
fm_nb    <- glm.nb(art ~ ., data = bioChemists)

## with simple inflation (no regressors for zero component)
fm_zip  <- zeroinfl(art ~ . | 1, data = bioChemists)
fm_zinb <- zeroinfl(art ~ . | 1, data = bioChemists, dist = "negbin")

## inflation with regressors
fm_zip2  <- zeroinfl(art ~ fem + mar + kid5 + phd + ment | fem + mar + kid5 + phd + 
                     ment, data = bioChemists)
fm_zinb2 <- zeroinfl(art ~ fem + mar + kid5 + phd + ment | fem + mar + kid5 + phd + 
                     ment, data = bioChemists, dist = "negbin")

## histograms
breaks <- seq(-0.5,20.5,1)
par(mfrow=c(4,2))
hist(bioChemists$art,  breaks=breaks)
hist(fitted(fm_pois),  breaks=breaks)
hist(fitted(fm_qpois), breaks=breaks)
hist(fitted(fm_nb),    breaks=breaks)
hist(fitted(fm_zip),   breaks=breaks)
hist(fitted(fm_zinb),  breaks=breaks)
hist(fitted(fm_zip2),  breaks=breaks)
hist(fitted(fm_zinb2), breaks=breaks)!

観測および適合されたデータのヒストグラム

さまざまなモデル間の基本的な違いを確認できません(サンプルデータが「ゼロインフレ」で表示されないことは別として...)。実際、どのモデルもゼロの数の妥当な見積もりの​​半分を生み出しません。誰かがゼロインフレモデルの利点を説明できますか?関数の例としてこれを選択した理由があったに違いない。

回答:


15

お気づきのように、ゼロインフレはそれほど多くないので、これはゼロインフレートモデルの利点を探るには不適切に選択されたデータセットだと思います。

plot(fitted(fm_pois), fitted(fm_zinb))

予測値がほぼ同じであることを示しています。

ゼロインフレが多いデータセットでは、ZIモデルはポアソンとは異なる(通常はより適切な)結果を提供します。

モデルの適合度を比較するもう1つの方法は、残差のサイズを比較することです。

boxplot(abs(resid(fm_pois) - resid(fm_zinb)))

ここでも、ポアソンの残差がZINBの残差よりも小さいことを示しています。本当に問題のある残差の大きさについて何らかの考えがある場合は、各モデルの残差の比率がそれを上回っていることがわかります。たとえば、1つ以上ずれていることが許容できない場合

sum(abs(resid(fm_pois) > 1))
sum(abs(resid(fm_zinb) > 1))

後者は少し優れていることを示しています-大きな残差が20少ない。

次に問題となるのは、追加されたモデルの複雑さがあなたにとってそれだけの価値があるかどうかです。


6

ランダムな変動のため、近似値は観測値よりも分散が少ないことを示します。あなたは意味のある比較をしていません。単純なケースをと、データがだけの場合、のヒストグラムと適合値ヒストグラムを比較しません-すべての場合と同じです!、から値をシミュレートし、とヒストグラムを比較することは妥当です。X I μ I X * I X * IP O I S μのx * I X IXiPois(μ)xiμ^ixiXiPois(μ^)xixi


他にどのタイプの比較をお勧めしますか?
user7417

モデル間の適切な比較については、Peterの回答を参照してください。
Scortchi-モニカの復活
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.