ポアソン回帰と負の二項回帰はいつ同じ係数に適合しますか?


38

Rでは、ポアソン回帰と負の二項(NB)回帰が常にカテゴリカルではあるが連続ではない予測子の係数に適合するように見えることに気付きました。

たとえば、カテゴリー予測子を使用した回帰は次のとおりです。

data(warpbreaks)
library(MASS)

rs1 = glm(breaks ~ tension, data=warpbreaks, family="poisson")
rs2 = glm.nb(breaks ~ tension, data=warpbreaks)

#compare coefficients
cbind("Poisson"=coef(rs1), "NB"=coef(rs2))

ここに画像の説明を入力してください

ポアソンとNBが異なる係数に適合する連続予測子の例を次に示します。

data(cars)
rs1 = glm(dist ~ speed, data=cars, family="poisson")
rs2 = glm.nb(dist ~ speed, data=cars)

#compare coefficients
cbind("Poisson"=coef(rs1), "NB"=coef(rs2))

ここに画像の説明を入力してください

(もちろん、これらはデータをカウントするものではなく、モデルは意味がありません...)

次に、予測変数を係数に再コーディングすると、2つのモデルが同じ係数に再び適合します。

library(Hmisc)
speedCat = cut2(cars$speed, g=5) 
#you can change g to get a different number of bins

rs1 = glm(cars$dist ~ speedCat, family="poisson")
rs2 = glm.nb(cars$dist ~ speedCat)

#compare coefficients
cbind("Poisson"=coef(rs1), "NB"=coef(rs2))

ここに画像の説明を入力してください

ただし、Joseph Hilbeの負の二項回帰では、カテゴリカル予測子である性がポアソン()とNB()によってわずかに異なる係数で近似される例(6.3、pg 118-119)がます。彼は次のように述べています。「ポアソンモデルとNBモデル​​の発生率比は非常に似ています。 [ Rのに対応]がゼロに近いことを考えると、これは驚くことではありません。」、B = 0.881 α 1 / θb=0.883b=0.881α1/θ

私はこれを理解していますが、上記の例でsummary(rs2)は、がそれぞれ9.16および7.93と推定されることを示しています。θ

なぜ係数がまったく同じなのでしょうか?そして、なぜカテゴリーの予測因子だけのために?


編集#1

次に、2つの非直交予測子を使用した例を示します。実際、係数は同じではなくなりました。

data(cars)

#make random categorical predictor
set.seed(1); randomCats1 = sample( c("A","B","C"), length(cars$dist), replace=T)
set.seed(2); randomCats2 = sample( c("C","D","E"), length(cars$dist), replace=T)

rs1 = glm(dist ~ randomCats1 + randomCats2, data=cars, family="poisson")
rs2 = glm.nb(dist ~ randomCats1 + randomCats2, data=cars)

#compare coefficients
cbind("Poisson"=coef(rs1), "NB"=coef(rs2))

ここに画像の説明を入力してください

また、別の予測変数を含めると、新しい予測変数が連続的であっても、モデルは異なる係数に適合します。だから、元の例で作成したダミー変数の直交性と関係がありますか?

rs1 = glm(dist ~ randomCats1 + speed, data=cars, family="poisson")
rs2 = glm.nb(dist ~ randomCats1 + speed, data=cars)

#compare coefficients
cbind("Poisson"=coef(rs1), "NB"=coef(rs2))

ここに画像の説明を入力してください


6
(+1)いい質問です。数時間以内に何かを書き上げます。それまでの間、直交していない複数のカテゴリカル予測子で何が起こるか試してみてください(ヒント!)。
枢機

1
陰謀!私は間違いなくそれを試してみます。そして、ありがとう、私はあなたの答えを心待ちにしています。
ハーフ渡し

すみません、@ハーフパス。私はこれを忘れていませんでしたし、1日以内に何かを起こそうとします。(私は半分の答えをまとめましたが、他のタスクによって引き離されてしまいました。)賞金が他の答えも引き付けることを願っています。乾杯。:-)
枢機

心配ありません、@ cardinal!私はあなたとすべての他の素晴らしい達人がここでの生活の外CV :)を持って知っている
半分は、合格

回答:


29

GLMの親密ではあるが一般的なプロパティが最尤法で適合することを発見しました。すべての中で最も単純なケースを考えると、結果はドロップアウトします:単一のパラメーターを単一の観測に適合させる!

1つの文の答え:サンプルのサブセットを分離するために個別の手段を適合させる場合、は各サブセットに対して常にをするため、実際のエラー構造と密度のパラメーター化は両方とも(ポイント)推定とは無関係です!μ^j=y¯jj

もう少し:最尤法による直交カテゴリ係数の適合は、サンプルのサブセットを分離するための個別の手段の適合と同等であるため、ポアソンGLMと負の二項GLMが同じパラメーター推定値をもたらす理由を説明します。実際、ポアソン、ネガビン、ガウス、逆ガウス、またはガンマ回帰を使用しても同じことが起こります(以下を参照)。ポアソンおよびネガビンの場合、デフォルトのリンク関数はリンクですが、それはニシンです。これにより同じ生のパラメータ推定値が得られますが、このプロパティは実際にはリンク関数とはまったく関係がないことがわかります。log

より多くの構造を持つパラメーター化、または連続予測子に依存するパラメーター化に関心がある場合、条件のモデリングに使用されるパラメーターと非線形関数に関連する分布の平均分散関係により、想定されるエラー構造が重要になります手段。

GLMと指数分散ファミリ:クラッシュコース

自然な形の指数分散族は、対数密度が形式であるようなもの

logf(y;θ,ν)=θyb(θ)ν+a(y,ν).

ここで、は自然パラメーターで、は分散パラメーターです。がわかっている場合、これは標準の1パラメータ指数関数ファミリになります。以下で検討するすべてのGLMは、このファミリのエラーモデルを想定しています。θνν

このファミリからの単一の観測のサンプルを考えてみましょう。を最尤法で近似すると、値に関係なく、が得られます。対数尤度が加算されるため、これはiidサンプルの場合にも容易に拡張され、ます。θy=b(θ^)νy¯=b(θ^)

しかし、我々はまた、知っている、の関数として対数密度の素敵な規則性に起因、その したがって、実際にはです。θ

θElogf(Y;θ,ν)=Eθlogf(Y;θ,ν)=0.
b(θ)=EY=μ

最尤推定値は変換の下では不変であるため、これは この密度のファミリーに対してであることを意味し 。y¯=μ^

GLMでは、をとしてモデル化します。ここで、はリンク関数です。ただし、が位置単一の1を除くすべてゼロのベクトルである場合、ます。GLMの尤度はに従って因数分解され、上記のように進みます。これは、直交因子の場合です。μiμi=g1(xiTβ)gxijμi=g(βj)βj

連続予測変数の大きな違いは何ですか?

予測変数が連続またはカテゴリカルであるが、直交形式に縮小できない場合、尤度は、個別のパラメーターに応じて個別の平均を持つ個別の用語に影響を与えなくなります。この時点で、エラー構造とリンク機能有効になります。

(退屈な)代数をと、尤度方程式は すべてのため。ここで、およびパラメーターは、リンク関係および分散介して暗黙的に入力されます。J = 1 ... P λ I = X T I β β ν μ I = G λ I= G X T I β σ 2 I

i=1n(yiμi)xijσi2μiλi=0,
j=1,,pλi=xiTββνμi=g(λi)=g(xiTβ)σi2

このようにして、リンク関数と想定誤差モデルが推定に関連します。

例:エラーモデル(ほとんど)は関係ありません

以下の例では、3つのカテゴリ因子に応じて負の二項ランダムデータを生成します。各観測値は単一のカテゴリに由来し、同じ分散パラメーター()が使用されます。k=6

次に、それぞれがリンクを持つ5つの異なるGLMを使用してこれらのデータに適合させ:(a)負の二項、(b)ポアソン、(c)ガウス、(d)逆ガウス、および(e)ガンマGLM。これらはすべて、指数分散ファミリーの例です。log

表から、これらのGLMの一部は離散データ用であり、その他は連続データ用であり、一部は非負データ用であり、その他はそうではない場合でも、パラメーター推定値は同一であることがわかります。

      negbin  poisson gaussian invgauss    gamma
XX1 4.234107 4.234107 4.234107 4.234107 4.234107
XX2 4.790820 4.790820 4.790820 4.790820 4.790820
XX3 4.841033 4.841033 4.841033 4.841033 4.841033

見出しの注意点は、観測値が特定の密度の領域内に収まらない場合、フィッティング手順が失敗するという事実に由来しています。たとえば、上記のデータでカウントがランダムに生成された場合、ガンマGLMは厳密に正のデータを必要とするため、ガンマGLMは収束に失敗します。0

例:リンク関数(ほとんど)は関係ありません

同じデータを使用して、3つの異なるリンク関数(a)リンク、(b)アイデンティティリンク、および(c)平方根リンクを持つポアソンGLMでデータをフィッティングする手順を繰り返し。次の表は、対数パラメーター化に変換した後の係数推定値を示しています。(したがって、2番目の列はを示し、3 番目の列は各近似の生のを使用してを示します)。繰り返しますが、推定値は同じです。ログβログβ 2βloglog(β^)log(β^2)β^

> coefs.po
         log       id     sqrt
XX1 4.234107 4.234107 4.234107
XX2 4.790820 4.790820 4.790820
XX3 4.841033 4.841033 4.841033

見出しの警告は、生の推定値がリンク関数によって変化するという事実に言及していますが、暗黙の平均パラメータ推定値は変化しません。

Rコード

# Warning! This code is a bit simplified for compactness.
library(MASS)
n <- 5
m <- 3
set.seed(17)
b <- exp(5+rnorm(m))
k <- 6

# Random negbin data; orthogonal factors
y <- rnbinom(m*n, size=k, mu=rep(b,each=n))
X <- factor(paste("X",rep(1:m,each=n),sep=""))

# Fit a bunch of GLMs with a log link
con <- glm.control(maxit=100)
mnb <- glm(y~X+0, family=negative.binomial(theta=2))
mpo <- glm(y~X+0, family="poisson")
mga <- glm(y~X+0, family=gaussian(link=log), start=rep(1,m), control=con)
miv <- glm(y~X+0, family=inverse.gaussian(link=log), start=rep(2,m), control=con)
mgm <- glm(y~X+0, family=Gamma(link=log), start=rep(1,m), control=con)    
coefs <- cbind(negbin=mnb$coef, poisson=mpo$coef, gaussian=mga$coef
                   invgauss=miv$coef, gamma=mgm$coef)

# Fit a bunch of Poisson GLMs with different links.
mpo.log  <- glm(y~X+0, family=poisson(link="log"))
mpo.id   <- glm(y~X+0, family=poisson(link="identity"))
mpo.sqrt <- glm(y~X+0, family=poisson(link="sqrt"))   
coefs.po <- cbind(log=mpo$coef, id=log(mpo.id$coef), sqrt=log(mpo.sqrt$coef^2))

+1、明確かつ包括的な、私が与えたものよりも良い答え。
mpr

@mpr、私はそれをあなたのものを補完するものと考えたいと思います。あなたの投稿を見たとき、私はとても喜んでいました。何が起こっているかを明確かつ簡潔に説明(および表示)しました。私の投稿を読むのに少し時間がかかることがあります。これが彼らの一人だと思う。
枢機

あなたは両方とも素晴らしいです。このような明快さと厳格さでこれを説明してくれてありがとう。私は今、消化いくつかのより多くの時間を費やす必要が:)
ハーフ合格

@cardinal「family=negative.binomial(theta=2)」の2はどこから入手しましたか?
timothy.s.lau

23

ここで何が起こっているのかを見るために、切片なしで回帰を行うことが最初に役立ちます。予測変数が1つだけのカテゴリ回帰では切片は無意味です。

> rs1 = glm(breaks ~ tension-1, data=warpbreaks, family="poisson")
> rs2 = glm.nb(breaks ~ tension-1, data=warpbreaks)

ポアソン回帰と負の二項回帰は平均パラメータの対数を指定するため、カテゴリ回帰では、係数を累乗すると各カテゴリの実際の平均パラメータが得られます。

>  exp(cbind("Poisson"=coef(rs1), "NB"=coef(rs2)))
          Poisson       NB
tensionL 36.38889 36.38889
tensionM 26.38889 26.38889
tensionH 21.66667 21.66667

これらのパラメーターは、異なるカテゴリー値の実際の平均に対応しています。

> with(warpbreaks,tapply(breaks,tension,mean))
       L        M        H 
36.38889 26.38889 21.66667 

そのため、各ケースで尤度を最大化する平均パラメータは、各カテゴリのサンプル平均に等しくなります。 λ

ポアソン分布の場合、これが発生する理由は明らかです。適合するパラメーターは1つのみであるため、単一のカテゴリー予測子を使用してモデルの全体的な尤度を最大化することは、特定の各カテゴリーの観測値の尤度を最大化するを個別に見つけることと同等です。ポアソン分布の最尤推定量は、単純にサンプル平均です。これが、回帰係数が正確に各カテゴリのサンプル平均(のログ)である理由です。λ

負の2項式の場合、2つのパラメーターと形状パラメーターが適合するため、それほど単純ではありません。さらに、回帰はデータセット全体をカバーする単一の適合します。したがって、この状況では、カテゴリー回帰は各カテゴリーに対して完全に別個のモデルを適合させることと単純に同等ではありません。ただし、尤度関数を調べると、与えられたシータに対してをサンプル平均に設定することにより、尤度関数が再び最大化されることがわかります。λθθλ

λ=ˉX

L(X,λ,θ)=(θλ+θ)θΓ(θ+xi)xi!Γ(θ)(λλ+θ)xilogL(X,λ,θ)=θ(logθlog(λ+θ))+xi(logλlog(λ+θ))+log(Γ(θ+xi)xi!Γ(θ))ddλlogL(X,λ,θ)=xiλθ+xiλ+θ=n(x¯λx¯+θλ+θ),
なので、ときに最大になり。λ=x¯

連続データに対して同じ係数を取得しない理由は、連続回帰では、が予測変数の区分定数関数ではなく、線形変数になるためです。この場合の尤度関数の最大化は、データの互いに素なサブセットに対して値を独立して近似することにはなりませんが、数値的に解決される非自明な問題であり、尤度関数ごとに異なる結果を生成する可能性があります。λlog(λ)λ

同様に、複数のカテゴリカル予測子がある場合、近似モデルは最終的にを区分的定数関数として指定するという事実にもかかわらず、一般に、各定数セグメントに対してを個別に決定できる十分な自由度がありません。たとえば、それぞれつのカテゴリを持つ予測変数があるとします。この場合、モデルにはの自由度がありますが、カテゴリには一意の異なる組み合わせがあり、各組み合わせには適合値があります。したがって、これらのカテゴリの共通部分が空ではない(または少なくともλ 2 5 10 5 * 5 = 25 λ 11λλ251055=25λ11 それらのうち、空ではない)、尤度最大化問題は再び自明ではなくなり、一般にポアソン対負の二項分布または他の分布に対して異なる結果を生成します。


5
(+1)良い答え。ここでより明確に引き出せると思うことの1つは、これがポアソンと負の二項式との関係とはまったく関係ないことですが、最尤法によるGLMのフィッティングに関するより基本的な事実です。
枢機

いい視点ね。ポアソンと負の二項式が関係する唯一の現実は、それらが平均パラメータの対数によって指定されるということです。たとえば、通常の最小二乗回帰を行った場合、パラメータは対数ではなく実際の平均になるため、係数は名目上異なります。
mpr

2
確かに、私はそれがいることを少し越えて行くと思う:フィット任意の使用GLMを任意の(MLによって、非常にマイナーな警告で)リンク機能をとフィット手段はサンプル手段と一致しますので、その後、パラメータ推定値が非線形と同じでアップしています異なるリンク間の変換。特定のエラーモデルは、指数分散ファミリに由来するという事実を超えて無関係です。
枢機

これは、私が説明しなかった良い点です。GLMを具体的にではなく、ML推定のより一般的な観点からこの質問にアプローチしました。MLがサンプル平均とは異なる適合平均を生成する自然発生モデルがたくさんあります(例:対数正規)しかし、GLMについては、観察により、より簡潔で一般的な説明が得られます。
mpr

2
@ half-pass:すべての直交カテゴリモデルy~X+0を近似して再試行します。:
枢機
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.