【发布时间】: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