J'ai eu le même problème (« non-conformable arguments
») que @ hans0l0 mentionné dans le commentaire ci-dessus. Je pense avoir résolu ce problème et je vais essayer de l'expliquer ici.
Tout d'abord, il y a une erreur dans l'équation du message d'origine. Ce devrait être —ie, il y a un indice après le deuxième mais pas après le premier. Dans un modèle Tobit, l'effet marginal d'une variable est déterminé non seulement par le coefficient de cette variable particulière (le ); un facteur d'ajustement est également requis qui est calculé à partir des valeurs d'autres variables du modèle (le ).ϕ(xβ/σ)βjβxjβjϕ(xβ/σ)
Extrait de Wooldridge 2006 (p. 598):
Le facteur d'ajustement… dépend d'une fonction linéaire de , . On peut montrer que le facteur d'ajustement est strictement compris entre zéro et un.xxβ/σ=(β0+β1x1+…+βkxk)/σ
Ce facteur d'ajustement signifie que nous devons faire un choix sur les valeurs des autres variables du modèle: «nous devons insérer des valeurs pour les x j , généralement les valeurs moyennes ou d'autres valeurs intéressantes» (Wooldridge 2006, p598). Donc, en général, ce serait la moyenne, mais cela pourrait aussi être la médiane, le quartile supérieur / inférieur, ou toute autre chose. Cela explique pourquoi @ hans0l0 et moi obtenions les non-conformable argument
erreurs « » lorsque nous utilisions le code d'Alex ci-dessus: le « x
» dans ce code sera un vecteur alors que ce dont nous avons besoin est une seule valeur pour la variable (moyenne / médiane / etc.) . Je crois qu'il y a aussi une autre erreur dans le code ci-dessus en ce qu'il exclut la valeur d'interception du terme d'ajustement (avec le [-1]
script après la première utilisation dereg$coef
). Ma compréhension de cela (mais je suis heureux d'être corrigé) est que le terme d'ajustement devrait inclure l'ordonnée à l'origine (le ci-dessus).β0
Cela dit, voici un exemple utilisant l'ensemble de données 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
Il est important de le rappeler: ce ne sont des effets marginaux que dans les cas où y est positif (c'est-à-dire qu'au moins une affaire s'est produite) et aux valeurs moyennes de toutes les variables explicatives.
Si quelqu'un souhaite vérifier ces résultats à l'aide d'un programme avec un outil d'effets marginaux intégré pour les modèles Tobit, je serais curieux de voir la comparaison. Tous les commentaires et corrections seront très appréciés.
Référence :
Wooldridge, Jeffrey M. 2006. Économétrie introductive: une approche moderne. Thomson Sud-Ouest. 3e édition.
non-conformable arguments
quand j'essaye avec les données d'exemple fournies parAER::tobit
. Pourriez-vous l'essayer avec l'exemple de jeu de données?