Come interpretare i coefficienti in una regressione di Poisson?


64

Come posso interpretare i principali effetti (coefficienti per il fattore codificato fittizio) in una regressione di Poisson?

Supponiamo il seguente esempio:

treatment     <- factor(rep(c(1, 2), c(43, 41)), 
                        levels = c(1, 2),
                        labels = c("placebo", "treated"))
improved      <- factor(rep(c(1, 2, 3, 1, 2, 3), c(29, 7, 7, 13, 7, 21)),
                        levels = c(1, 2, 3),
                        labels = c("none", "some", "marked"))    
numberofdrugs <- rpois(84, 10) + 1    
healthvalue   <- rpois(84, 5)   
y             <- data.frame(healthvalue, numberofdrugs, treatment, improved)
test          <- glm(healthvalue~numberofdrugs+treatment+improved, y, family=poisson)
summary(test)

L'output è:

Coefficients:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept)       1.88955    0.19243   9.819   <2e-16 ***
numberofdrugs    -0.02303    0.01624  -1.418    0.156    
treatmenttreated -0.01271    0.10861  -0.117    0.907   MAIN EFFECT  
improvedsome     -0.13541    0.14674  -0.923    0.356   MAIN EFFECT 
improvedmarke    -0.10839    0.12212  -0.888    0.375   MAIN EFFECT 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

So che il tasso di incidenti numberofdrugsè exp(-0.023)=0.977. Ma come posso interpretare i principali effetti per le variabili fittizie?


Una risposta simile (ma inquadrata in modo più matematico) è disponibile qui: Come interpretare le stime dei parametri nei risultati GLM di Poisson .
gung - Ripristina Monica

È interessante notare che la domanda referenziata è stata chiusa come fuori tema. (Non avrei concordato sul fatto che fosse off-topic, poiché qualsiasi risposta si sarebbe applicata anche all'output di qualsiasi programma di statistica che ha restituito una tabella di coefficienti all'utente e sono d'accordo con te sul fatto che sia meritevole sulla base di essere un duplicato). Mi sembra che la comunità SO sia troppo "stretta" per le domande che richiedono l'interpretazione dell'output di R. Non sono realmente in tema per StackOverflow poiché non vi è alcun suggerimento che sia necessario un aiuto per la codifica.
DWin

@Vinni, non credo che interpretare l'output statistico sia fuori tema su Cross Validated . Ho votato per chiudere quella domanda come duplicato di questo. Altri sembrano aver votato OT, mi pare, perché sembrava che l'OP "scaricasse lì il loro computer] e [sperasse che qualcuno] eseguisse l'analisi stat per [loro]".
gung - Ripristina Monica

1
@gung: ero chiaro che non eri tu a chiamarlo OT. I tuoi commenti sono stati chiari su questo punto. (Pensavo di essere d'accordo con te.) La "ragione" elencata in un voto stretto è spesso una decisione a maggioranza o pluralità.
DWin

Risposte:


56

Il numberofdrugscoefficiente esponenziale è il termine moltiplicativo da utilizzare per calcolare la stima healthvaluequando numberofdrugsaumenta di 1 unità. Nel caso di variabili categoriali (fattore), il coefficiente esponenziale è il termine moltiplicativo relativo al livello di base (primo fattore) per quella variabile (poiché R utilizza i contrasti del trattamento per impostazione predefinita). Il exp(Intercept)è il tasso di riferimento, e tutte le altre stime sarebbe relativo ad esso.

Nel tuo esempio la stima healthvalueper qualcuno con 2droghe "placebo"e improvement=="none"sarebbe (usando l'addizione dentro exp come l'equivalente della moltiplicazione):

 exp( 1.88955 + 2*-0.02303 + 0 + 0 )
 [1] 6.318552

Mentre qualcuno 4drogato, "treated"e il "some"miglioramento avrebbe una stima healthvaluedi

exp( 1.88955 + 4*-0.02303 + -0.01271 + -0.13541)
[1] 5.203388

ADDENDUM: questo significa essere "additivi nella scala del registro". "Additivo sulla scala delle probabilità-log" è stata la frase che la mia insegnante, Barbara McKnight, ha usato per enfatizzare la necessità di usare tutti i coefficienti a termine applicati nella regressione logistica quando si fa qualsiasi tipo di previsione. Aggiungete prima tutti i coefficienti per i valori di covariata e poi esponenziate. Il modo per restituire i coefficienti dagli oggetti di regressione in R è generalmente usare la coef()funzione di estrazione (eseguita con una diversa realizzazione casuale di seguito):

 coef(test)
  #   (Intercept)    numberofdrugs treatmenttreated     improvedsome   improvedmarked 
  #   1.18561313       0.03272109       0.05544510      -0.09295549       0.06248684 

Quindi il calcolo del preventivo per un soggetto con 4farmaci "treated", con "some"miglioramento sarebbe:

 exp( sum( coef(test)[ c(1,2,3,4) ]* c(1,4,1,1) ) ) 
 [1] 3.592999

E il predittore lineare per quel caso dovrebbe essere la somma di:

 coef(test)[c(1,2,3,4)]*c(1,4,1,1) 
 #    (Intercept)    numberofdrugs treatmenttreated     improvedsome 
 #     1.18561313       0.13088438       0.05544510      -0.09295549

Questi principi dovrebbero applicarsi a qualsiasi pacchetto di statistiche che restituisce una tabella di coefficienti all'utente. Il metodo e i principi sono più generali di quanto potrebbe apparire dal mio uso di R.


Sto copiando i commenti di chiarimento selezionati poiché "scompaiono" nella visualizzazione predefinita:

Q: Quindi interpreti i coefficienti come rapporti! Grazie! - MarkDollar

A: I coefficienti sono i logaritmi naturali dei rapporti. - DWin

Q2: In quel caso, in una regressione di poisson, i coefficienti esponenziali sono anche indicati come "odds ratio"? - Oort

A2: No. Se fosse una regressione logistica lo sarebbero, ma nella regressione di Poisson, dove l'LHS è il numero di eventi e il denominatore implicito è il numero a rischio, quindi i coefficienti esponenziali sono "rapporti di tasso" o "rischi relativi".


Quindi ti ha permesso di votare due volte? Che carino. Pensavo che offrire un'interpretazione in codice R dell'interpretazione potesse salvarla dalle forze della rettitudine di classificazione. L'OP ha composto un bell'esempio autonomo. Forse avrei dovuto dimostrare una funzione di estrazione, quindi penso che lo farò.
DWin,

Sì, ho votato a favore della tua risposta su SO, quindi si è spostato qui e ho nuovamente votato :)
Brandon Bertelsen

Grazie finora! Conosco la realtà tra i manichini e i cavariabili, ma sono solo interessato a come interpretare gli effetti principali (li ho contrassegnati). È possibile prendere il tasso incidente da un effetto principale, ad esempio per il manichino trattato 'exp (-0,012) = 0,99' e interpretarlo come il tasso da cui diminuisce il valore terapeutico, quando si passa dalla categoria di riferimento a quella trattata? Deve essere, no?
MarkDollar,

I coefficienti esponenziali sono sempre interpretati come rapporti. I rapporti tra "cosa" e "cosa" dipendono dalle unità di analisi. Le "tariffe" sono diverse, con un numero implicito e un valore temporale. Quindi, se sei disposto a cambiare la tua terminologia, forse "sì". Le migliori risposte vengono dalla descrizione completa della situazione dell'analisi.
DWin

Ah ok questo è quello che volevo sapere. Quindi interpreti i coefficienti come rapporti! Grazie!
MarkDollar,
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.