You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于分类变量的线性回归计算β(95%CI)及趋势P值(附R数据)

线性回归拟合计算趋势分析(模仿JAMA研究方法)

需求说明

本人阅读了JAMA发表的《2001-2016年美国人群久坐行为趋势》一文,希望学习其分析方法。该研究采用线性回归评估粗线性趋势,估计每2年变化的回归系数β及95%CI,将调查周期作为连续变量计算趋势P值。现提供R格式数据集,请求协助拟合线性回归模型并计算β(95%CI)和趋势P值。

数据集

data <- data.frame(
  Year_group = c("2001-2002", "2003-2004", "2005-2006", "2007-2008", "2009-2010","2011-2012","2013-2014","2015-2016"),
  Incidence = c(65.5,72.6,61.0,63.2,61.8,63.6,57.6,62.2),
  CI_Lower = c(59.1, 68.1, 56.3, 57.8, 54.5,59.2,53.7,57.1),
  CI_Upper = c(72.0, 77.2, 65.7, 68.7, 69.1,68.0,61.4,67.2))

分析步骤与代码

1. 构建连续时间变量

将每个调查周期转换为连续数值(以2001-2002为第1个周期,后续每2年递增1):

# 添加连续时间变量
data$time <- seq(1, nrow(data), 1)

2. 拟合线性回归模型

以Incidence为因变量、time为自变量拟合线性回归:

# 拟合模型
model <- lm(Incidence ~ time, data = data)

# 提取模型统计结果与置信区间
summary_result <- summary(model)
confint_result <- confint(model, level = 0.95)

3. 提取目标统计量

# 提取回归系数β(每2年的变化量)
beta <- coef(model)[["time"]]

# 提取95%置信区间
ci_lower <- confint_result["time", 1]
ci_upper <- confint_result["time", 2]

# 提取趋势P值
p_value <- summary_result$coefficients["time", "Pr(>|t|)"]

# 格式化输出结果
cat(sprintf("每2年变化的回归系数β: %.2f (95%% CI: %.2f, %.2f)\n", beta, ci_lower, ci_upper))
cat(sprintf("趋势P值: %.4f\n", p_value))

结果解释

  • 回归系数β代表每经过一个2年调查周期,Incidence的平均变化幅度
  • 95%CI反映该变化幅度的可信范围
  • 趋势P值用于判断该线性趋势是否具有统计学意义

内容的提问来源于stack exchange,提问作者H Luei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 20:32:14