关于 statistical-analysis
面向学术研究者的统计分析指南,涵盖检验选择、假设诊断、效应量解释及 APA 风格报告。内容同时涉及频率学派与贝叶斯分析,并提供常见研究设计的决策流程。
主要功能
- 01频率学派与贝叶斯分析
- 02按研究问题选择检验
- 03检查统计检验假设
- 04计算并解释效应量
- 05APA 风格结果报告
适用场景
- 01为组间比较选择合适检验
- 02诊断回归模型假设
- 03报告效应量与置信区间
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jaechang-hits/ sciagent-skills --skill statistical-analysis安装后在 Claude Code 中输入/statistical-analysis确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/bayesian_statistics.mdeffect_sizes_and_power.mdreporting_standards.md详细介绍
统计分析
概述
统计分析是一个系统的过程,包括选择合适的检验、验证假设、量化效应大小并报告结果。这些知识有助于在学术研究中选择检验、诊断假设,并以 APA 格式报告频率学派和贝叶斯分析的结果。
核心概念
频率学派与贝叶斯框架
| 方面 | 频率学派 | 贝叶斯 |
|---|---|---|
| 核心输出 | p 值、置信区间 | 后验分布、可信区间 |
| 解释 | “如果 H0 为真,这些数据出现的可能性有多大?” | “给定这些数据,H1 为真的可能性有多大?” |
| 对零假设的支持 | 无法支持 H0(只能不拒绝) | 可通过贝叶斯因子量化对 H0 的证据 |
| 先验信息 | 不使用 | 通过先验分布纳入 |
| 样本量 | 需要足够的检验效能 | 适用于任何样本量 |
| 适用场景 | 标准分析、大样本 | 小样本、先验信息、复杂模型 |
统计显著性与实际显著性
统计显著的结果(p < .05)在实际应用中可能微不足道。务必报告:
- 效应量:效应的大小(Cohen's d、eta-squared、r、R-squared)
- 置信区间:估计值的精确度
- 背景信息:该领域中的临床/实际相关性
常见效应量
| 检验 | 效应量 | 小 | 中 | 大 |
|---|---|---|---|---|
| t 检验 | Cohen's d | 0.20 | 0.50 | 0.80 |
| t 检验(小样本 n) | Hedges' g | 0.20 | 0.50 | 0.80 |
| ANOVA | eta-squared partial | 0.01 | 0.06 | 0.14 |
| ANOVA | omega-squared | 0.01 | 0.06 | 0.14 |
| 相关 | r | 0.10 | 0.30 | 0.50 |
| 回归 | R-squared | 0.02 | 0.13 | 0.26 |
| 回归 | f-squared | 0.02 | 0.15 | 0.35 |
| 卡方检验 | Cramer's V | 0.07 | 0.21 | 0.35 |
| 卡方检验 2x2 | phi 系数 | 0.10 | 0.30 | 0.50 |
Cohen 的基准仅供参考,并非严格阈值——始终应考虑具体领域的背景。
假设概述
大多数参数检验要求:
- 独立性:观测值彼此独立
- 正态性:数据(或残差)近似服从正态分布
- 方差齐性:各组的方差相近(用于组间比较)
- 线性:变量之间的关系呈线性(用于回归)
违反假设时:
- 违反正态性,n > 30:继续分析——参数检验在大样本下具有稳健性
- 违反正态性,n < 30:使用非参数替代方法
- 方差不齐:使用 Welch 校正(t 检验)或 Welch's ANOVA
- 违反线性:添加多项式项、转换变量或使用 GAM
针对不同检验的假设检查流程
t 检验假设:(1)使用 Shapiro-Wilk 检验和 Q-Q 图检查各组的正态性。(2)使用 Levene 检验检查方差齐性。(3)若违反正态性:独立样本使用 Mann-Whitney U 检验,配对样本使用 Wilcoxon 符号秩检验。若方差不齐:使用 Welch's t-test。
ANOVA 假设:(1)检查各组的正态性。(2)使用 Levene 检验检查方差齐性。(3)对于重复测量:检查球形性(Mauchly 检验);若违反,则应用 Greenhouse-Geisser(epsilon < 0.75)或 Huynh-Feldt(epsilon > 0.75)校正。(4)若违反正态性:独立样本使用 Kruskal-Wallis 检验,重复测量使用 Friedman 检验。
线性回归假设:(1)通过残差-拟合值图检查线性。(2)通过 Durbin-Watson 检验检查独立性(1.5-2.5 为可接受范围)。(3)通过 Breusch-Pagan 检验和尺度-位置图检查同方差性。(4)通过 Q-Q 图和 Shapiro-Wilk 检验检查残差的正态性。(5)通过 VIF 检查多重共线性(>10 = 严重,>5 = 中等)。
逻辑回归假设:(1)独立性。(2)连续预测变量与对数优势之间呈线性关系(Box-Tidwell 检验)。(3)不存在完全多重共线性(VIF)。(4)样本量充足(每个预测变量至少 10-20 个事件)。
专项检验类别
除了主要决策流程图外,还有几个针对特定数据类型的专项检验类别:
生存分析/事件发生时间分析:
- Log-rank 检验:比较不同组之间的生存曲线(非参数)
- Cox 比例风险模型:使用协变量对事件发生时间建模;假设风险成比例
- 参数生存模型:适用于已知分布形式的 Weibull、指数、对数正态模型
- 当结果是事件发生前的时间(死亡、复发、故障),且可能存在删失时使用
计数结果模型:
- Poisson 回归:适用于均值约等于方差的计数数据
- 负二项回归:适用于过度离散的计数数据(方差 > 均值)
- 零膨胀模型:适用于零值数量超出 Poisson/NB 预测的情况
- 当结果是计数(事件、事故、发生次数)时使用
一致性与可靠性:
- Cohen's kappa:评估分类评分的评定者间一致性(2 位评定者)
- Fleiss' kappa/Krippendorff's alpha:评估 >2 位评定者的一致性
- 组内相关系数(ICC):评估连续评分的可靠性
- Cronbach's alpha:评估多题项量表的内部一致性
- Bland-Altman 分析:评估两种测量方法之间的一致性(连续数据)
- 评估测量可靠性或评定者间一致性时使用
分类数据扩展检验:
- McNemar 检验:配对二元结果(2x2)
- Cochran's Q 检验:配对二元结果(3 个及以上条件)
- Cochran-Armitage 趋势检验:用于列联表中的有序类别
决策框架
检验选择流程图
What is your research question?
|
+-- Comparing GROUPS on a continuous outcome?
| |
| +-- How many groups?
| | +-- 2 groups
| | | +-- Independent -> Independent t-test (or Mann-Whitney U)
| | | +-- Paired/repeated -> Paired t-test (or Wilcoxon signed-rank)
| | +-- 3+ groups
| | +-- Independent -> One-way ANOVA (or Kruskal-Wallis)
| | +-- Repeated -> Repeated-measures ANOVA (or Friedman)
| |
| +-- Multiple factors? -> Factorial ANOVA / Mixed ANOVA
| +-- With covariates? -> ANCOVA
|
+-- Testing a RELATIONSHIP between variables?
| |
| +-- Both continuous?
| | +-- Normal -> Pearson correlation
| | +-- Non-normal or ordinal -> Spearman correlation
| |
| +-- Predicting continuous outcome?
| | +-- 1 predictor -> Simple linear regression
| | +-- Multiple predictors -> Multiple linear regression
| |
| +-- Predicting categorical outcome?
| | +-- Binary -> Logistic regression
| | +-- Ordinal -> Ordinal logistic regression
| |
| +-- Predicting count outcome?
| | +-- Equidispersed -> Poisson regression
| | +-- Overdispersed -> Negative binomial regression
| | +-- Excess zeros -> Zero-inflated Poisson/NB
| |
| +-- Time-to-event outcome?
| +-- Compare survival curves -> Log-rank test
| +-- With covariates -> Cox proportional hazards
|
+-- Testing ASSOCIATION between categorical variables?
| +-- Expected cell count >= 5 -> Chi-square test
| +-- Expected cell count < 5 -> Fisher's exact test
| +-- Ordered categories -> Cochran-Armitage trend test
| +-- Paired categories -> McNemar's test
|
+-- Assessing AGREEMENT / RELIABILITY?
+-- Categorical, 2 raters -> Cohen's kappa
+-- Categorical, >2 raters -> Fleiss' kappa
+-- Continuous ratings -> ICC
+-- Two measurement methods -> Bland-Altman analysis
+-- Internal consistency -> Cronbach's alpha
快速参考表
| 研究问题 | 数据类型 | 正态? | 检验 | 非参数替代检验 |
|---|---|---|---|---|
| 2 个独立组 | 连续 | 是 | 独立样本 t 检验 | Mann-Whitney U |
| 2 个配对组 | 连续 | 是 | 配对 t 检验 | Wilcoxon 符号秩检验 |
| 3 个及以上独立组 | 连续 | 是 | 单因素 ANOVA | Kruskal-Wallis |
| 3 个及以上重复测量组 | 连续 | 是 | 重复测量 ANOVA | Friedman 检验 |
| 2 个变量 | 连续 | 是 | Pearson r | Spearman rho |
| 预测连续变量 | 混合 | -- | 线性回归 | -- |
| 预测二元变量 | 混合 | -- | Logistic 回归 | -- |
| 预测计数 | 计数 | -- | Poisson/负二项回归 | -- |
| 事件发生时间 | 生存数据 | -- | Cox PH/Log-rank | -- |
| 2 个分类变量 | 分类 | -- | 卡方检验/Fisher 精确检验 | -- |
| 评定者一致性 | 分类 | -- | Cohen's kappa/Fleiss' kappa | -- |
| 方法一致性 | 连续 | -- | Bland-Altman/ICC | -- |
最佳实践
- 尽可能预先注册分析,以区分验证性发现与探索性发现。在收集数据前,明确主要结局、检验方法和校正方法
- 解释结果前务必检查假设。运行正态性检验(Shapiro-Wilk)、方差齐性检验(Levene's)和残差诊断。即使满足假设,也要记录结果
- 为每项检验报告效应量及其置信区间。仅报告 p 值是不够的——效应量能体现实际重要性
- 报告所有计划的分析,包括不显著的发现。选择性报告会提高假阳性率
- 采用适当的多重比较校正方法。Bonferroni(保守)、Holm(逐步校正,保守性较低)或 FDR/Benjamini-Hochberg(适用于大量检验)。根据比较次数和可接受的错误率进行选择
- 在分析前后都将数据可视化。比较组别时使用箱线图,分析相关性时使用散点图,进行回归诊断时使用残差图
- 进行敏感性分析以评估稳健性:去除离群值、使用不同变换或采用其他检验后重新运行分析
- 反模式——p 值操纵:不断检验多个结局、子组或模型设定,直到 p < .05,会提高假阳性率。应通过预先注册来避免
- 反模式——HARKing(结果已知后再提出假设):将探索性发现说成验证性发现,会损害科学诚信
- 反模式——误解不显著结果:无法拒绝 H0 并不意味着 H0 为真。使用贝叶斯方法或等效性检验来支持零假设
常见陷阱
-
误把 p 值解读为假设为真的概率。p 值衡量的是 P(data | H0),而不是 P(H0 | data)。如何避免:使用准确的表述:“如果零假设为真,观察到如此极端数据的概率为 p = ...”
-
混淆统计显著性与实际重要性。大样本可能会让微乎其微的效应也达到显著。如何避免:始终同时报告并解读效应量和 p 值
-
结果不显著后再进行事后功效分析。事后功效是 p 值的数学函数,不会提供新信息。如何避免:改用敏感性分析——确定研究在 80% 功效下能够检测到的效应量
-
忽略假设违背,继续使用参数检验。如何避免:系统地检查假设。假设不满足时,使用 Welch 校正、非参数替代方法或数据变换
-
多重比较未进行校正。在 alpha = .05 时进行 20 项检验,至少出现一个假阳性的概率约为 64%。如何避免:应用 Bonferroni、Holm 或 FDR 校正。报告校正前后的 p 值
-
将有序数据当作连续数据处理。Likert 量表属于有序数据——均值和标准差默认间隔相等。如何避免:使用非参数检验(Mann-Whitney、Kruskal-Wallis)或有序回归
-
忽略缺失数据模式。列表删除假定数据为 MCAR,而这很少成立。如何避免:评估缺失机制(MCAR、MAR、MNAR)。对于 MAR 数据,使用多重插补
-
混淆相关性与因果关系。无论效应量大小如何,观察性研究都无法确立因果关系。如何避免:仅在采用随机分配的实验设计中使用因果表述
-
不报告不显著的结果。发表偏倚和文件抽屉效应会扭曲文献。如何避免:报告所有预先注册的分析。考虑采用注册报告
-
用单尾检验“提高”显著性。只有在基于有力的方向性假设并预先指定时,才应使用单尾检验。如何避免:默认使用双尾检验。仅在事先有充分理由时使用单尾检验
工作流
标准分析流程
-
定义研究问题和假设
- 明确陈述 H0 和 H1
- 指定主要结果和协变量
-
选择统计检验(使用上文的决策框架)
- 根据数据类型、研究设计和假设选择检验
- 如有需要,规划多重比较校正
-
进行先验功效分析
- 指定目标效应量(依据文献或临床相关性)
- 设置 alpha = .05、功效 = .80(最低要求),确定所需的 n
- 库:
statsmodels.stats.power、pingouin
-
检查并清理数据
- 检查缺失数据模式(MCAR/MAR/MNAR)
- 识别离群值(IQR 方法:Q1 - 1.5IQR / Q3 + 1.5IQR,或 z 分数 > 3)
- 验证变量类型和编码
- 原始的
assumption_checks.py脚本可通过可视化自动检测正态性、方差齐性和离群值
-
检查假设(参见上文按检验类型划分的假设检查工作流)
- 正态性:Shapiro-Wilk 检验 + Q-Q 图(n > 50 时以图形检查为主)
- 方差齐性:Levene 检验 + 箱线图
- 线性:残差图(用于回归)
- 球形性:Mauchly 检验(用于重复测量)
- 记录结果和补救措施
-
运行主要分析
- 使用适当的库(scipy.stats、pingouin、statsmodels)执行计划中的检验
- 计算效应量和置信区间
- 对于贝叶斯分析:指定先验、运行 MCMC、检查收敛情况(参见
references/bayesian_statistics.md)
-
进行事后分析和次要分析
- 事后成对比较(Tukey HSD、Bonferroni)
- 敏感性分析(移除离群值、采用替代方法)
- 探索性分析(明确标注)
-
按 APA 格式报告结果
- 描述性统计(每组的 M、SD、n)
- 检验统计量、自由度、精确 p 值
- 带置信区间的效应量
- 模板参见
references/reporting_standards.md
附带资源
-
references/effect_sizes_and_power.md-- 效应量(Cohen's d、Hedges' g、Glass's delta、eta-squared、omega-squared、partial eta-squared、phi coefficient、standardized beta、f-squared、Cramer's V、odds ratio)的计算、解释和报告详细指南;包含先验、敏感性和相关性功效分析及代码示例。由原始的 582 行版本精简而成。 -
references/bayesian_statistics.md-- 全面的贝叶斯分析指南:贝叶斯定理、先验指定、ROPE(实际等效区域)、先验敏感性分析、贝叶斯 t 检验/ANOVA/相关分析/回归、层级模型、模型比较(WAIC/LOO)、收敛诊断。由原始的 662 行版本精简而成。 -
references/reporting_standards.md-- t 检验、ANOVA、回归、相关分析、卡方检验、非参数分析和贝叶斯分析的 APA 风格报告模板;预注册指南;方法部分模板(参与者、研究设计、测量);无效结果报告;报告核对清单。由原始的 470 行版本精简而成。
完全整合的文件(无单独的参考文件)
-
test_selection_guide.md(原文 130 行)——已完全整合到决策框架(流程图 + 快速参考表)和关键概念中的专门测试类别小节。整合后的内容包括:流程图(约 35 行)+ 快速参考表(约 15 行)+ 专门测试类别(约 35 行)= 约 85 行,涵盖了原文件的所有功能。关于样本量考量、多重比较和缺失数据的原始内容已整合到最佳实践和常见陷阱中。省略的内容:研究设计考量(RCT、观察性研究、聚类数据)——statsmodels-statistical-modeling 技能中已提供通用指导。 -
assumptions_and_diagnostics.md(原文 370 行)——已完全整合到关键概念(假设概览 + 特定测试的假设工作流)和工作流步骤 4-5 中。整合后的内容包括:假设概览(约 12 行)+ 特定测试的假设工作流(约 20 行)+ 工作流步骤 4-5(约 16 行)= 约 48 行。原文包含每项假设检查的详细代码块;由于这是 Knowhow(而非 Skill),因此仅引用代码,不重复展示。保留了关键诊断阈值(VIF > 10、Durbin-Watson 1.5-2.5、方差比 < 2-3)。省略的内容:针对单项检查的大量 Python 代码块(正态性、方差齐性、线性、逻辑回归诊断)——可查阅 scipy.stats 和 pingouin 文档。工作流步骤 3 中涵盖了样本量经验法则。
脚本处理方式
assumption_checks.py(540 行)——包含 6 个函数:check_normality()、check_normality_per_group()、check_homogeneity_of_variance()、check_linearity()、detect_outliers()、comprehensive_assumption_check()。作为 Knowhow 条目,脚本函数在工作流步骤 4 中引用,而非内联展示。关键功能(Shapiro-Wilk、Levene's、IQR/z-score 异常值检测、Q-Q 图)已在假设概览和特定测试的假设工作流中说明。需要自动化检查的用户应按照所述模式直接使用 scipy.stats 和 pingouin。
有意省略的内容
- 时间序列方法(ARIMA、ACF/PACF)——超出核心统计检验范围的专门主题
- 混合效应模型 / GEE——statsmodels-statistical-modeling 技能中已涵盖
- Bootstrap 和置换检验——仅作简单提及;详细实现留待计算统计学资料介绍
延伸阅读
- Cohen, J. (1988). 统计功效分析:行为科学(第 2 版)
- Field, A. (2013). 使用 IBM SPSS Statistics 发现统计学(第 4 版)
- Gelman, A., & Hill, J. (2006). 使用回归和多层级 / 层次模型进行数据分析
- Kruschke, J. K. (2014). 贝叶斯数据分析(第 2 版)
- APA 出版手册:https://apastyle.apa.org/
- Cross Validated(统计问答):https://stats.stackexchange.com/
相关技能
- statsmodels-statistical-modeling——以编程方式实现 OLS、GLM、Logit、时间序列模型
- pymc-bayesian-modeling——使用 MCMC 采样进行完整的贝叶斯建模
- scikit-learn-machine-learning——预测建模、交叉验证、分类
- matplotlib-scientific-plotting——创建适合发表的统计图表
- hypothesis-generation——统计检验前的结构化假设制定