Jak zaimplementować model mieszany za pomocą funkcji betareg w R?


12

Mam zestaw danych składający się z proporcji, które mierzą „poziom aktywności” poszczególnych kijanek, dzięki czemu wartości są powiązane od 0 do 1. Dane te zostały zebrane przez zliczenie liczby ruchów danej osoby w określonym przedziale czasu (1 dla ruchu, 0 za brak ruchu), a następnie uśrednia się, aby utworzyć jedną wartość na osobę. Moim głównym stałym efektem byłby „poziom gęstości”.

Problem, przed którym stoję, polega na tym, że mam zmienną czynnikową „staw”, którą chciałbym uwzględnić jako efekt losowy - nie dbam o różnice między stawami, ale chciałbym je uwzględnić statystycznie. Ważną kwestią dotyczącą stawów jest to, że mam ich tylko 3, i rozumiem, że idealnie jest mieć więcej poziomów czynników (5+) w przypadku efektów losowych.

Jeśli jest to możliwe, chciałbym uzyskać porady dotyczące implementacji modelu mieszanego przy użyciu betareg()lub betamix()w R. Przeczytałem pliki pomocy R, ale zwykle trudno mi je zrozumieć (co tak naprawdę każdy parametr argumentu w kontekście oznacza moich własnych danych ORAZ co oznaczają wartości wyjściowe w kategoriach ekologicznych), dlatego lepiej pracuję na przykładach.

W pokrewnej uwadze zastanawiałem się, czy zamiast tego mogę użyć glm()rodziny dwumianowej i linku logit, aby uzyskać rozliczenie losowych efektów z tego rodzaju danymi.


nie, nie można wprowadzić terminów błędów w glm (). Co z logitem przekształcić twoją odpowiedź i rozważyć liniowy model mieszany?
utobi

@utobi Dziękuję, spróbuję tego. Więc nie masz obaw o losowy efekt z tylko 3 poziomami?
Kat Y

Nie znam znaczenia twojej zmiennej „staw”, ale jeśli powtórzyłeś miary, efekty losowe są prawie koniecznością. W przypadku, gdy nie masz powtarzanych pomiarów, tutaj losowa vs ustalona jest otwarta debata. Trzy poziomy efektów losowych mogą być w porządku, w zasadzie ich wariancja jest możliwa do oszacowania. Proponuję sprawdzić literaturę w swojej dziedzinie. Ładna książka, która omawia efekty losowe vs. ustalone, to stat.columbia.edu/~gelman/arm .
utobi

1
@utobi dziękuję za radę. To było pomocne. Popatrzę na tę książkę! Skończyłem robić transformacje logit i użyłem lmer ().
Kat Y

Odpowiedzi:


11

Obecne możliwości betaregnie obejmują efektów losowych / mieszanych. W betareg()można uwzględnić tylko stały efekt, np. Dla trzypoziomowej zmiennej stawowej. Ta betamix()funkcja implementuje regresję beta ze skończoną mieszanką , a nie regresję beta z efektami mieszanymi .

W twoim przypadku najpierw spróbuję zobaczyć, jaki efekt ma efekt ustalonego współczynnika stawu. To „kosztuje” dwa stopnie swobody, podczas gdy losowy efekt byłby nieco tańszy z tylko jednym dodatkowym stopniem swobody. Byłbym jednak zaskoczony, gdyby te dwa podejścia prowadziły do ​​bardzo różnych spostrzeżeń jakościowych.

Wreszcie, chociaż glm()nie obsługuje regresji beta, ale w mgcvpakiecie znajduje się betar()rodzina, której można używać z tą gam()funkcją.


Dziękuję za Twój wkład. Wyjaśniłeś niektóre aspekty funkcji betareg. W tym momencie skorzystałem z porady @utobi i dokonałem transformacji logit, aby móc użyć lmer (). Zajmę się gam (), ponieważ mój następny zestaw danych jest również związany między 0 a 1 i nie mogę normalizować rozkładów za pomocą transformacji :)
Kat Y

1
Spodziewałbym się, że podejścia zwracają podobne wyniki, ale także pewne różnice, z których można się czegoś nauczyć. Polecam więc wypróbować wszystkie trzy, tj. betaregZe stałymi efektami, przekształconymi logitem lmerz efektami losowymi i za gampomocą betar. (A także: Jeśli odpowiedź była przydatna, zastanów się nad jej głosowaniem lub zaakceptowaniem.)
Achim Zeileis,

15

Pakiet glmmTMB może być pomocny dla każdego, kto ma podobne pytanie. Na przykład, jeśli chcesz dołączyć stawkę z powyższego pytania jako efekt losowy, poniższy kod by załatwił sprawę:

glmmTMB(y ~ 1 + (1|pond), df, family=list(family="beta",link="logit"))

Witamy w CV. Dziękuję za twój wkład. To raczej komentarz niż odpowiedź. Czy możesz rozszerzyć swoją odpowiedź?
Ferdi

Przepraszam za opóźnienie, nie zobaczyłem komentarza od razu. Mam nadzieję, że to pomaga.
Kori K

3

Zaczęło się od komentarza, ale trwało długo. Nie sądzę, aby model efektów losowych był tutaj odpowiedni. Są tylko 3 stawy - czy chcesz oszacować wariancję na podstawie 3 liczb? Właśnie tak dzieje się z modelem efektów losowych. Domyślam się, że stawy zostały wybrane ze względu na ich wygodę dla badacza, a nie jako przypadkowa próbka „Stawów Ameryki”.

Zaletą modelu efektów losowych jest to, że pozwala on skonstruować przedział ufności na podstawie odpowiedzi (poziom aktywności), który bierze pod uwagę zmienność między stawami. Model efektów stałych - innymi słowy, traktowanie stawu jak bloku - dostosowuje reakcję na efekt stawu. Jeśli wystąpiłby dodatkowy efekt leczenia - powiedzmy dwa gatunki żab w każdym stawie - blokowanie zmniejsza średni błąd kwadratowy (mianownik testu F) i pozwala zabłysnąć efektowi leczenia.

W tym przykładzie nie ma efektu leczenia, a liczba stawów jest zbyt mała dla modelu efektów losowych (i prawdopodobnie zbyt „nieprzypadkowa”), więc nie jestem pewien, jakie wnioski można wyciągnąć z tego badania. Można dobrze oszacować różnicę między stawami, ale o to chodzi. Nie widzę wniosków wyciąganych z szerszej populacji żab przy innych ustawieniach stawu. Przypuszczam, że można to sformułować jako badanie pilotażowe.

Pamiętaj, że każde użycie modelu efektów losowych da bardzo niewiarygodne oszacowanie wariancji stawu i należy go stosować ostrożnie.

Ale co do twojego pierwotnego pytania - czy nie jest to bardziej problem z oceną? Dystrybucja dla zdarzeń na jednostkę czasu to Poisson. Możesz więc wykonać regresję Poissona, używając zliczeń z interwałem czasowym jako przesunięcie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.