假设我在R中有两个线性模型:
lm1 =(x~a + b)
lm2 =(x~a + b + c)
我想根据
确定 c对x 的影响 1)效果的重要性 2)估计效果 3)c对x的整体变化的贡献(例如,R平方值的c分量)anova(lm1,lm2)为我提供了一个有意义的数字,但不是我需要的其他数字,特别是上面的3个。
我如何计算这些数字?
答案 0 :(得分:6)
通常的方法是查看anova(lm1, lm2)
和summary(lm2)
,尽管有一个effects
- 包可能会提供额外的容量。我不明白你需要做些什么是不够的。如果它是伴随“c”的加法的因子变量,则平方和与自由度的差异由anova
的输出提供。 “c'对x的贡献”有点模糊,但可能意味着系数(由summary(lm2)
提供的x标记为“估计”)。当在回归分析中控制“a”和“b”时,你可能会被要求写出“c”对“x”变化的贡献......“
如果你想在一个模型中分解平方和,只需看一下:
anova(lm2)
######
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X1 1 2.2167 2.21672 4.9554 0.03982 *
X2 1 1.2316 1.23156 2.7531 0.11540
Residuals 17 7.6047 0.44733
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
容易计算X1平方和中的平方总和的百分比。首先使用anova(lm2)
查看对象str()
。这是一个清单:
100*anova(lm2)[['Sum Sq']][1]/sum(anova(lm2)[['Sum Sq']])
#[1] 20.05545
“X1控制X2的部分-R ^ 2”(R ^ 2_Y.X1 | X2)是:
anova(lm2)[['Sum Sq']]["X1"]/anova(lm2)[['Sum Sq']][""Residuals"]
答案 1 :(得分:3)
尝试比较summary(lm1)
和summary(lm2)
。 R平方信息应位于底部。
答案 2 :(得分:0)
您可以使用compare_performance
库中的performance
函数:
library(performance)
compare_performance(lm1, lm2, rank = TRUE)