Czy powinienem użyć przesunięcia dla mojego Poissona GLM?

11

Prowadzę badania, aby przyjrzeć się różnicom w gęstości i bogactwie gatunków ryb, gdy używam dwóch różnych podwodnych metod wizualnego spisu. Moje dane pierwotnie liczyły dane, ale potem zwykle zmienia się to na gęstość ryb, ale nadal zdecydowałem się na użycie Poissona GLM, co, mam nadzieję, ma rację.

model1 <- glm(g_den ~ method + site + depth, poisson)

Moje 3 zmienne predykcyjne to metoda, miejsce i głębokość, które uporządkowałem jako czynniki podczas ich wprowadzania.

Moje zmienne odpowiedzi to bogactwo gatunków głuszca, gęstość głuszca i to samo dla innych grup ryb. Wiem, że gęstość nie jest liczbą całkowitą i są to dane liczbowe, np. 1.34849. Teraz jednak pojawia się ten błąd:

In dpois(y, mu, log = TRUE) : non-integer x = 0.037500

Czytałem i wiele osób sugeruje użycie offsetu, czy jest to najbardziej wskazana rzecz do zrobienia?

Vivienne
źródło
1
Tak naprawdę nie chodzi o to, jak używać R. To podstawowe pytanie statystyczne zamaskowane jako pytanie R. Powinno tu być na temat.
gung - Przywróć Monikę

Odpowiedzi:

11

Jest tu kilka problemów:

  1. Musisz użyć obserwowanych liczb jako zmiennej odpowiedzi. Nie należy używać gęstości ( g_den).
  2. Jeśli obserwowane liczby pochodzą z różnych obszarów, musisz wziąć dziennik tych obszarów jako nową zmienną:

    larea = log(area)
  3. Możesz kontrolować różne obszary obserwacji na dwa różne sposoby:

    • Używając lareajako przesunięcia. To sprawi, że twoja odpowiedź będzie faktycznie stawką (nawet jeśli to, co jest wymienione po lewej stronie twojego modelu, jest liczbą ).
    • Używając lareajako współzmiennej. Będzie to kontrolować różne obszary, ale nie sprawi, że twoja odpowiedź będzie równoważna stawce. Jest to bardziej elastyczne podejście, które pozwoli Ci ocenić, czy wzrosty lareamają wpływ na wzrost lub spadek (np. Czy nachylenie jest mniejsze niż 1).

Więcej informacji na temat tych problemów znajduje się w następujących wątkach CV:

gung - Przywróć Monikę
źródło
6

Wygląda na to, że podzieliłeś liczbę ryb przez objętość (lub powierzchnię) badanej wody. W takim przypadku przesunięcie jest rzeczywiście właściwe, powinieneś użyć dziennika tego, przez co się podzieliłeś. Być może

model1 <- glm(g_den ~ method + site + depth + offset(log(area)), poisson)

(edytowany z wcześniejszej niepoprawnej wersji, brak dziennika)

Powodem tego komunikatu o błędzie jest to, że rozkład Poissona jest zwykle wartościami całkowitymi, ale odpowiedź nie była liczbą całkowitą. Zmienia się po pojawieniu się przesunięcia; (odpowiedź / przesunięcie) musi być liczbą całkowitą (co oczywiście jest, zakładając, że pierwotne liczby były liczbami całkowitymi).

JDL
źródło
2
Wspominasz, że powinieneś użyć transformacji dziennika obszaru (ponieważ model Poissona używa łącza dziennika) w swojej odpowiedzi, ale twój kod nie dokonuje transformacji. Nie sądzę, offsetaby domyślnie zastosowano transformację, ale minęło trochę czasu, odkąd użyłem offset.
iacobus
3
Zauważ, że domyślnie transformacja offset() nie jest stosowana; wymusza jedynie współczynnik równy 1. Patrz np . tutaj .
Gung - Przywróć Monikę
1
Dziękuję za komentarze. Czy powinienem więc zmienić moje dane z powrotem na liczby, a nie gęstości i uwzględnić powierzchnię jako osobną zmienną? Poradzono mi również na innym forum, aby zrobić model gamma lub odwrotny model Gaussa i zmienić moje wartości zerowe na 0,00001, jeśli miałbym zachować dane jako gęstości, czy uważasz, że to też byłoby właściwe?
Vivienne
4
@JDL Nie jest właściwe utrzymywanie gęstości niecałkowitej jako odpowiedzi, gdy log (obszar) zostanie uwzględniony jako przesunięcie. Funkcja łączenia logów i przesunięcie logu (obszaru) odpowiada a priori rozsądnemu założeniu, że , czyli bezpośrednia proporcjonalność oczekiwanej liczby ryb i wielkości każdego obszaru. Oznacza to, że oczekiwana gęstość jest niezależna od log ( powierzchnia). E(count)=exp(βTx)area=exp(βTx+log(area))E(count/area)=E(count)/area=exp(βTx)
Jarle Tufto,
5
Nie można użyć gęstości jako odpowiedzi. Musisz użyć oryginalnych danych jako odpowiedzi. Uwzględnienie przesunięcia spowoduje automatyczne wyrównanie odpowiedzi zliczania do gęstości we właściwy sposób.
Gung - Przywróć Monikę
5

Jeśli zamierzasz modelować za pomocą Poissona, musisz mieć wartości całkowite dla zmiennej odpowiedzi. Następnie masz dwie opcje

  • Użyj obszaru lub innego odpowiedniego mianownika jako przesunięcia. Zwykle należy to najpierw zarejestrować
  • Uwzględnij obszar lub etc jako zmienną predykcyjną. Znów będzie to zwykle uwzględnione w dzienniku, ponieważ modelujesz liczbę dzienników.

Jeśli zastosujesz metodę przesunięcia, mówisz, że jeśli podwoję obszar, spodziewałbym się podwoić liczbę. Jeśli zastosujesz metodę predykcyjną, powiesz, że wiesz, że jeśli pomnożymy obszar, pomnożymy liczby, ale niekoniecznie przez ten sam czynnik.

To jest twój telefon.

mdewey
źródło