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

R语言纵向数据场景下value变量的正态性检验方法咨询

纵向数据正态性检验的核心思路
  • 不要直接对全体value做检验:同一受试者的测量值存在组内相关性,违背普通正态检验要求的独立观测假设,得到的结果完全不可靠
  • 优先检验模型残差的正态性:纵向分析通常会用到混合效应模型,这类模型的正态性假设针对的是模型残差、随机效应等衍生指标,而非原始观测值
  • 可按分层维度分组检验:比如按「受试者+季节」分组后,组内是同一个体同一时段的重复测量,近似满足独立性要求,可对各组做常规正态检验后汇总结果
R语言实现步骤

1. 数据预处理

先将你的示例数据整理为标准R数据框:

df <- data.frame(
  Subject = rep(c(1,2), c(6,3)),
  Season = c("autumn","autumn","autumn","winter","winter","summer","winter","winter","spring"),
  date = c("01-09","02-09","05-09","06-12","09-01","27-06","16-12","25-01","12-06"),
  value = c(232,213,228,343,377,301,333,384,301),
  Treatment = rep(c("Medicine","Placebo"), c(6,3))
)

2. 分组正态检验

针对你提到的「同一受试者同季节多次测量」的结构,按受试者+季节分组后做Shapiro-Wilk检验:

library(dplyr)
# 批量对每个分组做正态检验
df %>%
  group_by(Subject, Season) %>%
  group_map(~ shapiro.test(.x$value), .keep = T)

结果解读:如果绝大多数分组的p值大于0.05,可认为组内观测符合正态性要求。

3. 混合效应模型残差检验(最常用)

如果你后续要做纵向数据分析,会优先拟合混合效应模型,直接检验模型残差的正态性即可,同时自动考虑纵向数据的相关性:

library(lme4)
library(DHARMa)
# 拟合包含受试者随机截距的混合效应模型,固定效应可根据你的分析需求调整
lme_model <- lmer(value ~ Treatment + Season + (1|Subject), data = df)
# 生成标准化模拟残差
sim_res <- simulateResiduals(lme_model)
# 输出正态性统计检验结果
testNormal(sim_res)
# 绘制QQ图可视化判断正态性
plotQQunif(sim_res)

结果解读:testNormal返回的p值大于0.05、QQ图上的散点基本贴合对角线,就说明残差符合正态性假设。

4. 可视化辅助判断

大样本下正态检验的p值对微小偏离非常敏感,建议配合可视化结果综合判断:

library(ggplot2)
# 按受试者分组绘制value的QQ图
ggplot(df, aes(sample = value)) +
  geom_qq() +
  geom_qq_line() +
  facet_wrap(~Subject)

注意:如果检验目的是为了满足后续模型的假设,优先看残差的正态性结果,不需要纠结原始观测值的分布。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:03:01