2

我有一个包含交互项的二元变量的多项模型。当我将回归运行为:

mlogit x y x#y,正如我所期望的那样,我得到了合理的输出,其中交互项的估计值为 (0 1),并且在 (1 0) 和 (1 1) 处有两个遗漏。但是,当我尝试运行命令mfx时,会返回错误:x#0b: operator invalid r(198)

当我预先生成交互项时,例如z = x * y和 run 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 生成的模型,或者我可以使用边际效应以外的东西来解决这个问题?

4

1 回答 1

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),则无法正确评估不一致结果的陈述。

于 2014-08-19T20:14:14.440 回答