我正在 R 中研究协变量的线性回归,如下所示:lm(x ~ y + a + b + c)
使用summary()函数,我可以获得模型每个变量对应的p值。但是,我只有与整个模型相对应的 R^2,这并不能说明我感兴趣的变量 (y) 的贡献。
如何获得与仅由 y 解释的方差部分相对应的 R^2 ?
我尝试过:sapply(model,function(x)summary(x)$ r.squared),如下建议:为所有适合lmList的模型打印R平方 但它返回“summary(x)$r.squared 中的错误:$ 运算符对于原子向量无效”
我还建议计算我的模型的 R^2 与没有我感兴趣的变量的线性模型的 R^2 之间的差异。这是一个有效的方法吗? 无论如何,我仍然想知道是否有更简单的方法来做到这一点,例如包含在某些包中。
提前谢谢您!
您与您的
sapply
很接近,只是list
一个完整的和受限的模型并计算diff
erence,例如
> full <- lm(mpg ~ ., mtcars)
> rest <- lm(mpg ~ . - wt, mtcars)
> diff(sapply(list(full, rest), \(x) summary(x)$r.squared))
[1] -0.02399046
其中重量 wt 似乎可以解释完整模型中每加仑英里数的 2.4% 方差。