Ich hatte das gleiche Problem (" non-conformable arguments
"), das @ hans0l0 im obigen Kommentar erwähnt hat. Ich glaube, ich habe das gelöst und werde versuchen, es hier zu erklären.
Erstens gibt es einen Fehler in der Gleichung im ursprünglichen Beitrag. Es sollte es gibt einen Index nach dem zweiten aber nicht nach dem ersten. In einem Tobit-Modell wird der einer Variablen nicht nur durch den Koeffizienten dieser bestimmten Variablen ( ) bestimmt; Es ist auch ein Anpassungsfaktor erforderlich, der aus den Werten anderer Variablen im Modell berechnet wird ( ).ϕ(xβ/σ)βjβxjβjϕ(xβ/σ)
Aus Wooldridge 2006 (S. 598):
Der Anpassungsfaktor… hängt von einer linearen Funktion von , . Es kann gezeigt werden, dass der Anpassungsfaktor streng zwischen Null und Eins liegt.xxβ/σ=(β0+β1x1+…+βkxk)/σ
Dieser Anpassungsfaktor bedeutet, dass wir eine Auswahl über die Werte der anderen Variablen im Modell treffen müssen: „Wir müssen Werte für x j einfügen, normalerweise die Mittelwerte oder andere interessante Werte“ (Wooldridge 2006, S. 598). Im Allgemeinen wäre dies also der Mittelwert, aber es könnte auch der Median, das obere / untere Quartil oder irgendetwas anderes sein. Dies hängt damit zusammen, warum @ hans0l0 und ich die non-conformable argument
Fehler " " erhalten haben, als wir Alex 'obigen Code verwendet haben: Das " x
" in diesem Code ist ein Vektor, wenn wir einen einzelnen Wert für die Variable benötigen (Mittelwert / Median / usw.) . Ich glaube, es gibt auch einen weiteren Fehler im obigen Code, der den Intercept-Wert vom Anpassungsbegriff ausschließt (mit dem [-1]
Skript nach der ersten Verwendung vonreg$coef
). Mein Verständnis davon (aber ich bin froh, korrigiert zu werden) ist, dass der Anpassungsterm den (das von oben) enthalten sollte.β0
Hier ist ein Beispiel mit dem Datensatz von AER::tobit (“Affairs”)
:
## Using the same model and data as in the Tobit help file
## NB: I have added the “x=TRUE” command so the model saves the x values
> fm.tobit <- tobit(affairs ~ age + yearsmarried + religiousness + occupation + rating,
data = Affairs, x=TRUE)
> fm.tobit$coef
(Intercept) age yearsmarried religiousness occupation rating
8.1741974 -0.1793326 0.5541418 -1.6862205 0.3260532 -2.2849727
> fm.tobit$scale
[1] 8.24708
## the vector of marginal effects (at mean values and for y > 0) should be as follows.
## note the [-1] used to remove the intercept term from the final vector,
## but not from within the adjustment term.
> pnorm(sum(apply(fm.tobit$x,2,FUN=mean) * fm.tobit$coef)/fm.tobit$scale) *
fm.tobit$coef[-1]
age yearsmarried religiousness occupation rating
-0.041921 0.1295365 -0.394172 0.076218 -0.534137
Wichtig zu wiederholen: Dies sind marginale Effekte nur in den Fällen, in denen y positiv ist (dh mindestens eine Affäre stattgefunden hat) und bei den Mittelwerten aller erklärenden Variablen.
Wenn jemand diese Ergebnisse mit einem Programm mit einem integrierten Randeffekt-Tool für Tobit-Modelle überprüfen möchte, wäre ich gespannt auf den Vergleich. Alle Kommentare und Korrekturen werden sehr geschätzt.
Referenz :
Wooldridge, Jeffrey M. 2006. Einführende Ökonometrie: Ein moderner Ansatz. Thomson South-Western. 3. Auflage.
non-conformable arguments
wenn ich es mit den Beispieldaten von versucheAER::tobit
. Würde es Ihnen etwas ausmachen, es mit dem Beispieldatensatz zu versuchen?