在医学和生物统计中,广义估计方程(GEE)是一种灵活且强大的方法,用于分析重复测量数据,尤其是当数据不满足传统方差分析的假设时。GEE方法通过指定一个工作协方差矩阵来纠正测量之间的相关性,从而提供了对组内相关性的稳健估计。
GEE的适用条件
-
数据结构:GEE适用于具有重复测量设计的数据,其中每个受试者在不同时间点或多个场合下被测量。
-
相关性结构:GEE需要指定一个工作相关性结构来纠正测量之间的相关性。常见的工作相关性结构包括交换性(exchangeable)、一阶自回归(AR(1))、未结构化(unstructured)等。
-
正态性:尽管GEE对正态性假设的违反比传统方法更稳健,但正态性仍然是一个理想的假设,特别是对于连续变量。
-
同质性:GEE不需要假设不同组或不同时间点的方差相等,因此在这方面比传统ANOVA更灵活。
-
独立性:观察值之间应该独立,或者至少相关性应该通过工作相关性结构得到适当的纠正。
示例代码与结果解读
假设我们有一个数据集repeated_measures.csv
,其中包含列id
(患者ID),group
(组别:'control'或'experiment'),time
(时间点),和measurement
(测量值)。
首先,加载必要的R包和数据集:
# 加载所需的包
library(geepack)
# 读取数据集
data <- read.csv("repeated_measures.csv")
然后,我们使用geeglm
函数来拟合GEE模型:
# 拟合GEE模型
# 使用'id'作为集群变量,'group'和'time'作为固定效应
# 指定工作相关性结构为交换性(exchangeable)
model <- geeglm(measurement ~ group + time + group:time, id = id, data = data, corstr = "exchangeable", family = gaussian())
# 查看模型摘要以获取结果
summary(model)
假设模型的输出如下:
Call:
geeglm(formula = measurement ~ group + time + group:time, family = gaussian(),
id = id, data = data, corstr = "exchangeable")
Coefficients:
Estimate Std.err z value Pr(>|z|)
(Intercept) 5.03212 0.57456 8.7572 < 2.2e-16 ***
groupexp 1.20485 0.78553 1.5339 0.124834
time 0.50231 0.10328 4.8645 1.131e-06 ***
groupexp:time -0.15344 0.14292 -1.0734 0.282715
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation:
(Intercept) groupexp time groupexp:time
groupexp -0.101
time -0.223 0.048
groupexp:time -0.214 0.047 0.090
Standardized residuals:
Min Q1 Med Q3 Max
-2.3809930 -0.6743180 0.0001644 0.6685274 2.5108238
Number of clusters (id) : 100 Maximum cluster size : 4
结果解读:
-
Coefficients
部分提供了固定效应的估计值、标准误、z值和p值。这些值与传统的线性回归系数类似,但考虑了重复测量之间的相关性。 -
Intercept
是截距的估计值,对应于所有组和时间点的平均基线测量值。 -
groupexp
是实验组相对于对照组的平均效应。在这个例子中,它不显著(p值大于0.05),说明在基线时两组之间没有显著差异。 -
groupexp:times是测量指标在两组间随时间的变化趋势的比较,这里P值大于0.5说明两组患者测量指标随着时间变化趋势没有显著差异。