3

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

lm1 = (x ~ a + b)

lm2 = (x ~ a + b + c)

我想确定c 对 x的影响

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

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

我该如何计算这些数字?

4

3 回答 3

6

通常的方法是查看anova(lm1, lm2)summary(lm2),尽管有一个effects-package 可以提供额外的容量。我不明白你确实需要那些还不够。平方和的差值和自由度(如果它是伴随“c”相加的因子变量)由 的输出提供anova。“'c' 对 x 的贡献”有点模糊,但可能意味着系数(标记为 x 提供的 x 的“估计” 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 

很容易计算出 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"]
于 2013-02-22T00:20:25.280 回答
4

尝试比较summary(lm1)summary(lm2)。R平方信息应该在底部。

于 2013-02-21T22:36:41.887 回答
0

您可以使用库中compare_performance的函数performance

library(performance)
compare_performance(lm1, lm2, rank = TRUE)
于 2020-07-08T14:13:28.717 回答