【问题标题】:Correct R^2 values in linear regression models with full set of factors and no constant in R在具有全套因子且 R 中没有常数的线性回归模型中正确的 R^2 值
【发布时间】:2023-03-12 06:20:01
【问题描述】:

我有一个实验数据集,其中包含四种处理方法,使用四个虚拟变量编码,我将它们称为 Tr1、Tr2、Tr3 和 Tr4。 (所以要清楚:Tr1 + Tr2 + Tr3 + Tr4 = 1 用于我数据集中的所有观察结果。)现在我正在估计一个线性回归模型,在该模型中,我对所有四个假人加上一些其他回归量回归我的结果变量 y,省略常数:

lm(y ~ Tr1 + Tr2 + Tr3 + Tr4 + var1 + var2 + 0, data = df)

问题是这个没有常数的模型会产生膨胀的 R^2 值。显然,Stata 有一个, hasconst 选项,它可以产生正确的 R^2 值,同时考虑到模型是在没有常数的情况下估计的,但常数包含在所有假人的形式中。 R中有类似的东西吗?或者有人可以告诉我如何计算这个模型的 R^2 吗?

【问题讨论】:

  • 如果您删除其中一个假人但包含一个常数,则估计的模型将相同(模数将常数添加到您的假人)并且 R2 将是正确的。
  • 那是真的 - 所以你的意思是我可以简单地将等效模型中的 R2 用于没有常数的模型?
  • 是的,@dash2 是正确的。 FWIW,在这种情况下,“正确”的含义存在一些争议。 R 对此有一个常见问题解答:cran.r-project.org/doc/FAQ/…
  • 我现在已经采用了@dash2 提出的解决方案,并澄清了我在回归描述中所做的事情。对我来说似乎是一个很好的解决方案!

标签: r linear-regression lm


【解决方案1】:

如果您删除其中一个假人但包含一个常数,则估计的模型将是相同的(模数将常数添加到您的假人)并且 R2 将是正确的:

m <- lm(y ~ Tr2 + Tr3 + Tr4 + var1 + var2, data = df)
rsq <- summary(m)$r.squared

【讨论】:

    猜你喜欢
    • 2018-09-17
    • 2018-04-28
    • 1970-01-01
    • 2018-04-09
    • 2018-07-13
    • 2016-11-05
    • 2022-01-09
    • 1970-01-01
    • 2021-07-29
    相关资源
    最近更新 更多