Ho avuto lo stesso problema (" non-conformable arguments
") che @ hans0l0 ha menzionato nel commento sopra. Penso di averlo risolto e cercherò di spiegare qui.
Innanzitutto, c'è un errore nell'equazione nel post originale. Dovrebbe essere —ie, c'è un pedice dopo il secondo ma non dopo il primo. In un modello di Tobit, l'effetto marginale di una variabile è determinato non solo dal coefficiente di quella particolare variabile ( ); è inoltre richiesto un fattore di aggiustamento che viene calcolato dai valori di altre variabili nel modello ( ).φ ( x β / σ ) βjβXjβjϕ (x β / σ )
Da Wooldridge 2006 (p. 598):
Il fattore di regolazione ... dipende da una funzione lineare di , . Si può dimostrare che il fattore di regolazione è strettamente compreso tra zero e uno.Xx β / σ = ( β0+ β1X1+ … + ΒKXK) / σ
Questo fattore di regolazione significa che dobbiamo fare una scelta in merito ai valori delle altre variabili nel modello: "dobbiamo inserire i valori per x j , di solito i valori medi o altri valori interessanti" (Wooldridge 2006, p598). Quindi in genere questo sarebbe il mezzo, ma potrebbe anche essere la mediana, il quartile superiore / inferiore o qualsiasi altra cosa. Questo si riferisce al motivo per cui @ hans0l0 e io stavamo ottenendo gli non-conformable argument
errori " " quando stavamo usando il codice di Alex sopra: il " x
" in quel codice sarà un vettore quando ciò di cui abbiamo bisogno è un singolo valore per la variabile (media / mediana / ecc.) . Credo che ci sia anche un altro errore nel codice sopra in quanto esclude il valore di intercettazione dal termine di regolazione (con lo [-1]
script dopo il primo utilizzo direg$coef
). La mia comprensione di questo (ma sono felice di essere corretto) è che il termine di regolazione dovrebbe includere l'intercetta (il dall'alto).β0
Detto questo, ecco un esempio che utilizza il set di dati di 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
Importante da ribadire: si tratta di effetti marginali solo nei casi in cui y è positivo (vale a dire almeno una relazione) e ai valori medi di tutte le variabili esplicative.
Se qualcuno volesse controllare quei risultati usando un programma con uno strumento di effetti marginali incorporato per i modelli Tobit, sarei curioso di vedere il confronto. Eventuali commenti e correzioni saranno molto apprezzati.
Riferimento :
Wooldridge, Jeffrey M. 2006. Econometria introduttiva: un approccio moderno. Thomson sud-occidentale. 3a edizione.
non-conformable arguments
quando provo ad esso con i dati di esempio forniti daAER::tobit
. Ti dispiacerebbe provarlo con il set di dati di esempio?