Dwa powiązane ze mną pytania. Mam ramkę danych, która zawiera liczbę pacjentów w jednej kolumnie (zakres od 10 do 17 pacjentów) oraz 0 i 1 zera pokazujące, czy zdarzenie miało miejsce tego dnia. Używam modelu dwumianowego do regresji prawdopodobieństwa incydentu na liczbę pacjentów. Chciałbym jednak dostosować się do faktu, że gdy będzie więcej pacjentów, nieuchronnie będzie więcej incydentów, ponieważ łączna ilość czasu pobytu pacjenta na oddziale jest wyższa w tym dniu.
Więc używam przesuniętego modelu dwumianowego takiego jak ten (kod R):
glm(Incident~Numbers, offset=Numbers, family=binomial, data=threatdata)
Moje pytania to:
Czy dobrze jest mieć dokładnie te same zmienne przewidujące i przesunięte? Chcę częściowo zredukować toniczny wzrost prawdopodobieństwa incydentu i sprawdzić, czy w ogóle coś zostało. Ma to dla mnie sens, ale jestem trochę ostrożny na wypadek, gdy się mylę.
Czy przesunięcie jest określone poprawnie? Wiem, że w modelach Poissona czytałby
offset=log(Numbers)
Nie wiem, czy jest tu odpowiednik i nie mogę znaleźć żadnego dwumianowego przesunięcia w Google (głównym problemem jest to, że ciągle otrzymuję dwumianowy ujemny, co oczywiście nie jest dobre).
źródło
Odpowiedzi:
Jeśli jesteś zainteresowany prawdopodobieństwem incydentu biorąc pod uwagę N dni pacjentów na oddziale, to potrzebujesz modelu takiego jak:
przesunięcie reprezentuje próby,
incident
wynosi 0 lub 1, a prawdopodobieństwo incydentu jest stałe (brak niejednorodności w tendencji do generowania incydentów) i pacjenci nie wchodzą w interakcje, aby powodować incydenty (brak zarażenia). Alternatywnie, jeśli szansa na incydent jest niewielka, co jest dla ciebie (lub przekroczyłeś liczbę incydentów, nie wspominając nam o tym), możesz preferować sformułowanie Poissonagdzie mają zastosowanie te same założenia. Przesunięcie jest rejestrowane, ponieważ liczba pacjentów na oddziale ma proporcjonalny / multiplikatywny efekt.
Rozwijając drugi model, być może uważasz, że jest więcej incydentów, niż można by się spodziewać po prostu ze względu na większą liczbę pacjentów. Oznacza to, że być może pacjenci wchodzą w interakcje lub są heterogenni. Więc spróbuj
Jeśli współczynnik na
log.patients.on.ward
jest znacząco różny od 1, w którym został ustalonymod2
, to może być coś złego w twoich założeniach o niejednorodności i zarażeniu. I chociaż nie możesz oczywiście rozróżnić tych dwóch (ani jednej z pozostałych brakujących zmiennych), masz teraz oszacowanie, o ile zwiększenie liczby pacjentów na oddziale zwiększa odsetek / prawdopodobieństwo wystąpienia incydentów ponad to, co chciałbyś oczekiwać od przypadku. W przestrzeni parametrów jest to1-coef(mod3)[2]
przedział wyprowadzany zconfint
.Alternatywnie możesz po prostu pracować bezpośrednio z ilością kłody i jej współczynnikiem. Jeśli chcesz tylko przewidzieć prawdopodobieństwo incydentu na podstawie liczby pacjentów na oddziale, ten model byłby prostym sposobem na zrobienie tego.
Pytania
Czy można przesuwać zmienne zależne? Wydaje mi się to bardzo złym pomysłem, ale nie widzę, że musisz.
Przesunięcie w modelach regresji Poissona
exposure
jest rzeczywiścielog(exposure)
. Być może mylące jest zastosowanieoffset
w modelach regresji dwumianowej R. jest w zasadzie sposobem na wskazanie liczby prób. Zawsze można go zastąpić zmienną zależną zdefiniowaną jakocbind(incidents, patients.on.ward-incidents)
i bez przesunięcia. Pomyśl o tym w ten sposób: w modelu Poissona wchodzi on po prawej stronie za funkcją łączenia logów, aw modelu dwumianowym - po lewej stronie przed funkcją linkowania logów.źródło
Przesunięcia w regresjach Poissona
Zacznijmy od tego, dlaczego używamy przesunięcia w regresji Poissona. Często chcemy to przypisać kontroli narażenia. Niech będzie stopą bazową na jednostkę ekspozycji, a t będzie czasem ekspozycji w tych samych jednostkach. Oczekiwana liczba zdarzeń wyniesie λ × t .λ t λ×t
W modelu GLM modelujemy oczekiwaną wartość za pomocą funkcji link , to znaczyg
Możemy uprościć uproszczenie powyższego wyrażenia
Regresja dwumianowa
W regresji dwumianowej, która zwykle korzysta z łącza logit, to znaczy:
W związku z tym nie możemy użyć przesunięcia w tym przypadku.
źródło
Ta odpowiedź składa się z dwóch części: pierwsza jest bezpośrednią odpowiedzią na pytanie, a druga komentarzem do proponowanego modelu.
Pierwsza część dotyczy zastosowania
Numbers
jako przesunięcia wraz z umieszczeniem go na prawicy równania. Efektem tego będzie po prostu odjęcie 1 od szacowanego współczynnikaNumbers
, a tym samym odwrócenie efektu przesunięcia, i w inny sposób nie zmieni wyników. Poniższy przykład, po usunięciu kilku wierszy nieistotnych danych wyjściowych, pokazuje:Zauważ, że wszystko jest takie samo, z wyjątkiem współczynnika Liczb i dewiacji zerowej (oraz statystyki t, ponieważ wciąż testuje się na 0 zamiast na -1.)
Można również podejrzewać, że prawdopodobieństwo na pacjenta różni się w zależności od pacjenta, co doprowadziłoby do bardziej złożonego, zhierarchizowanego modelu, ale nie będę się tutaj zajmował.
W każdym razie, biorąc pod uwagę ten i ograniczony zakres liczby obserwowanych pacjentów, zamiast stosować model liniowy w skali logitów, może być lepiej nieparametryczne co do związku i pogrupować liczbę pacjentów na trzy lub cztery grupy, na przykład 10-11, 12-13, 14-15 i 16-17, konstruuj zmienne fikcyjne dla tych grup, a następnie uruchom regresję logistyczną ze zmiennymi fikcyjnymi po prawej stronie. Pozwoli to lepiej uchwycić relacje nieliniowe, takie jak „system jest przeciążony około 16 pacjentów, a incydenty zaczynają znacznie narastać”. Jeśli miałbyś znacznie szerszy zakres pacjentów, sugerowałbym uogólniony model addytywny, np. „Gam” z pakietu „mgcv”.
źródło
Najprościej jest określić link log i zachować przesunięcie jak w przypadku modelu Poissona.
źródło