У меня была та же проблема (« non-conformable arguments
»), о которой @ hans0l0 упоминал в комментарии выше. Я думаю, что я решил это, и постараюсь объяснить здесь.
Во-первых, в исходном посте есть ошибка в уравнении. Это должно быть то есть, есть нижний индекс после второго но не после первого. В модели предельный эффект переменной определяется не только коэффициентом этой конкретной переменной ( ); также необходим корректирующий коэффициент, который рассчитывается на основе значений других переменных в модели ( ).ϕ(xβ/σ)βjβxjβjϕ(xβ/σ)
От Вулдриджа 2006 (стр. 598):
Коэффициент корректировки… зависит от линейной функции , . Можно показать, что поправочный коэффициент находится строго между нулем и единицей.xxβ/σ=(β0+β1x1+…+βkxk)/σ
Этот корректирующий коэффициент означает, что мы должны сделать выбор значений других переменных в модели: «мы должны включить значения для x j , обычно средние значения или другие интересные значения» (Wooldridge 2006, p598). Таким образом, обычно это будет среднее значение, но это также может быть медиана, верхний / нижний квартиль или что-то еще. Это связано с тем, почему @ hans0l0 и я получали « non-conformable argument
» ошибки, когда мы использовали код Алекса выше: « x
» в этом коде будет вектором, когда нам нужно одно значение для переменной (среднее / медиана / и т. Д.) , Я полагаю, что в приведенном выше коде есть и другая ошибка, заключающаяся в том, что она исключает значение перехвата из корректирующего члена (с помощью [-1]
сценария после первого использованияreg$coef
). Мое понимание этого (но я рад, что меня поправили) состоит в том, что термин корректировки должен включать в себя ( сверху).β0
Тем не менее, вот пример использования набора данных из 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
Важно повторить: это предельные эффекты только в тех случаях, когда у положительно (т. Е. Произошел хотя бы один случай) и при средних значениях всех объясняющих переменных.
Если кто-то хотел бы проверить эти результаты, используя программу со встроенным инструментом предельных эффектов для моделей Tobit, мне было бы любопытно увидеть сравнение. Любые комментарии и исправления будут очень благодарны.
Ссылка :
Вулдридж, Джеффри М. 2006. Вводная эконометрика: современный подход. Томсон Юго-Западный. 3-е издание.
non-conformable arguments
когда я попытаюсь сделать это на примере данных, предоставленныхAER::tobit
. Не могли бы вы попробовать его на примере набора данных?