在具有全套因素且 R 中没有常数的线性回归模型中更正 R^2 值

Correct R^2 values in linear regression models with full set of factors and no constant in R

我有一个来自包含四种处理的实验的数据集,这些数据使用四个虚拟变量进行编码,我称之为 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 将是正确的:

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