Ich habe eine abhängige Variable, die von 0 bis unendlich reichen kann, wobei Nullen tatsächlich korrekte Beobachtungen sind. Ich verstehe zensieren und Tobit Modelle gelten nur , wenn der tatsächliche Wert von ist teilweise unbekannt ist oder fehlt, wobei in diesem Fall Daten , die abgeschnitten werden. Weitere Informationen zu zensierten Daten in diesem Thread .
Aber hier ist 0 ein wahrer Wert, der zur Bevölkerung gehört. Das Ausführen von OLS für diese Daten hat das besonders ärgerliche Problem, negative Schätzungen vorzunehmen. Wie soll ich modellieren ?
> summary(data$Y)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.00 0.00 0.00 7.66 5.20 193.00
> summary(predict(m))
Min. 1st Qu. Median Mean 3rd Qu. Max.
-4.46 2.01 4.10 7.66 7.82 240.00
> sum(predict(m) < 0) / length(data$Y)
[1] 0.0972098
Entwicklungen
Nachdem ich die Antworten gelesen habe, berichte ich über die Anpassung eines Gamma-Hürdenmodells mit leicht unterschiedlichen Schätzfunktionen. Die Ergebnisse sind für mich ziemlich überraschend. Schauen wir uns zuerst den DV an. Was offensichtlich ist, sind die extrem fetten Schwanzdaten. Dies hat einige interessante Konsequenzen für die Bewertung der Passform, die ich unten kommentieren werde:
quantile(d$Y, probs=seq(0, 1, 0.1))
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.286533 3.566165 11.764706 27.286630 198.184818
Ich habe das Gamma-Hürdenmodell wie folgt gebaut:
d$zero_one = (d$Y > 0)
logit = glm(zero_one ~ X1*log(X2) + X1*X3, data=d, family=binomial(link = logit))
gamma = glm(Y ~ X1*log(X2) + X1*X3, data=subset(d, Y>0), family=Gamma(link = log))
Schließlich habe ich die In-Sample- Anpassung mit drei verschiedenen Techniken bewertet :
# logit probability * gamma estimate
predict1 = function(m_logit, m_gamma, data)
{
prob = predict(m_logit, newdata=data, type="response")
Yhat = predict(m_gamma, newdata=data, type="response")
return(prob*Yhat)
}
# if logit probability < 0.5 then 0, else logit prob * gamma estimate
predict2 = function(m_logit, m_gamma, data)
{
prob = predict(m_logit, newdata=data, type="response")
Yhat = predict(m_gamma, newdata=data, type="response")
return(ifelse(prob<0.5, 0, prob)*Yhat)
}
# if logit probability < 0.5 then 0, else gamma estimate
predict3 = function(m_logit, m_gamma, data)
{
prob = predict(m_logit, newdata=data, type="response")
Yhat = predict(m_gamma, newdata=data, type="response")
return(ifelse(prob<0.5, 0, Yhat))
}
Zuerst bewertete ich die Anpassung anhand der üblichen Maßnahmen: AIC, Nullabweichung, mittlerer absoluter Fehler usw. Bei Betrachtung der quantilen absoluten Fehler der obigen Funktionen werden jedoch einige Probleme im Zusammenhang mit der hohen Wahrscheinlichkeit eines 0-Ergebnisses und dem Extrem hervorgehoben fetter Schwanz. Natürlich wächst der Fehler exponentiell mit höheren Werten von Y (es gibt auch einen sehr großen Y-Wert bei Max), aber was interessanter ist, ist, dass eine starke Verwendung des Logit-Modells zur Schätzung von Nullen eine bessere Verteilungsanpassung ergibt (ich würde nicht ' Ich weiß nicht, wie ich dieses Phänomen besser beschreiben kann.
quantile(abs(d$Y - predict1(logit, gamma, d)), probs=seq(0, 1, 0.1))
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
0.00320459 1.45525439 2.15327192 2.72230527 3.28279766 4.07428682 5.36259988 7.82389110 12.46936416 22.90710769 1015.46203281
quantile(abs(d$Y - predict2(logit, gamma, d)), probs=seq(0, 1, 0.1))
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
0.000000 0.000000 0.000000 0.000000 0.000000 0.309598 3.903533 8.195128 13.260107 24.691358 1015.462033
quantile(abs(d$Y - predict3(logit, gamma, d)), probs=seq(0, 1, 0.1))
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
0.000000 0.000000 0.000000 0.000000 0.000000 0.307692 3.557285 9.039548 16.036379 28.863912 1169.321773
quelle
Antworten:
Zensiert gegen aufgeblasen gegen Hürde
Zensierte, Hürden- und aufgeblasene Modelle addieren eine Punktmasse zu einer vorhandenen Wahrscheinlichkeitsdichte. Der Unterschied liegt darin, wo und wie die Masse hinzugefügt wird. Erwägen Sie zunächst, eine Punktmasse bei 0 hinzuzufügen, aber das Konzept lässt sich leicht auf andere Fälle übertragen.
Alle von ihnen implizieren einen zweistufigen Datenerzeugungsprozess für eine Variable :Y.
Aufgeblasene und Hürdenmodelle
Sowohl aufgeblasene (normalerweise null aufgeblasene) als auch Hürdenmodelle arbeiten durch explizite und separate Angabe von , so dass der DGP:Pr( Y.= 0 ) = π
In einem aufgeblasenen Modell ist . In einem Hürdenmodell ist Pr ( Y ∗ = 0 ) = 0 . Das ist der einzige Unterschied .Pr( Y.∗= 0 ) > 0 Pr( Y.∗= 0 ) = 0
Beide Modelle führen zu einer Dichte mit der folgenden Form:
wo eine Anzeigefunktion bin . Das heißt, eine Punktmasse wird einfach bei Null addiert und in diesem Fall ist diese Masse einfach Pr ( Z = 0 ) = 1 - π . Es steht Ihnen frei, p direkt zu schätzen oder g ( π ) = X β für ein invertierbares g wie die Logit-Funktion zu setzen. D ∗ kann auch von X β abhängen . In diesem Fall "schichtet" das Modell eine logistische Regression für Z unter ein anderes Regressionsmodell für Y ∗ .ich Pr( Z.= 0 ) = 1 - π p G( π) = X.β G D.∗ X.β Z. Y.∗
Zensierte Modelle
und kann leicht erweitert werden.
Etwas zusammensetzen
Welches solltest du verwenden?
Wenn Sie eine überzeugende "Zensurgeschichte" haben, verwenden Sie ein zensiertes Modell. Eine klassische Verwendung des Tobit-Modells - der ökonometrische Name für zensierte lineare Gaußsche Regression - ist die Modellierung von Umfrageantworten, die "top-codiert" sind. Löhne werden oft auf diese Weise gemeldet, wobei alle Löhne über einem bestimmten Grenzwert, beispielsweise 100.000, nur als 100.000 kodiert werden. Dies ist nicht dasselbe wie Abschneiden , wo Personen mit Lohn über 100.000 nicht beobachtet werden überhaupt . Dies kann bei einer Umfrage der Fall sein, die nur an Personen mit Löhnen unter 100.000 durchgeführt wird.
Andernfalls ist eine Hürde oder ein aufgeblasenes Modell eine sichere Wahl. Es ist normalerweise nicht falsch, einen allgemeinen zweistufigen Datengenerierungsprozess zu hypothetisieren, und es kann einen Einblick in Ihre Daten bieten, den Sie sonst möglicherweise nicht hatten.
Kürzung
Bearbeiten: entfernt, da diese Lösung falsch war
quelle
Lassen Sie mich zunächst sagen, dass die Anwendung von OLS durchaus möglich ist. Viele reale Anwendungen tun dies. Es verursacht (manchmal) das Problem, dass Sie angepasste Werte unter 0 haben können - ich nehme an, das ist es, worüber Sie sich Sorgen machen? Aber wenn nur sehr wenige angepasste Werte unter 0 liegen, würde ich mir darüber keine Sorgen machen.
Das tobit-Modell kann (wie Sie sagen) bei zensierten oder abgeschnittenen Modellen verwendet werden. Es gilt aber auch direkt für Ihren Fall, tatsächlich wurde das tobit-Modell für Ihren Fall erfunden. Y "stapelt" sich bei 0 und ist ansonsten grob kontinuierlich. Beachten Sie, dass das tobit-Modell schwer zu interpretieren ist. Sie müssten sich auf APE und PEA verlassen. Siehe die Kommentare unten.
Sie können auch das Possion-Regressionsmodell anwenden, das eine fast OLS-ähnliche Interpretation aufweist - es wird jedoch normalerweise mit Zähldaten verwendet. Wooldridge 2012 KAP 17 enthält eine sehr ordentliche Diskussion des Themas.
quelle