2013-04-16 17 views
5

Zostałem poproszony o opracowanie modelu regresji patrząc na zapisy uczniów w różnych programach. Jest to bardzo ładny, czysty zestaw danych, w którym liczenie rejestrów jest zgodne ze studnią dystrybucyjną Poissona. Dopasowuję model do R (używając zarówno GLM, jak i Zero Inflated Poisson). Wynikowe pozostałości wydawały się rozsądne.Regresja dla zmiennej Rate w R

Zostałem jednak poinstruowany, aby zmienić liczbę uczniów na "stawkę", która została obliczona jako liczba uczniów/uczniów (Każda szkoła ma własną populację).) Nie jest to już zmienna licząca, ale proporcja pomiędzy 0 a 1. Jest to uważane za "część rejestracji" w programie.

Ta "stopa" (studenci/populacja) nie jest już Poissonem, ale z pewnością nie jest normalna. Tak więc jestem trochę zagubiony co do odpowiedniej dystrybucji i kolejnego modelu, który ją reprezentuje.

Rozkład logarytmiczny wydaje się dobrze pasować do tego parametru szybkości, jednak mam wiele wartości 0, więc nie będzie on pasował.

Wszelkie sugestie dotyczące najlepszej formy dystrybucji dla tego nowego parametru i jak go zamodelować w R?

Dzięki!

+2

Myślę, że jest to przypadek użycia zmiennej ekspozycji/offsetu (http://en.wikipedia.org/wiki/Poisson_regression#.22Exposure.22_and_offset). I, być może, pytanie do http://stats.stackexchange.com/ – Rcoster

+1

przekierowane na r-help: http://thread.gmane.org/gmane.comp.lang.r.general/291112 –

Odpowiedz

5

Jak sugerowano w komentarzach można zachować model Poissona i zrobić to z przesunięciem:

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

Albo można użyć dwumianowego GLM, albo

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

lub

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

Ta ostatnia forma jest czasem wygodniejsza, choć rzadziej używana. Należy pamiętać, że generalnie przełączenie z Poissona na dwumianowe spowoduje zmianę funkcji łącza z logu na logit, chociaż można użyć wartości family=binomial(link="log")), jeśli wolisz.

Zero-inflacja może być łatwiejsza do modelowania z kombinacją Poisson + offset (nie jestem pewien, czy pakiet pscl, najbardziej rozpowszechnione podejście do ZIP, obsługuje korekty, ale myślę, że tak), które będą bardziej powszechnie dostępne niż model dwumianowy z nadymaniem.

Myślę, że glmmADMB zrobi model dwumianowy z nadymaniem, ale go nie przetestowałem.

+1

Ben - świetna odpowiedź. Masz rację, że pakiet pscl pozwoli na offset z modelem ZIP. Jednak gdy próbuję dopasować to z offsetem, nie pasuje on tak dobrze jak model bez przesunięcia. To wydaje się dziwne. Ponadto nie wiem, w jaki sposób wpływają na przewidywane wartości. Jeśli używam funkcji zeroinfl() w psllu, czy przesunięcie w formule zmienia interpretację przewidywanych wartości? – Noah