gpt4 book ai didi

r - 如何使用 R 比较三个(或更多)组的回归系数?

转载 作者:行者123 更新时间:2023-12-01 23:42:31 25 4
gpt4 key购买 nike

有时您的研究可能会预测回归系数的大小可能因组而异。例如,您可能认为高度预测体重的回归系数在三个年龄组(年轻人、中年人、老年人)之间会有所不同。下面,我们有一个数据文件,其中包含 3 个虚构的年轻人、3 个虚构的中年人和 3 个虚构的老年人,以及他们的高度和体重。变量age表示年龄段,1为青年,2为中年,3为老年。

那么,如何使用 R 比较三个(或更多)组的回归系数(主要是斜率)?

示例数据:

age height weight 
1 56 140
1 60 155
1 64 143
2 56 117
2 60 125
2 64 133
3 74 245
3 75 241
3 82 269

最佳答案

CrossValidated 中有一个优雅的答案.但简而言之,

require(emmeans)
data <- data.frame(age = factor(c(1,1,1,2,2,2,3,3,3)),
height = c(56,60,64,56,60,64,74,75,82),
weight = c(140,155,142,117,125,133,245,241,269))

model <- lm(weight ~ height*age, data)
anova(model) #check the results

Analysis of Variance Table

Response: weight
Df Sum Sq Mean Sq F value Pr(>F)
height 1 25392.3 25392.3 481.5984 0.0002071 ***
age 2 2707.4 1353.7 25.6743 0.0129688 *
height:age 2 169.0 84.5 1.6027 0.3361518
Residuals 3 158.2 52.7
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1


slopes <- emtrends(model, 'age', var = 'height') #gets each slope
slopes
age height.trend SE df lower.CL upper.CL
1 0.25 1.28 3 -3.84 4.34
2 2.00 1.28 3 -2.09 6.09
3 3.37 1.18 3 -0.38 7.12

Confidence level used: 0.95


pairs(slopes) #gets their comparisons two by two
contrast estimate SE df t.ratio p.value
1 - 2 -1.75 1.82 3 -0.964 0.6441
1 - 3 -3.12 1.74 3 -1.790 0.3125
2 - 3 -1.37 1.74 3 -0.785 0.7363

P value adjustment: tukey method for comparing a family of 3 estimates

关于r - 如何使用 R 比较三个(或更多)组的回归系数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34295123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com