我有一个包含交互项的二元变量的多项模型。当我将回归运行为:
mlogit x y x#y
,我得到了合理的输出,其值为(0 1)的交互项的估计值,以及(1 0)和(1 1)的两个省略,正如我所期望的那样。但是,当我尝试运行命令mfx
时,会返回错误:x#0b: operator invalid r(198)
当我预先生成交互术语时,z = x * y
并运行mlogit x y z
,我可以从模型中获得边际效果。但是,y和z(但不是x)的参数估计值与前一个规范相差很大,y与零显着不同(这是不可预期的)。
据我所知,这似乎是Stata 11处理交互术语的一个问题。如果我运行version 10.1: mlogit x y x#y
,则会收到错误interactions not allowed r(101)
。
有没有办法可以mfx
使用版本11生成的模型,或者我可以使用边际效果以外的其他东西来解决这个问题吗?
答案 0 :(得分:1)
您报告了我用示例覆盖的三个问题。代码中的注释解释。
clear all
set more off
webuse sysdsn1
*----- problem 1 -----
// error: -mfx- can't handle factor variable notation (use -margins- instead)
mlogit insure age male nonwhite male#nonwhite i.site
mfx
*----- problem 2 -----
// error: factor variable notation is available only with Stata >= 11
version 10: mlogit insure age male nonwhite male#nonwhite i.site
*----- problem 3 -----
// results are the same
mlogit insure age male nonwhite c.male#c.nonwhite i.site
gen mnw = male * nonwhite
mlogit insure age male nonwhite mnw i.site
底线:
如果您有Stata> = 11,则可使用因子变量表示法(#)
建议的做法是使用margins
,而不是mfx
。
如果你有Stata< 11您必须创建自己的互动,并且可以使用mfx
。
最后,如果您没有提供重现问题的实际代码(问题3),则无法正确评估不一致结果的陈述。