假设我在R中有两个线性模型,如下所示:

lm1 =(x〜a + b)

lm2 =(x〜a + b + c)

我想确定,C对x 的影响是

1)效果的意义
2)效果评估
3)c对x整体变化的贡献(例如c的R平方值分量)

anova(lm1,lm2)为我提供了一个重要数字,但没有提供我需要的其他数字,尤其是上面的3个。

我该如何计算这些数字?

最佳答案

通常的方法是查看anova(lm1, lm2)summary(lm2),尽管有一个effects -package可提供其他功能。我不明白您所需要的这些还不够。平方和和自由度的差(如果它是与“c”相加的因子变量)由anova的输出提供。 “'c'对x的贡献”有点模糊,但是可能意味着系数(由summary(lm2)提供的x标记为“Estimate”)。当在回归分析中控制“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

“用于控制X2的X1的Partial-R ^ 2”(R ^ 2_Y.X1 | X2)为:
anova(lm2)[['Sum Sq']]["X1"]/anova(lm2)[['Sum Sq']][""Residuals"]

08-27 15:55