【问题标题】:How does Stata treat multiple factor variables in regression?Stata如何处理回归中的多因子变量?
【发布时间】:2021-10-03 16:02:41
【问题描述】:

我有一个城市年级别的数据集,并使用城市固定效应运行以下回归:

reg y x i.city 

我认为这相当于为数据中的 300 个城市中的每一个生成一个虚拟变量,并运行(城市 1 作为基准级别):

reg y x city2 ... city300

但是,我还需要包括年份假人。我使用以下方法获得估计值:

reg y x i.city i.year

有谁知道矩阵形式的回归背后的原因是什么?这与每年生成一个虚拟对象并运行以下内容相同吗?

reg y x city2 ... city300 year2 ... year20

我想这样做的原因是尝试使用矩阵运算 (X'X)^{-1}(X'y) 从头开始​​编写命令,其中 X 包括城市虚拟变量和年份虚拟变量。

【问题讨论】:

  • 我建议在 Stata 博客中搜索提及 OLS 的线程。 blog.stata.com/?s=OLS 在那里你会看到比任何人都可能在这里提供的更多的细节。
  • 谢谢你,尼克!!这是了解的好资源!
  • 一般来说是的。您的基础矩阵 X 仍必须满足可逆性条件,因此换句话说,您的回归量的任何子集都不能完全共线。在您的每个i.Z 固定效应表达式中,一个指示变量被遗漏,否则一组固定效应将与您的截距完全共线。这是一般情况。例如,如果您只有一个特定年份的某个城市的数据,那么 X 中将忽略该年份或该城市的虚拟变量。
  • @JR96 感谢您指出这一点!是的,在小数据集中可能仍然存在共线性。幸运的是,我可以通过从每组中删除一列来恢复估计值。

标签: regression stata categorical-data


【解决方案1】:

您使用的方法称为虚拟 (0,1) 变量的角点编码,其中 k-1 个二进制 (0,1) 变量级别用于每个因子(分类变量)。如果您指定不应使用常数项:

reg y x i.city i.year, nocon

然后将使用归零约束编码进行二进制变量构造,其中将有一个用于 X 矩阵中的 city1 和 year1 的二进制变量。

如您所见(下图),当饮食中的视黄醇浓度 (retdiet) 在 male 虚拟变量上回归时,常数 (y-intcp) 的系数项是女性中的平均 y (815),并且male 的系数是男性和女性之间 y 值的差值。然而,当使用两个虚拟指标 - fem 和 male,并指定 , nocon(在逗号后)时,fem 和 male 的回归系数值是 y 的平均值( retdiet) 在每个组中。

【讨论】:

    猜你喜欢
    • 2018-09-19
    • 2016-08-02
    • 2019-06-17
    • 2020-08-08
    • 2018-03-29
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 2018-07-19
    相关资源
    最近更新 更多