2013-04-16 14 views
5

Mi è stato assegnato lo sviluppo di un modello di regressione che esamina l'iscrizione degli studenti in diversi programmi. Questo è un set di dati molto bello e pulito in cui i conteggi delle iscrizioni seguono un pozzo di distribuzione di Poisson. Ho adattato un modello in R (usando sia GLM sia Poisson gonfiato a zero). I residui risultanti sembravano ragionevoli.Regressione per una variabile di frequenza in R

Tuttavia, mi è stato chiesto di cambiare il conteggio degli studenti a un "tasso" che è stato calcolato come studenti/school_population (ogni scuola ha una propria popolazione.)) Ora non è più una variabile di conteggio, ma una percentuale tra 0 e 1. Questa è considerata la "percentuale di iscrizione" in un programma.

Questo "tasso" (studenti/popolazione) non è più Poisson, ma certamente non è nemmeno normale. Quindi, sono un po 'perso per la distribuzione appropriata e il modello successivo per rappresentarlo.

Una distribuzione normale del log sembra adattarsi bene a questo parametro di velocità, tuttavia ho molti valori 0, quindi non si adatta effettivamente.

Qualche suggerimento sulla migliore forma di distribuzione per questo nuovo parametro e su come modellarlo in R?

Grazie!

+2

Penso che sia un caso utilizzare la variabile esposizione/offset (http://en.wikipedia.org/wiki/Poisson_regression#.22Exposure.22_and_offset). E, forse, una domanda a http://stats.stackexchange.com/ – Rcoster

+1

cross-posted to r-help: http://thread.gmane.org/gmane.comp.lang.r.general/291112 –

risposta

5

Come suggerito nei commenti si potrebbe mantenere il modello di Poisson e lo fa con un offset:

glm(response~predictor1+predictor2+predictor3+ ... + offset(log(population), 
    family=poisson,data=...) 

Oppure si potrebbe usare un GLM binomiale, sia

glm(cbind(response,pop_size-response) ~ predictor1 + ... , family=binomial, 
     data=...) 

o

glm(response/pop_size ~ predictor1 + ... , family=binomial, 
     weights=pop_size, 
     data=...) 

Quest'ultima forma è talvolta più comoda, anche se meno utilizzata. Ricorda che in generale il passaggio da Poisson a binomiale cambierà la funzione di collegamento da log a logit, sebbene tu possa usare family=binomial(link="log")) se preferisci.

Zero-inflazione potrebbe essere più facile da modellare con il Poisson + offset combinazione (non sono sicuro se il pacchetto pscl, l'approccio più comune per ZIP, gestisce offset, ma penso che lo fa), che sarà più comunemente disponibile rispetto a un modello binomiale a gonfiaggio zero.

Penso che glmmADMB eseguirà un modello binomiale a gonfiaggio zero, ma non l'ho provato.

+1

Ben - Bella risposta. Hai ragione nel fatto che il pacchetto pscl consentirà un offset con il modello ZIP. Tuttavia, quando provo ad adattarlo con un offset, non si adatta come un modello senza un offset. Sembra strano Inoltre, non so come sono influenzati i valori previsti. Se utilizzo la funzione zeroinfl() in pscl, avere un offset nella formula modifica l'interpretazione dei valori previsti? – Noah

Problemi correlati