比较R中的两个线性模型

Rfu*_*ful 3 statistics r linear-regression

假设我在R中有两个线性模型,这样:

lm1 =(x~a + b)

lm2 =(x~a + b + c)

我想确定c对x的影响

1)效果的重要性2)效应的估计3)c对x的整体变化的贡献(例如,C的R平方值的分量)

anova(lm1,lm2)为我提供了一个有意义的数字,但不是我需要的其他数字,特别是上面的3个.

我该如何计算这些数字?

42-*_*42- 6

通常的方式是查看anova(lm1, lm2)和查看summary(lm2),尽管有一个effects可以提供额外容量的包装.我不明白你需要做些什么是不够的.如果它是伴随"c"的加法的因子变量,则平方和与自由度的差异由输出提供anova."c'对x的贡献"有点模糊,但可能意味着系数(由x提供的标记为"Estimate" summary(lm2)).当在回归分析中控制"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 
Run Code Online (Sandbox Code Playgroud)

可以容易地计算X1平方和中的总平方和的百分比.首先看物体anova(lm2)str().这是一个清单:

 100*anova(lm2)[['Sum Sq']][1]/sum(anova(lm2)[['Sum Sq']])
 #[1] 20.05545
Run Code Online (Sandbox Code Playgroud)

"X1控制X2的部分-R ^ 2"(R ^ 2_Y.X1 | X2)是:

anova(lm2)[['Sum Sq']]["X1"]/anova(lm2)[['Sum Sq']][""Residuals"]
Run Code Online (Sandbox Code Playgroud)