포아송과 음 이항 회귀는 언제 같은 계수에 적합합니까?


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

여기에 이미지 설명을 입력하십시오

(물론 이것은 데이터를 세지 않으며 모델은 의미가 없습니다 ...)

그런 다음 예측 변수를 요인으로 다시 코딩하고 두 모델이 동일한 계수에 다시 맞습니다.

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의 음 이항 회귀 분석 은 범주 예측 변수 인 성별이 Poisson ( )과 NB ( )에 의해 약간 다른 계수에 맞는 예 (6.3, pg-118-119 )를 보여줍니다. “포아송 모델과 NB 모델 간의 발생률 비율은 매우 비슷합니다. 이것은 [ R의 에 해당 ]가 0에 근접한다는 점에서 놀라운 일이 아닙니다 .”b=0.883α 1 / θb=0.881α1/θ

나는 이것을 이해하지만 위의 예에서 는 각각 9.16과 7.93으로 추정 summary(rs2)된다고 알려줍니다 .θ

계수가 정확히 같은 이유는 무엇입니까? 왜 범주 형 예측 변수에만 해당합니까?


편집 # 1

다음은 두 개의 비 직교 예측 변수가있는 예입니다. 실제로 계수는 더 이상 동일하지 않습니다.

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
음모! 나는 확실히 그것을 시도 할 것입니다. 그리고 당신의 답변을 간절히 기대합니다.
하프 패스

죄송합니다 @ half-pass; 나는 이것을 잊어 버리지 않았으며 하루 안에 무언가를 얻으려고 노력할 것입니다. (나는 절반의 답을 모았지만 다른 과제에 끌려 나갔습니다.) 바운티가 다른 답을 끌기를 바랍니다. 건배. :-)
추기경

걱정하지 마세요, @cardinal! 나는 당신과 다른 모든 놀라운 전문가들이 이력서 밖에 살고 있음을 알고 있습니다 :)
50

답변:


29

최대한의 가능성에 맞는 GLM의 친밀하지만 일반적인 속성을 발견했습니다 . 가장 간단한 경우를 고려하면 결과가 사라집니다. 단일 매개 변수를 단일 관측치에 맞추기 !

한 문장으로 답 : 우리가 관심있는 모든 것이 표본의 부분 집합을 분리하는 별도의 수단을 맞추는 것이라면 GLM은 항상 각 부분 집합 에 대해 를 하므로 밀도의 실제 오류 구조와 매개 변수화는 (포인트) 추정과 관련이 없습니다!μ^j=y¯jj

조금 더 : 최대 가능성으로 직교 범주 형 요소를 피팅하는 것은 표본의 하위 집합을 분리하는 별도의 수단을 피팅하는 것과 동일하므로 포아송과 음 이항 GLM이 동일한 모수 추정치를 산출하는 이유를 설명합니다. 실제로 우리가 포아송, 네빈, 가우시안, 역 가우시안 또는 감마 회귀를 사용하더라도 마찬가지입니다 (아래 참조). 포아송 및 네빈의 경우 기본 링크 기능은 링크이지만 빨간색 청어입니다. 이는 동일한 원시 모수 추정치를 산출하지만 아래에서이 특성은 링크 기능과 전혀 관련이 없음을 알 수 있습니다.log

구조가 더 많은 모수화에 관심이 있거나 연속 예측 변수에 의존하는 경우 추정 오차 구조는 모수 및 조건부 모델링에 사용되는 비선형 함수와 관련하여 분포의 평균-분산 관계로 인해 관련이됩니다. 방법.

GLM 및 지수 분산 제품군 : 충돌 과정

자연 형태 의 지수 분산 계열 은 로그 밀도가

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

여기서 는 자연 매개 변수 이고 는 분산 매개 변수 입니다. 경우 알려져, 이것은 단지 하나의 표준 파라미터 지수 가족이 될 것입니다. 아래에 고려 된 모든 GLM은이 제품군의 오류 모델을 가정합니다.θνν

이 가족 의 단일 관찰 샘플을 생각해보십시오 . 우리가 맞으면 최우함으로써 그 얻을 와 상관없이 값에 . 이것은 로그 가능성이 추가되어 생성하기 때문에 iid 샘플의 경우로 쉽게 확장됩니다 .θy=b(θ^)νy¯=b(θ^)

그러나, 우리는 또한 인한의 함수로서 기록 밀도의 좋은 규칙을 알고 그 따라서 실제로 입니다.θ

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

최대 가능성 추정값은 변환에서 변하지 않기 때문에이 밀도 계열에 대해 를 의미합니다 .y¯=μ^

이제 GLM에서 를 로 모델링 합니다. 여기서 는 링크 함수입니다. 그러나 가 위치 에서 단일 1을 제외한 모든 0으로 구성된 벡터 이면 입니다. 그런 다음 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

이러한 방식으로, 링크 함수 및 가정 된 에러 모델이 추정과 관련이된다.

예 : 오류 모델 (거의)은 중요하지 않습니다

아래 예에서는 세 가지 범주 형 요인에 따라 음의 이항 랜덤 데이터를 생성합니다. 각 관측치는 단일 범주에서 나오며 동일한 분산 매개 변수 ( )가 사용됩니다.k=6

우리는 다음 다섯 가지의 GLMS하는 각각의 이용이 데이터에 적합 (: 링크 ) 음 이항 ( B ) 포아송 ( C ) 가우시안 ( D ) 역 가우시안 및 ( E ) 감마 GLMS한다. 이들 모두는 지수 분산 계열의 예입니다.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

제목의 주의점은 관측치가 특정 밀도의 영역에 속하지 않으면 피팅 절차가 실패한다는 사실에서 비롯됩니다. 예를 들어 위의 데이터에서 무작위로 카운트를 생성 한 경우 Gamma GLM에는 양의 데이터가 엄격하게 필요하므로 Gamma GLM이 수렴하지 못합니다.0

예 : (거의) 링크 기능은 중요하지 않습니다

동일한 데이터를 사용하여 ( a ) 링크, ( b ) ID 링크 및 ( c ) 제곱근 링크의 세 가지 링크 함수를 사용하여 Poisson GLM에 데이터를 피팅하는 절차를 반복합니다 . 아래 표는 로그 매개 변수화로 다시 변환 한 후의 계수 추정치를 보여줍니다. (따라서 두 번째 열에는 되고 세 번째 열에는 각 맞춤 에서 원시 를 사용하는 )가 표시됩니다. 다시 한 번 추정치가 동일합니다.로그 ( β ) 로그 ( β 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

여기서 무슨 일이 일어나고 있는지 알기 위해서는 먼저 단 하나의 예측 변수가있는 범주 형 회귀 분석의 절편이 의미가 없으므로 절편없이 회귀를 수행하는 것이 좋습니다.

> 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 

따라서 발생 가능성을 최대화하는 각 경우 의 평균 모수 는 각 범주의 표본 평균과 같습니다. λ

포아송 분포의 경우 왜 이런 일이 발생하는지 분명합니다. 적합 할 매개 변수는 하나뿐이므로 단일 범주 형 예측 변수를 사용하여 모형의 전체 가능성을 최대화하는 것은 각 특정 범주의 관측치에 대한 가능성을 최대화 하는 를 독립적으로 찾는 것과 같습니다 . 포아송 분포의 최대 우도 추정값은 단순히 표본 평균이므로 회귀 계수가 각 범주의 (평균) 표본 평균 인 이유입니다.λ

음 이항의 경우 와 shape 매개 변수 두 가지 매개 변수가 있으므로 간단하지 않습니다 . 또한 회귀 분석 은 전체 데이터 세트를 포함 하는 단일 적합 상황에서 범주 형 회귀 분석은 각 범주에 대해 완전히 별개의 모델을 맞추는 것과 간단하지 않습니다. 그러나 우도 함수를 조사하면 주어진 세타에 대해 를 표본 평균 으로 설정하여 우도 함수가 다시 최대화됨을 알 수 있습니다 .λθθλ

λ=ˉ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) 정답입니다. 여기에서 더 명확하게 설명 할 수있는 한 가지는 포아송과 음 이항 사이의 관계와는 아무 관련이 없지만 최대 가능성을 통해 GLM을 맞추는 것에 대한 더 기본적인 사실입니다.
추기경

좋은 지적. 포아송과 음 이항과 관련된 유일한 사실은 평균 모수의 로그로 지정한다는 것입니다. 예를 들어, 평소 최소 제곱 회귀 분석을 수행 한 경우 계수가 명목상 다르므로 모수는 로그가 아닌 실제 평균이기 때문입니다.
mpr

2
사실, 그러나 나는 그것을 넘어서고 있다고 생각합니다 : 모든 링크 기능을 사용하여 (ML에 의해, 그리고 약간의 경고가있는) 모든 GLM을 맞추 십시오. 적합한 수단이 표본 평균과 일치하기 때문에 모수 추정치는 비선형과 동일합니다 다른 링크 사이의 변환. 특정 오차 모델은 지수 분산 계열에서 나온다는 사실과 관련이 없습니다.
추기경

이것은 내가 다루지 않은 좋은 점입니다. 나는 구체적으로 GLM보다는 ML 추정의보다 일반적인 관점에서이 질문에 접근했다. ML이 표본 평균과 다른 적합 수단 (예 : 로그 정규)을 생성하는 자연 발생 모델이 많이 있습니다. 그러나 GLM의 경우 관찰 내용이보다 간결하고 일반적인 설명으로 이어집니다.
mpr

2
@ half-pass : 모든 직교 범주 형 모델을 모두 적합하게 맞추고 y~X+0다시 시도하십시오. :-)
추기경
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.