Какую команду в Stata 12 я использую для интерпретации коэффициентов модели ограниченной зависимой переменной?

Я запускаю следующий код:

oprobit var1 var2 var3 var4 var5 var2##var3 var4##var5 var6 var7 etc.

Без условий взаимодействия я мог бы использовать следующий код для интерпретации коэффициентов:

mfx compute, predict(outcome(2))

[для исхода равного 2 (всего у меня 4 исхода)]

Но так как mfx не работает с условиями взаимодействия, то получаю ошибку. Я пытался использовать команду margins, но это тоже не сработало!!! margins var2 var3 var4 var5 var2##var3 var4##var5 var6 var7 etc... , post

margins работает ТОЛЬКО для условий взаимодействия: (margins var2 var3 var4 var5, post) Какую команду я использую, чтобы иметь возможность интерпретировать ОБА взаимодействие и обычные переменные?

Наконец, говоря простым языком, мой вопрос таков: учитывая приведенную выше модель регрессии, какую команду я могу использовать для интерпретации коэффициентов?


person CHEBURASHKA    schedule 17.04.2013    source источник
comment
Отчет margins не работает и его нелегко расшифровать, если вы не укажете точную команду, которую вы использовали, и точный ответ от Stata.   -  person Nick Cox    schedule 17.04.2013
comment
@Nick Cox Я использовал margins var2 var3 var4 var5, post Как видите, я не включал другие переменные (такие как var6, var7 и т. д.), которые ни с кем не взаимодействуют. Я хочу сказать, что mfx работает ТОЛЬКО для обычных (НЕ ВЗАИМОДЕЙСТВУЮЩИХ) переменных, а margins работает ТОЛЬКО для переменных, которые взаимодействуют с кем-то.   -  person CHEBURASHKA    schedule 17.04.2013
comment
Это половина того, что я предложил, точная команда, которую вы использовали (хотя в качестве побочного вопроса гораздо лучше использовать вызывающие воспоминания имена переменных, а не такие имена, как var1). Но ваше резюме неверно. margins выдаст результаты для факторных переменных; они не должны быть вовлечены во взаимодействие.   -  person Nick Cox    schedule 17.04.2013
comment
@Nick Cox У меня вызывающее воспоминания имя, но если бы я показывал настоящее имя, это потребовало бы дополнительных объяснений ... и сделало бы мой вопрос длиннее. Вся моя переменная категорична. Что касается margins, я понял свою ошибку, я должен был использовать: margins, dydx(*) predict(outcome(2)), как предложил @Dimitriy V. Masterov ниже.   -  person CHEBURASHKA    schedule 17.04.2013
comment
Я понимаю. Если вы представляете код как буквальный код, люди примут его именно за это. Разница оказывается не относящейся к вашей проблеме здесь, но в целом это не так. Опасно не указывать точный код, который вы использовали, так как вы можете удалить некоторые мелкие детали, которые имеют решающее значение для понимания проблемы.   -  person Nick Cox    schedule 18.04.2013


Ответы (1)


mfx — это старая команда, которая была заменена на поля. Вот почему он не работает с обозначениями переменных факторов, которые вы использовали для определения взаимодействий. Мне не ясно, что вы на самом деле намеревались вычислить с помощью команды полей.

Вот пример того, как вы можете получить среднее предельное влияние на вероятность исхода 2:

. webuse fullauto
(Automobile Models)

. oprobit rep77 i.foreign c.weight c.length##c.mpg

Iteration 0:   log likelihood = -89.895098  
Iteration 1:   log likelihood = -76.800575  
Iteration 2:   log likelihood = -76.709641  
Iteration 3:   log likelihood = -76.709553  
Iteration 4:   log likelihood = -76.709553  

Ordered probit regression                         Number of obs   =         66
                                                  LR chi2(5)      =      26.37
                                                  Prob > chi2     =     0.0001
Log likelihood = -76.709553                       Pseudo R2       =     0.1467

--------------------------------------------------------------------------------
         rep77 |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
---------------+----------------------------------------------------------------
     1.foreign |   1.514739   .4497962     3.37   0.001      .633155    2.396324
        weight |  -.0005104   .0005861    -0.87   0.384    -.0016593    .0006384
        length |   .0969601   .0348506     2.78   0.005     .0286542     .165266
           mpg |   .4747249   .2241349     2.12   0.034     .0354286    .9140211
               |
c.length#c.mpg |  -.0020602   .0013145    -1.57   0.117    -.0046366    .0005161
---------------+----------------------------------------------------------------
         /cut1 |   17.21885   5.386033                      6.662419    27.77528
         /cut2 |   18.29469   5.416843                      7.677877    28.91151
         /cut3 |   19.66512   5.463523                      8.956814    30.37343
         /cut4 |   21.12134   5.515901                      10.31038    31.93231
--------------------------------------------------------------------------------

.  margins, dydx(*) predict(outcome(2))

Average marginal effects                          Number of obs   =         66
Model VCE    : OIM

Expression   : Pr(rep77==2), predict(outcome(2))
dy/dx w.r.t. : 1.foreign weight length mpg

------------------------------------------------------------------------------
             |            Delta-method
             |      dy/dx   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
   1.foreign |  -.2002434   .0576487    -3.47   0.001    -.3132327    -.087254
      weight |   .0000828   .0000961     0.86   0.389    -.0001055    .0002711
      length |  -.0088956    .003643    -2.44   0.015    -.0160356   -.0017555
         mpg |   -.012849   .0085546    -1.50   0.133    -.0296157    .0039178
------------------------------------------------------------------------------
Note: dy/dx for factor levels is the discrete change from the base level.

Если вам нужен прогноз, а не предельный эффект, попробуйте

margins, predict(outcome(2))

Предельный эффект только члена взаимодействия труднее рассчитать в нелинейной модели. Подробности здесь.

person Dimitriy V. Masterov    schedule 17.04.2013
comment
Кроме того, это Stata, а не STATA. Некоторых это раздражает. - person Dimitriy V. Masterov; 17.04.2013
comment
Спасибо за ответ. Я проголосовал. Однако я сделал margins, predict(outcome(2)). Моя проблема: я не могу напрямую интерпретировать предполагаемый коэффициент регрессии, потому что это ограниченная модель зависимой переменной. Вот почему мне нужно сначала преобразовать эти коэффициенты, чтобы я мог их интерпретировать (скажем, увеличение var2 на 1 пункт приводит к тому, что 25%-я вероятность зависимой переменной равна 2). mfx использовал для преобразования: mfx compute, predict(outcome(2)) вы можете попробовать это. Но он не принимает условия взаимодействия. - person CHEBURASHKA; 17.04.2013
comment
В вашем примере margins, dydx(*) predict(outcome(2)) не преобразует коэффициент c.length#c.mpg, который изначально равен -0020602. Как мне объяснить это -.0020602? - person CHEBURASHKA; 17.04.2013
comment
Допустим, вас волнует длина. AME длины включает в себя прямое влияние длины, а также влияние взаимодействия с милями на галлон. Зачем тебе когда-либо хотеть разделить их? Если вам важно, как это выглядит при разных значениях миль на галлон, вы можете добавить что-то вроде опции at(mpg =(15 25 35)) на поля. - person Dimitriy V. Masterov; 17.04.2013
comment
Вот еще один свободный способ увидеть это. Pr(y=2)=F(a + b x + c z + d xz). Производная по x равна F'(a + b x + c z + d xz)(b+d*z) по цепному правилу. Вы оцениваете это для всех и получаете среднее значение. Это АМЕ. Опция at() оценивает это среднее значение, при этом для всех установлено значение 15, 25 и 35 миль на галлон. - person Dimitriy V. Masterov; 17.04.2013
comment
Спасибо @Dimitriy V. Masterov - person CHEBURASHKA; 18.04.2013