Regresja beta danych odsetkowych, w tym 1 i 0


19

Próbuję stworzyć model, dla którego mam zmienną odpowiedzi, która jest proporcją między 0 a 1, obejmuje to całkiem sporo zer i 1, ale także wiele wartości pomiędzy nimi. Myślę o próbie regresji beta. Pakiet, który znalazłem dla R (betareg), dopuszcza tylko wartości z zakresu od 0 do 1, ale bez uwzględnienia ich samych 0 lub 1. Czytałem gdzie indziej, że teoretycznie rozkład beta powinien być w stanie obsłużyć wartości 0 lub 1, ale nie wiem, jak sobie z tym poradzić w RI widziałem, jak niektórzy ludzie dodają 0,001 do zer i biorą 0,001 od nich, ale nie jestem na pewno to dobry pomysł?

Alternatywnie mogłem logować transformację zmiennej odpowiedzi i użyć regresji liniowej. W tym przypadku mam ten sam problem z zerami i 1, których nie można przekształcić w log.


Znajomość liczenia - nie tylko proporcji - ma kluczowe znaczenie bez względu na to, co robisz. Ale kiedy już policzysz, pierwszym modelem do rozważenia, nawet jeśli jest to tylko punkt wyjścia, jest regresja logistyczna.
whuber

Cóż, beta wynosi od 0 do 1 ( prawie na pewno ). Jeśli je zaobserwujesz, powinieneś użyć modelu, który daje szansę obserwacji próbki. Wydaje się, że kilka odpowiedzi obejmuje takie podejście; Zacznę od nich.
Glen_b

Odpowiedzi:


18

Można użyć zerowych i / lub jednego nadmuchanych modeli regresji beta, które łączą rozkład beta z rozkładem zdegenerowanym, aby przypisać pewne prawdopodobieństwo odpowiednio 0 i 1. Aby uzyskać szczegółowe informacje, zobacz następujące odniesienia:

Ospina, R. i Ferrari, SLP (2010). Napompowane dystrybucje beta. Artykuły statystyczne, 51 (1), 111-126. Ospina, R. i Ferrari, SLP (2012). Ogólna klasa modeli regresji beta z zerowym lub jednym. Statystyka obliczeniowa i analiza danych, 56 (6), 1609 - 1623.

Modele te są łatwe do wdrożenia dzięki pakietowi gamlss dla R.


Czy masz przykład, jak wdrożyć je na R?
Ouistiti

2
@Ouistiti zoibpakiet robi to łatwo.
Mark White,

11

Dokumentacja betaregpakietu R wspomina o tym

jeśli y również przyjmuje skrajności 0 i 1, użyteczną transformacją w praktyce jest (y * (n − 1) + 0,5) / n, gdzie n jest rozmiarem próby.

http://cran.r-project.org/web/packages/betareg/vignettes/betareg.pdf

Podają numer referencyjny Smithson M, Verkuilen J (2006). „Lepszy wyciskacz do cytryny? Regresja maksymalnego prawdopodobieństwa dzięki zmiennym zależnym rozproszonym w wersji beta”. Metody psychologiczne, 11 (1), 54–71.


1

Czy nie przeprowadzasz transformacji logitów, aby zmienna obejmowała od minus nieskończoności do plus nieskończoności? Nie jestem pewien, czy dane posiadające 0 i 1 powinny stanowić problem. Czy to pokazuje komunikat o błędzie? Nawiasem mówiąc, jeśli masz tylko proporcje, Twoja analiza zawsze wyjdzie źle. Musisz użyć weight=argumentdo glmliczby przypadków.

Jeśli nic nie działa, możesz użyć podziału mediany lub podziału na kwartyle lub dowolnego punktu podziału, który uważasz za odpowiedni, aby podzielić DV na kilka kategorii, a następnie uruchomić regresję logistyczną porządkową. To może zadziałać. Wypróbuj te rzeczy.

Nie sądzę osobiście, że dodanie 0,001 do zer i pobranie 0,001 od nich to zbyt zły pomysł, ale ma pewne problemy, które zostaną omówione później. Pomyśl tylko, dlaczego nie dodajesz i nie odejmujesz 0,000000001 (lub nawet więcej miejsc po przecinku)? To lepiej reprezentuje 0 i 1 !! Może ci się wydawać, że nie robi to dużej różnicy. Ale tak naprawdę jest.

Zobaczmy następujące:

> #odds when 0 is replaced by 0.00000001

> 0.00000001/(1-0.00000001)
[1] 1e-08
> log(0.00000001/(1-0.00000001))
[1] -18.42068

> #odds when 1 is replaced by (1-0.00000001):

> (1-0.00000001)/(1-(1-0.00000001))
[1] 1e+08
> log((1-0.00000001)/(1-(1-0.00000001)))
[1] 18.42068

> #odds when 0 is replaced by 0.001

> 0.001/(1-0.001)
[1] 0.001001001
> log(0.001/(1-0.001))
[1] -6.906755

> #odds when 1 is replaced by (1-0.001):

> (1-0.001)/(1-(1-0.001))
[1] 999
> log((1-0.001)/(1-(1-0.001)))
[1] 6.906755

Widzisz, musisz utrzymywać szanse tak blisko, jak (0/1) i (1/0). Oczekujesz, że logarytmiczne szanse od minus nieskończoności do plus nieskończoności. Tak więc, aby dodać lub odjąć, musisz wybrać do naprawdę bardzo długiego miejsca po przecinku, aby kursy dzienne zbliżyły się do nieskończoności (lub bardzo dużej) !! Zakres, który uznasz za wystarczająco duży, zależy wyłącznie od ciebie.


1

Zapoznaj się z poniższymi informacjami, w których wymieniono transformację ad hoc maartenbuis.nl/presentations/berlin10.pdf na slajdzie 17. Można również modelować 0 i 1 za pomocą dwóch oddzielnych regresji logistycznych, a następnie zastosować regresję Beta dla tych, którzy nie są na granicy.


1
(y(n-1)+0,5)/nn

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.