【问题标题】:Stata omitting 'collinear' variables following interaction termStata在交互项之后省略了“共线”变量
【发布时间】:2021-01-14 08:17:45
【问题描述】:

在 Stata 中,我最近发现,当我在一个回归模型中跨多个交互项使用相同的变量时,Stata 会将该变量标记为共线性。例如,运行:

regress dep i.gender##c.age i.ethnicity##c.age

标记以下消息:

note: age omitted because of collinearity

年龄仍然包含在随后的回归表中,但有两次,第一次使用系数、SE 等,正如人们所期望的那样,但第二次说omitted

我以前做过很多次类似的分析,但从未有过(或至少从未注意到)。这很不和谐,因为不言而喻,年龄与它本身是共线的。但这无关紧要,因为我并没有试图同时输入两个名为“年龄”的变量。很明显,这是我在两个交互项中使用的一个变量。有没有其他人遇到过这种情况,他们知道抑制它的方法吗?

【问题讨论】:

    标签: stata interaction multicollinearity


    【解决方案1】:

    是的,stata 不会解析输入以检查变量是否完全相同,但您可以使用 noomitted 选项抑制由于多重共线性变量而被忽略的变量,或者确保在回归中仅包含每个变量一次通过使用单个 # 作为交互项。

    sysuse nlsw88
    
    reg wage i.south##c.age i.union##c.age 
    reg wage i.south##c.age i.union#c.age i.union // only one each
    
    reg wage age age age 
    reg wage age age age, noomitted // suppress output. 
    

    另一个可能的问题是由于通过构建许多交互项来使用稀疏数据,并且对于生成的虚拟变量(全“1”或全“0”)只有一种观察。请参阅下一个示例。

    cls
    reg wage i.south##age    // runs fine
    replace south = 1 if age == 46
    reg wage i.south##age    // note: 1.south#46.age omitted because of collinearity
    reg wage i.south##c.age  // runs fine
    

    无论如何,我不确定它是否适用于您的问题,因为您在连续 age 与种族和性别互动时明确回归。我认为使用连续变量时不会出现这个问题。也许吧?

    【讨论】:

      猜你喜欢
      • 2018-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      相关资源
      最近更新 更多