如何合并代码提取回归模型中bmi变量的系数与置信区间并保存为CSV
批量线性回归提取BMI系数及置信区间并保存CSV
需求说明
批量执行线性回归后,需要同时提取每个回归模型中bmi变量的系数(含统计量:估计值、标准误、t值、P值)与置信区间,并将最终结果合并后保存为CSV文件。
现有代码
回归循环代码
respvars <- names(QBB_clean[1653:2592]) predvars <- c("bmi","Age", "sex","lpa2c", "smoking", "CholesterolTotal") results <- list() for (v in respvars) { form <- reformulate(predvars, response = v) results[[v]] <- lm(form, data = QBB_clean) }
两段单独提取代码
提取BMI系数统计量:
t(sapply(results, function(m) coef(summary(m))["bmi",]))
提取BMI置信区间:
t(sapply(results, function(m) confint(m)["bmi",]))
合并解决方案
可以通过一次遍历同时提取所需的所有信息,避免重复循环,整理成数据框后直接保存为CSV:
# 同时提取BMI的系数统计量和95%置信区间 bmi_results <- t(sapply(results, function(m) { # 提取系数的统计量(估计值、标准误、t值、P值) coef_stats <- coef(summary(m))["bmi",] # 提取置信区间 ci_values <- confint(m)["bmi",] # 合并两类结果 c(coef_stats, ci_values) })) # 转换为数据框,优化列名 bmi_results_df <- as.data.frame(bmi_results) colnames(bmi_results_df)[5:6] <- c("CI_2.5%", "CI_97.5%") # 保存为CSV文件,行名保留因变量名称 write.csv(bmi_results_df, file = "bmi_regression_summary.csv", row.names = TRUE)
结果说明
最终生成的CSV包含以下列:
Estimate:BMI变量的系数估计值Std. Error:系数的标准误t value:t检验统计量Pr(>|t|):P值CI_2.5%:95%置信区间下限CI_97.5%:95%置信区间上限
内容的提问来源于stack exchange,提问作者N_H
相关产品推荐
相关产品推荐

