我正在 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 平方 但它返回`
Error in summary(x)$r.squared : $ operator is invalid for atomic vectors"`
我还建议计算我的模型的 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% 方差。