Tuve el mismo problema (" non-conformable arguments
") que @ hans0l0 mencionó en el comentario anterior. Creo que he resuelto esto e intentaré explicarlo aquí.
Primero, hay un error en la ecuación en la publicación original. Debe ser , es decir, hay un subíndice después del segundo pero no después del primero. En un modelo de Tobit, el efecto marginal de una variable está determinado no solo por el coeficiente de esa variable particular ( ); También se requiere un factor de ajuste que se calcula a partir de los valores de otras variables en el modelo (el the ).ϕ (x β / σ ) βjβXjβjϕ (x β / σ )
De Wooldridge 2006 (p. 598):
El factor de ajuste ... depende de una función lineal de , . Se puede demostrar que el factor de ajuste está estrictamente entre cero y uno.Xx β / σ = ( β0 0+ β1X1+ … + ΒkXk) / σ
Este factor de ajuste significa que tenemos que elegir los valores de las otras variables en el modelo: "debemos insertar valores para x j , generalmente los valores medios u otros valores interesantes" (Wooldridge 2006, p598). En general, esta sería la media, pero también podría ser la mediana, el cuartil superior / inferior o cualquier otra cosa. Esto se relaciona con por qué @ hans0l0 y yo recibimos los non-conformable argument
errores " " cuando estábamos usando el código de Alex anterior: el " x
" en ese código será un vector cuando lo que necesitamos es un valor único para la variable (media / mediana / etc.) . Creo que también hay otro error en el código anterior, ya que excluye el valor de intercepción del término de ajuste (con el [-1]
script después del primer uso dereg$coef
) Entiendo esto (pero estoy feliz de que me corrijan) es que el término de ajuste debe incluir la intercepción (el de arriba).β0 0
Dicho todo esto, aquí hay un ejemplo usando el conjunto de datos de 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
Es importante reiterar: estos son efectos marginales solo en los casos en que y es positivo (es decir, ha sucedido al menos un asunto) y en los valores medios de todas las variables explicativas.
Si alguien quisiera verificar esos resultados usando un programa con una herramienta de efectos marginales incorporada para los modelos Tobit, me gustaría ver la comparación. Cualquier comentario y corrección será muy apreciado.
Referencia :
Wooldridge, Jeffrey M. 2006. Econometría introductoria: un enfoque moderno. Thomson Suroeste. 3ra Edición.
non-conformable arguments
cuando lo intente con los datos de ejemplo proporcionados porAER::tobit
. ¿Le importaría intentarlo con el conjunto de datos de ejemplo?