Jak przeprowadzić regresję logistyczną w R, gdy wynik jest ułamkowy (stosunek dwóch liczb)?

24

Recenzuję artykuł, który ma następujący eksperyment biologiczny. Do narażenia komórek na działanie różnych naprężeń ścinających płyn stosuje się urządzenie. Ponieważ większe naprężenia ścinające przykładane są do komórek, coraz więcej z nich zaczyna odłączać się od podłoża. Na każdym poziomie naprężenia ścinającego zliczają komórki, które pozostają przyczepione, a ponieważ znają całkowitą liczbę komórek, które zostały przyłączone na początku, mogą obliczyć przywiązanie ułamkowe (lub oderwanie).

Wykreślenie przylegającej frakcji w funkcji naprężenia ścinającego daje krzywą logistyczną. Teoretycznie każda pojedyncza komórka jest pojedynczą obserwacją, ale oczywiście istnieją tysiące lub dziesiątki tysięcy komórek, więc zestaw danych byłby gigantyczny, gdyby był ustawiony w zwykły sposób (przy czym każdy wiersz byłby obserwacją).

Oczywiście moje pytanie (jak podano w tytule) powinno mieć teraz sens. Jak przeprowadzamy regresję logistyczną, wykorzystując wynik ułamkowy jako DV? Czy istnieje jakaś automatyczna transformacja, którą można wykonać w glm?

W ten sam sposób, gdyby potencjalnie istniały 3 lub więcej (ułamkowe) pomiary, jak można to zrobić dla wielomianowej regresji logistycznej?

thecity2
źródło
Oto kilka przykładów dotyczących outcome wieloczynnikowej regresji logistycznej:http://www.ats.ucla.edu/stat/r/dae/mlogit.htm
marbel
1
To, co opisujesz, nie brzmi tak, jakbyś miał niezależne obserwacje (ponieważ komórki prawdopodobnie nie łączą się ponownie w miarę wzrostu ścinania, liczba nadal dołączana przy każdym wyższym naprężeniu nie może być większa niż poprzednia liczba); tę zależność należy wziąć pod uwagę. (Przypomina to sytuację z krzywymi wzrostu.) --- nie można po prostu podłączyć liczb do GLM, tak jakby były one niezależne ... i żadna z odpowiedzi wydaje się nie uwzględniać tego problemu.
Glen_b
2
@Glen_b Każdy eksperyment byłby wykonywany z różnymi komórkami, tj. Zaczynając od „100%” przyczepienia i stosując inną wartość naprężenia ścinającego.
thecity2
Ah, dobrze. To dałoby niezależne wyniki.
Glen_b
Powiązane: stats.stackexchange.com/questions/29038 .
ameba mówi Przywróć Monikę

Odpowiedzi:

37

glmDziałają w Rumożliwia 3 sposoby określania wzoru na modelu regresji logistycznej.

Najczęstsze jest to, że każdy wiersz ramki danych reprezentuje pojedynczą obserwację, a zmienna odpowiedzi ma wartość 0 lub 1 (lub współczynnik z 2 poziomami lub inny zmienny z tylko 2 unikalnymi wartościami).

Inną opcją jest użycie macierzy 2 kolumn jako zmiennej odpowiedzi, przy czym pierwsza kolumna to liczba „sukcesów”, a druga kolumna to liczba „awarii”.

Możesz także określić odpowiedź w proporcji od 0 do 1, a następnie podać kolejną kolumnę jako „wagę”, która daje całkowitą liczbę, od której pochodzi proporcja (więc odpowiedź 0,3 i waga 10 jest taka sama jak 3 ” sukcesy i 7 „porażek”).

Jeden z dwóch ostatnich sposobów pasuje do tego, co próbujesz zrobić, ostatni wydaje się najbardziej bezpośredni dla tego, jak opisujesz swoje dane.

Greg Snow
źródło
9

Na początek, jeśli masz zmienną zależną, która jest proporcją, możesz użyć Regresji Beta. Nie obejmuje to (przy mojej ograniczonej wiedzy) wielu proporcji.

Aby zapoznać się z przeglądem regresji Beta i implementacją R, sprawdź betareg .

B_Miner
źródło
Dzięki! To wygląda na to, czego potrzebuję do przypadku dwumianowego.
thecity2
2

Korzystałem nnet::multinom(pakiet nnet jest częścią MASS) do podobnego celu, akceptuje ciągłe wprowadzanie danych w [0, 1].

Jeśli potrzebujesz referencji: C. Beleites i wsp .: Raman spektroskopowa klasyfikacja tkanek gwiaździaka: przy użyciu miękkich informacji referencyjnych. Anal Bioanal Chem, 2011, tom. 400 (9), s. 2801–2816

cbeleites obsługuje Monikę
źródło
Świetny! Mam ten pakiet i nie zdawałem sobie sprawy, że ma taką możliwość.
thecity2
@cbeleites: Czy pozwala to na zależność na [0,1]? Myślałem, że była to funkcja zależna od wartości nominalnej (predyktory powinny być skalowane do [0,1] ...
B_Miner
@B_Miner: tak, zależne mogą być w [0, 1]. Funkcja pasuje do sztucznej sieci neuronowej bez ukrytej warstwy i z logistyczną sigmoidą. I tak, zaleca się skalowanie predyktorów również z grubsza do [0, 1], aby uzyskać lepszą zbieżność.
cbeleites obsługuje Monikę