我的问题涉及在Stata中正确使用#
与##
来交互分类变量和因变量。这是我想到的例子。
为了理解 x 对 y 的边际效应,我在两种类型上进行了三次处理( A,B,C)的实验受试者( M,F )。为了理解合并的边际效应(假设我满足所有OLS标准),我可以运行reg y x
。然而,我也想了解每个“环境”中每个“物种”的边际效应,或 x 与治疗和类型的相互作用。
首先,假设 x 是连续的,是估算合并边际效应和治疗类型边际效应的正确语法
reg y x i.treatment#i.type#c.x
或
reg y i.treatment#i.type##c.x
是不是?
其次,是仅仅估计治疗类型边际效应的正确语法
reg y i.treatment#i.type#c.x, noconstant
其中常数下降?如果保持常数,它是否代表汇总的响应?
很抱歉,如果这是一个基本问题,但经过几天阅读后,我仍然很难准确掌握#
和##
之间的区别。提前谢谢了。
注意:建议的数据显然是一个面板,因此xtreg
命令更合适。为了简单起见,我只是假装数据更简单。
编辑:以下是内置Stata数据集的示例。
. reg price c.mpg##i.foreign
Source | SS df MS Number of obs = 74
-------------+------------------------------ F( 3, 70) = 9.48
Model | 183435281 3 61145093.6 Prob > F = 0.0000
Residual | 451630115 70 6451858.79 R-squared = 0.2888
-------------+------------------------------ Adj R-squared = 0.2584
Total | 635065396 73 8699525.97 Root MSE = 2540.1
-------------------------------------------------------------------------------
price | Coef. Std. Err. t P>|t| [95% Conf. Interval]
--------------+----------------------------------------------------------------
mpg | -329.2551 74.98545 -4.39 0.000 -478.8088 -179.7013
1.foreign | -13.58741 2634.664 -0.01 0.996 -5268.258 5241.084
|
foreign#c.mpg |
1 | 78.88826 112.4812 0.70 0.485 -145.4485 303.225
|
_cons | 12600.54 1527.888 8.25 0.000 9553.261 15647.81
-------------------------------------------------------------------------------
mpg
和1.foreign
分别捕获汽车每加仑英里数的边际效应,以及是否为国外或国内价格。当假人是一个(即汽车是外国的)时,foreign#c.mpg
捕获类别虚拟和连续 x 之间的交互?然后什么捕获了国内(假人为零)与mpg
的相互作用?
答案 0 :(得分:1)
在下文中,您将包括x
的主要效果和三向互动。
reg y x i.treatment#i.type#c.x
你遗漏了主要影响,特别是treatment
和type
的影响。
以下
reg y i.treatment#i.type##c.x
扩展为
reg y i.treatment#i.type c.x i.treatment#i.type#c.x
包括x
的主要效果,双向互动和三向互动。
查看有关包含与(out)主效应的交互的信息。例如https://stats.stackexchange.com/questions/11009/including-the-interaction-but-not-the-main-effects-in-a-model。
你说
我仍然很难准确掌握#和##之间的区别。
这可以通过阅读help fvvarlist
和手册来澄清。在这个阶段,语法所暗示的似乎不是问题,而是如何指定模型,这取决于理论建议,以前做过的事情等等。
来自你的例子
reg price c.mpg##i.foreign
扩展为
reg price c.mpg i.foreign c.mpg#i.foreign
(mpg
和foreign
的两个主要影响,以及它们之间的相互作用),你问
foreign#c.mpg
捕获虚拟类型和连续x之间的相互作用,当假人是一个(即汽车是外国的)?然后什么捕获了国内(假人为零)与mpg的相互作用?
写出模型有助于(同样有两个主要影响和交流):
price = 12600.54 - 329.2551 mpg - 13.58741 foreign + 78.88826 mpg foreign
这清楚地说明了mpg
对价格的影响如何受foreign
的影响; foreign
对price
的影响如何受mpg
的影响。由于foreign
仅采用值0
和1
,因此mpg
对price
的影响更容易理解。只需替换
foreign
即可
- 329.2551 mpg + 78.88826 mpg foreign
foreign == 1
时,mpg
的效果为-250.36684
。 foreign == 0
时效果为-329.2551
。
同样计算foreign
对price
的影响:
- 13.58741 foreign + 78.88826 mpg foreign
但现在替换掉mpg
。因为它是连续的,所以您应该插入多个mpg
值,以便更好地了解它对price
的影响(请参阅help margins
。)
(这都假设相应的系数具有统计学意义。)
我觉得你的问题涉及到理解Stata语法和统计问题的麻烦。第一个可以澄清阅读Stata帮助资源。关于第二个问题,你的问题是这样的,即Cross-Validated的人把它作为编程问题丢弃了。