面向 SAS 用户的 R
Melinda Higgins, PhD
Research Professor/Senior Biostatistician Emory University
运行回归模型
选择最优模型
评估并比较模型
报告最佳关联
# 运行 lm():diffht ~ bmi,保存模型
lmdiffhtbmi <- lm(diffht ~ bmi,
data = daviskeep)
# 运行 lm():diffht ~ weight,保存模型
lmdiffhtwt <- lm(diffht ~ weight,
data = daviskeep)
# 对每个模型运行 summary() 并保存结果
smrylmdiffhtbmi <- summary(lmdiffhtbmi)
smrylmdiffhtwt <- summary(lmdiffhtwt)
# 显示体重模型的 r.squared
smrylmdiffhtwt$r.squared
# 显示 BMI 模型的 r.squared
smrylmdiffhtbmi$r.squared
# 比较两个模型的 AIC
AIC(lmdiffhtbmi, lmdiffhtwt)
[1] 0.003281645
[1] 0.00121824
df AIC
lmdiffhtbmi 3 788.0816
lmdiffhtwt 3 787.7052
# 绘制:按性别的 diffht 与体重
ggplot(daviskeep,
aes(diffht, weight)) +
geom_point() +
geom_smooth(method = "lm") +
facet_wrap(vars(sex)) +
ggtitle("身高差
由体重预测,
按性别拟合模型")



# lm():按体重拟合女性的 diffht
lmdiffhtwtF <- lm(diffht ~ weight,
subset = (sex == "F"),
data = daviskeep)
# lm():按体重拟合男性的 diffht
lmdiffhtwtM <- lm(diffht ~ weight,
subset = (sex == "M"),
data = daviskeep)
# 对每个模型运行 summary() 并保存结果
smrylmdiffhtwtF <- summary(lmdiffhtwtF)
smrylmdiffhtwtM <- summary(lmdiffhtwtM)
# 女性模型的 r.squared
smrylmdiffhtwtF$r.squared
# 男性模型的 r.squared
smrylmdiffhtwtM$r.squared
[1] 4.00807e-05
[1] 0.00804139
面向 SAS 用户的 R