Quando Poisson e le regressioni binomiali negative si adattano agli stessi coefficienti?


38

Ho notato che in R, Poisson e le regressioni binomiali negative (NB) sembrano sempre corrispondere agli stessi coefficienti per i predittori categorici, ma non continui.

Ad esempio, ecco una regressione con un predittore categorico:

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

inserisci qui la descrizione dell'immagine

Ecco un esempio con un predittore continuo, in cui Poisson e NB si adattano a coefficienti diversi:

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

inserisci qui la descrizione dell'immagine

(Naturalmente questi non sono dati di conteggio e i modelli non sono significativi ...)

Quindi ricodifico il predittore in un fattore e i due modelli si adattano nuovamente agli stessi coefficienti:

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

inserisci qui la descrizione dell'immagine

Tuttavia, la regressione binomiale negativa di Joseph Hilbe fornisce un esempio (6.3, pg 118-119) in cui un predittore categorico, il sesso, è adattato con coefficienti leggermente diversi dal Poisson ( ) e NB ( b = 0,881 ). Dice: “I rapporti del tasso di incidenza tra i modelli Poisson e NB sono abbastanza simili. Ciò non sorprende vista la vicinanza di α [corrispondente a 1 / θ in R] a zero. "B=0,883B=0.881α1/θ

Lo capisco, ma negli esempi precedenti, summary(rs2)ci dice che è stimato rispettivamente a 9,16 e 7,93.θ

Quindi perché i coefficienti sono esattamente gli stessi? E perché solo per i predittori categorici?


Modifica n. 1

Ecco un esempio con due predittori non ortogonali. In effetti, i coefficienti non sono più gli stessi:

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

inserisci qui la descrizione dell'immagine

E, incluso un altro predittore, i modelli si adattano a coefficienti diversi anche quando il nuovo predittore è continuo. Quindi, ha a che fare con l'ortogonalità delle variabili fittizie che ho creato nel mio esempio originale?

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

inserisci qui la descrizione dell'immagine


6
(+1) Bella domanda. Proverò a scrivere qualcosa per te tra poche ore. Nel frattempo, potresti provare a vedere cosa succede con più predittori categorici che non sono ortogonali (suggerimento!).
cardinale

1
Intrigo! Ci proverò sicuramente. E grazie, attendo con impazienza la tua risposta.
primo passaggio

Mi dispiace @ mezzo passaggio; Non me ne sono dimenticato e cercherò di alzare qualcosa entro un giorno. (Ho una mezza risposta messa insieme, ma sono stato portato via da altri compiti.) Spero che la generosità attiri anche altre risposte. Saluti. :-)
cardinale il

Nessun problema, @cardinal! So che tu e tutti gli altri fantastici guru qui avete vite al di fuori del CV :)
mezzo passaggio il

Risposte:


29

Hai scoperto una proprietà intima, ma generica, dei GLM adatti alla massima probabilità . Il risultato cade una volta si considera il caso più semplice di tutte: Montaggio di un singolo parametro per una singola osservazione!

Una frase risposta : Se tutti abbiamo a cuore si addice mezzi separati per sottoinsiemi disgiunti di nostro campione, quindi GLMs sarà sempre resa μ j = ˉ y j per ogni sottoinsieme j , pertanto la struttura errore effettivo e parametrizzazione della densità sia diventato irrilevante alla (punto) stima!μ^j=y¯jj

Un po 'di più : l'adattamento di fattori categorici ortogonali con la massima probabilità equivale a adattamento di mezzi separati per disgiungere sottoinsiemi del nostro campione, quindi questo spiega perché Poisson e GLM binomiali negativi producono le stesse stime dei parametri. In effetti, lo stesso accade se usiamo la regressione di Poisson, negbin, Gaussian, Gaussian inversa o Gamma (vedi sotto). Nel caso di Poisson e negbin, la funzione di collegamento predefinita è il collegamento di , ma si tratta di un'aringa rossa; mentre questo produce le stesse stime dei parametri grezzi , vedremo di seguito che questa proprietà non ha assolutamente nulla a che fare con la funzione link.log

Quando siamo interessati a una parametrizzazione con più struttura, o che dipende da continui predittori, la struttura dell'errore assunto diventa rilevante a causa della relazione media-varianza della distribuzione in quanto si riferisce ai parametri e alla funzione non lineare utilizzata per modellare il condizionale si intende.

GLM e famiglie di dispersione esponenziale: corso di arresto

Una famiglia di dispersione esponenziale in forma naturale è tale che la densità del registro è del modulo

logf(y;θ,ν)=θy-B(θ)ν+un'(y,ν).

Qui è il parametro naturale e ν è il parametro di dispersione . Se ν fosse noto, sarebbe solo una famiglia esponenziale standard a un parametro. Tutti i GLM considerati di seguito assumono un modello di errore da questa famiglia.θνν

Considera un campione di una singola osservazione di questa famiglia. Se ci troviamo massima verosimiglianza, otteniamo che y = b ' ( θ ) , indipendentemente dal valore di ν . Questo si estende facilmente al caso di un campione iid poiché le verosimiglianze registro aggiungono, cedendo ˉ y = b ' ( θ ) .θy=B'(θ^)νy¯=B'(θ^)

Ma sappiamo anche, grazie alla bella regolarità della densità del tronco in funzione di , che θ Quindi, in effetti b ( θ ) = E Y = μ .

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

Poiché stime di massima verosimiglianza sono invarianti per trasformazioni, ciò significa che per questa famiglia di densità.y¯=μ^

Ora, in un GLM, modelliamo come μ i = g - 1 ( x T i β ) dove gμioμi=g1(xiTβ)g è la funzione di collegamento. Ma se è un vettore di tutti gli zeri ad eccezione di un singolo 1 in posizione j , allora μ i = g ( β j ) . La probabilità della GLM quindi si fattorizza secondo i β j e procediamo come sopra. Questo è precisamente il caso di fattori ortogonali.xijμio=g(βj)βj

Cosa c'è di così diverso nei predittori continui?

Quando i predittori sono continui o sono categorici, ma non possono essere ridotti a una forma ortogonale, allora la probabilità non viene più considerata in termini individuali con una media separata a seconda di un parametro separato. A questo punto, la struttura di errore e la funzione di collegamento non entrano in gioco.

Se si attraversa l'algebra (noiosa), le equazioni di probabilità diventano per tutti j = 1 , , p dove λ i = x T i β . Qui, iparametri β e ν entrano implicitamente attraverso la relazione di collegamento μ i = g ( λ i ) = g ( x T i β ) e varianza σ 2 i .

Σio=1n(yio-μio)Xiojσio2μioλio=0,
j=1,...,pλio=XioTββνμio=g(λio)=g(XioTβ)σio2

In questo modo, la funzione di collegamento e il modello di errore assunto diventano rilevanti per la stima.

Esempio: il modello di errore (quasi) non ha importanza

Nell'esempio seguente, generiamo dati casuali binomiali negativi in ​​base a tre fattori categorici. Ogni osservazione proviene da una singola categoria e viene utilizzato lo stesso parametro di dispersione ( ).K=6

Ci adattiamo quindi a questi dati utilizzando cinque diversi GLM, ciascuno con un collegamento : ( a ) binomiale negativo, ( b ) Poisson, ( c ) gaussiano, ( d ) gaussiano inverso e ( e ) Gamma GLM. Tutti questi sono esempi di famiglie di dispersione esponenziale.log

Dalla tabella, possiamo vedere che le stime dei parametri sono identiche , anche se alcuni di questi GLM sono per dati discreti e altri sono per dati continui, altri per dati non negativi mentre altri no.

      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

L'avvertenza nell'intestazione deriva dal fatto che la procedura di adattamento fallirà se le osservazioni non rientrano nel dominio della densità particolare. Ad esempio, se avessimo conteggi generati casualmente nei dati sopra, allora i Gamma GLM non riuscirebbero a convergere poiché i Gamma GLM richiedono dati strettamente positivi.0

Esempio: la funzione di collegamento (quasi) non ha importanza

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

L'avvertenza nell'intestazione si riferisce semplicemente al fatto che le stime grezze varieranno con la funzione di collegamento, ma le stime implicite dei parametri medi non lo faranno.

Codice 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, chiaro e completo, una risposta migliore di quello che ho dato.
mpr

@mpr, preferirei di gran lunga pensarlo complementare al tuo. Mi ha fatto molto piacere quando ho visto il tuo post; hai descritto in modo chiaro e conciso (e mostrato) cosa sta succedendo. I miei post a volte sono un po 'lunghi da leggere; Temo che questo sia uno di questi.
cardinale il

Siete entrambi fantastici. Grazie mille per avermelo spiegato con tanta chiarezza e rigore. Ho bisogno di dedicare un po 'più di tempo a digerire ora :)
Mezzo passaggio

@cardinal Da dove hai preso il 2 " family=negative.binomial(theta=2)" da?
timothy.s.lau,

23

Per vedere cosa sta succedendo qui, è utile prima fare la regressione senza l'intercettazione, poiché un'intercettazione in una regressione categoriale con un solo predittore non ha senso:

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

Poiché Poisson e le regressioni binomiali negative specificano il log del parametro medio, quindi per la regressione categoriale, esponenziando i coefficienti si otterrà il parametro medio effettivo per ogni categoria:

>  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

Questi parametri corrispondono ai mezzi effettivi sui diversi valori di categoria:

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

λ

λ che massimizzi la probabilità per le osservazioni in ciascuna particolare categoria. Lo stimatore della massima verosimiglianza per la distribuzione di Poisson è semplicemente la media del campione, motivo per cui i coefficienti di regressione sono precisamente i mezzi (log di) del campione per ciascuna categoria.

λθθλ

L(X,λ,θ)=Π(θλ+θ)θΓ(θ+Xio)Xio!Γ(θ)(λλ+θ)XiologL(X,λ,θ)=Σθ(logθ-log(λ+θ))+Xio(logλ-log(λ+θ))+log(Γ(θ+Xio)Xio!Γ(θ))ddλlogL(X,λ,θ)=ΣXioλ-θ+Xioλ+θ=n(X¯λ-X¯+θλ+θ),
quindi quando si raggiunge il massimo λ=X¯.

Il motivo per cui non si ottengono gli stessi coefficienti per i dati continui è perché in una regressione continua, log(λ)non sarà più una funzione costante a tratti delle variabili predittive, ma lineare. L'ottimizzazione della funzione di probabilità in questo caso non si riduce all'adattamento indipendente di un valoreλ per sottoinsiemi disgiunti dei dati, ma sarà piuttosto un problema non banale che viene risolto numericamente ed è probabile che produca risultati diversi per le diverse funzioni di probabilità.

Allo stesso modo, se si dispone di più predittori categorici, nonostante il modello specificato alla fine verrà specificato λ come funzione costante a tratti, in generale non ci saranno sufficienti gradi di libertà da consentire λda determinare in modo indipendente per ogni segmento costante. Ad esempio, supponiamo di avere2 predittori con 5categorie ciascuno. In questo caso, il tuo modello ha10 gradi di libertà, mentre ci sono 5*5=25 combinazioni diverse e uniche delle categorie, ognuna delle quali avrà il proprio valore di λ. Quindi, supponendo che le intersezioni di queste categorie non siano vuote (o almeno quello11 di questi sono non vuoti), il problema della massimizzazione della probabilità diventa di nuovo non banale e generalmente produrrà risultati diversi per Poisson rispetto al binomio negativo o qualsiasi altra distribuzione.


5
(+1) Buona risposta. Una cosa che penso possa essere elaborata in modo più esplicito qui è che questo non ha nulla a che fare con alcuna relazione tra il Poisson e il binomio negativo, ma piuttosto fatti di base sull'adattamento dei GLM con la massima probabilità.
cardinale il

Buon punto. L'unica cosa reale che Poisson e il binomio negativo hanno a che fare con questo è che sono specificati dal registro del parametro medio. Ad esempio, se si eseguisse una regressione dei minimi quadrati ordinaria, i coefficienti sarebbero nominalmente diversi perché il parametro avrebbe la media effettiva anziché il log.
mpr

2
Vero, ma penso che vada un po 'oltre: adatta qualsiasi GLM usando qualsiasi funzione di collegamento (da ML e con avvertenze molto minori) e poiché i mezzi adattati corrisponderanno ai mezzi di campionamento, quindi le stime dei parametri sono identiche a quelle non lineari trasformazione tra collegamenti diversi. Il modello di errore specifico è irrilevante oltre al fatto che proviene da una famiglia di dispersione esponenziale.
cardinale

Questo è un buon punto che non ho trattato. Ho affrontato questa domanda dal punto di vista più generale della stima ML, piuttosto che dai GLM. Esistono molti modelli naturali in cui ML produrrà mezzi adattati che differiscono dai mezzi di campionamento (ad esempio lognormale). Ma per i GLM, la tua osservazione porta a una spiegazione più concisa e più generale.
mpr

2
@ mezzo passaggio: adatta tutti i tuoi modelli categoriali ortogonali come y~X+0e riprova. :-)
cardinale il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.