Beta-Regression von Anteilsdaten einschließlich 1 und 0


19

Ich versuche, ein Modell zu erstellen, für das ich eine Antwortvariable habe, die einen Anteil zwischen 0 und 1 hat. Dazu gehören einige 0s und 1s, aber auch viele Werte dazwischen. Ich denke darüber nach, eine Beta-Regression zu versuchen. Das Paket, das ich für R (betareg) gefunden habe, erlaubt nur Werte zwischen 0 und 1, aber nicht 0 oder 1 für sich. Ich habe an anderer Stelle gelesen, dass die Betaverteilung theoretisch mit Werten von 0 oder 1 umgehen sollte, aber ich weiß nicht, wie ich damit umgehen soll. Ich habe gesehen, dass einige Leute 0,001 zu den Nullen addieren und 0,001 von den Einsen nehmen, aber ich bin es nicht sicher das ist eine gute idee

Alternativ könnte ich die Antwortvariable logit transformieren und eine lineare Regression verwenden. In diesem Fall habe ich das gleiche Problem mit den 0 und 1, die nicht log transformiert werden können.


Die zu wissen , zählt --not nur die Proportionen - ist entscheidend , egal , was Sie tun. Aber sobald Sie die Anzahl haben, ist das erste Modell, das in Betracht gezogen werden muss, auch wenn es nur ein Ausgangspunkt ist, die logistische Regression.
whuber

Nun, eine Beta liegt zwischen 0 und 1 ( fast sicher ). Wenn Sie sie beobachten, sollten Sie ein Modell verwenden, mit dem Sie Ihre Probe beobachten können. Ein paar Antworten scheinen diese Art von Ansatz abzudecken; Ich würde mit ihnen anfangen.
Glen_b

Antworten:


18

Sie könnten Null- und / oder ein aufgeblähtes Beta-Regressionsmodell verwenden, das die Beta-Verteilung mit einer entarteten Verteilung kombiniert, um 0 bzw. 1 eine gewisse Wahrscheinlichkeit zuzuweisen. Einzelheiten finden Sie in den folgenden Referenzen:

Ospina, R. & Ferrari, SLP (2010). Inflated Beta Distributionen. Statistical Papers, 51 (1), 111-126. Ospina, R. & Ferrari, SLP (2012). Eine allgemeine Klasse von null oder eins aufgeblasenen Beta-Regressionsmodellen. Computational Statistics and Data Analysis, 56 (6), 1609–1623.

Diese Modelle sind mit dem gamlss-Paket für R einfach zu implementieren.


Haben Sie ein Beispiel für die Implementierung in R?
Ouistiti

2
@Ouistiti das zoibPaket macht es leicht.
Mark White

11

In der Dokumentation zum R- betaregPaket wird darauf hingewiesen

Wenn y auch die Extreme 0 und 1 annimmt, ist eine nützliche Transformation in der Praxis (y * (n - 1) + 0,5) / n, wobei n die Stichprobengröße ist.

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

Sie geben die Referenz Smithson M, Verkuilen J (2006). "Eine bessere Zitronenpresse? Maximum-Likelihood-Regression mit Beta-verteilten abhängigen Variablen." Psychological Methods, 11 (1), 54–71.


1

Führen Sie keine logit-Transformation durch, um eine Variable im Bereich von minus unendlich bis plus unendlich zu erstellen? Ich bin nicht sicher, ob Daten mit 0 und 1 ein Problem sein sollten. Zeigt das eine Fehlermeldung? Übrigens, wenn Sie nur Proportionen haben, wird Ihre Analyse immer falsch ausfallen. Sie verwenden müssen , weight=argumentum glmmit der Zahl der Fälle.

Wenn nichts funktioniert, können Sie einen Median-Split oder einen Quartil-Split oder einen beliebigen geeigneten Schnittpunkt verwenden, um den DV in mehrere Kategorien aufzuteilen, und stattdessen eine ordinale logistische Regression ausführen. Das könnte funktionieren. Probieren Sie diese Dinge aus.

Ich persönlich halte es nicht für eine schlechte Idee, 0,001 zu den Nullen zu addieren und 0,001 von den Einsen zu nehmen, aber es gibt einige Probleme, die später besprochen werden. Denken Sie nur, warum addieren und subtrahieren Sie nicht 0,000000001 (oder noch mehr Dezimalstellen)? Das wird besser 0 und 1 darstellen !! Es mag Ihnen so vorkommen, als ob es keinen großen Unterschied macht. Aber es tut es tatsächlich.

Sehen wir uns folgendes an:

> #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

Sie sehen also, Sie müssen die Gewinnchancen so nahe wie möglich bei (0/1) und (1/0) halten. Sie erwarten eine logarithmische Wahrscheinlichkeit von minus unendlich bis plus unendlich. Also, um zu addieren oder zu subtrahieren, müssen Sie bis zu einer wirklich langen Dezimalstelle wählen, damit die logarithmischen Quoten nahezu unendlich (oder sehr groß) werden !! Inwieweit Sie als groß genug erachten, hängt allein von Ihnen ab.


1

In den folgenden Abschnitten wird eine Ad-hoc-Transformation beschrieben: maartenbuis.nl/presentations/berlin10.pdf auf Folie 17. Sie können auch 0 und 1 mit zwei separaten logistischen Regressionen modellieren und dann die Beta-Regression für diejenigen verwenden, die sich nicht an der Grenze befinden.


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

0

pp

ein,bein,b

x1,,xnnj[ψ(ichxich)-ψ(xj)]j[ψ(ich1-xich)-ψ(1-xj)]

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.