Stata中含多分类变量交互项的2SLS回归报错求助
含多分类变量交互项的2SLS回归报错解决
问题背景
核心解释变量为0/1虚拟变量industry,工具变量为连续变量IV_jack,无交互项时2SLS回归可正常运行:
ivreg2 Y (industry=IV_jack) i.(year female),r
尝试将industry与多分类变量Field(取值1=生命科学、2=计算机科学等)构建交互项时,运行以下代码触发识别错误:
ivreg2 Y (industry##i.Field=c.IV_jack##i.major_field) i.(year female),r
错误提示:equation not identified; must have at least as many instruments not in the regression as there are instrumented variables
但将industry与0/1虚拟变量young交互时,以下代码可正常执行:
ivreg2 Y (industry##i.young=c.IV_jack##i.young) i.(year female),r
错误原因
多分类变量Field的主效应属于外生变量,无需工具化,但代码中通过industry##i.Field将其纳入了内生变量集合,导致内生变量数量远超工具变量数量:
- 假设
Field有k个类别,industry##i.Field会展开为:industry主效应 +k-1个Field虚拟变量 +k-1个industry#Field交互项,总计2k-1个内生变量 - 工具变量部分(推测
major_field为笔误,应为Field)c.IV_jack##i.Field仅展开为:IV_jack主效应 +k-1个IV_jack#Field交互项,总计k个工具变量 - 工具变量数量不足,模型无法满足识别条件
而与0/1虚拟变量young交互时,industry##i.young和c.IV_jack##i.young均展开为3个变量,刚好满足识别要求,因此可正常运行。
解决方案
仅将内生的核心变量及其交互项放入工具化括号内,Field的主效应作为外生控制变量放在括号外:
方案1:明确指定内生变量与工具变量
这种写法最清晰,避免歧义:
ivreg2 Y (industry industry#i.Field = c.IV_jack c.IV_jack#i.Field) i.(year female Field), r
方案2:利用##简化写法(需注意变量范围)
若偏好##的简洁性,可通过语法限定仅工具化industry及其交互项,同时显式将Field主效应作为控制变量:
ivreg2 Y (i.industry##i.Field = c.IV_jack##i.Field) i.(year female) i.Field, r
注:i.industry##i.Field会包含Field主效应,但ivreg2会自动识别其外生性并转为控制变量,但方案1的明确写法更推荐,可避免潜在的语法误解。
内容的提问来源于stack exchange,提问作者Clara HL
相关产品推荐
相关产品推荐

