r - 比较 R 中的两个线性模型

标签 r statistics linear-regression

假设我在 R 中有两个线性模型,使得:

lm1 = (x ~ a + b)

lm2 = (x ~ a + b + c)

我要确定 c 对 x 的影响 按照

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

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

我该如何计算这些数字?

最佳答案

通常的方法是查看 anova(lm1, lm2)并在 summary(lm2) ,虽然有一个 effects - 可能提供额外容量的包。我不明白你需要的那些是不够的。 anova 的输出提供了平方和和自由度的差异(如果它是伴随“c”相加的因子变量) . “'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"]

关于r - 比较 R 中的两个线性模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15013517/

相关文章:

python - 简单线性回归在 tensorflow 中未能收敛

string - 如何在 R 中绘制格式化为字符串的函数

r - 将浮雕(GEOtiff,.tif)添加到瑞士国家边界的 ggplot((多边形)shapefile,.shp)

R:删除一年内出现的重复条目

r - 多个时间点分组受试者的百分比变化 R

python - 我用 Python 编写的广义 Student-T 概率分布没有积分为 1(在某些情况下)

algorithm - 根据元素的特定属性的计数评估指示一组元素状态的分数

python - Lasso 回归模型对数据的过度拟合

r - 使用 R 从 aws s3 中提取多个 json 文档

javascript - 给定两点得到 x 截距