mcpField
S
statistical-analysis

statistical-analysis

github.com/jaechang-hits数据与数据库38488 次安装1 周前更新
代码仓库

关于 statistical-analysis

面向学术研究者的统计分析指南,涵盖检验选择、假设诊断、效应量解释及 APA 风格报告。内容同时涉及频率学派与贝叶斯分析,并提供常见研究设计的决策流程。

主要功能

  1. 01频率学派与贝叶斯分析
  2. 02按研究问题选择检验
  3. 03检查统计检验假设
  4. 04计算并解释效应量
  5. 05APA 风格结果报告

适用场景

  1. 01为组间比较选择合适检验
  2. 02诊断回归模型假设
  3. 03报告效应量与置信区间

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jaechang-hits/sciagent-skills --skill statistical-analysis

安装后在 Claude Code 中输入/statistical-analysis确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
bayesian_statistics.md
effect_sizes_and_power.md
reporting_standards.md

详细介绍

统计分析

概述

统计分析是一个系统的过程,包括选择合适的检验、验证假设、量化效应大小并报告结果。这些知识有助于在学术研究中选择检验、诊断假设,并以 APA 格式报告频率学派和贝叶斯分析的结果。

核心概念

频率学派与贝叶斯框架
方面频率学派贝叶斯
核心输出p 值、置信区间后验分布、可信区间
解释“如果 H0 为真,这些数据出现的可能性有多大?”“给定这些数据,H1 为真的可能性有多大?”
对零假设的支持无法支持 H0(只能不拒绝)可通过贝叶斯因子量化对 H0 的证据
先验信息不使用通过先验分布纳入
样本量需要足够的检验效能适用于任何样本量
适用场景标准分析、大样本小样本、先验信息、复杂模型
统计显著性与实际显著性

统计显著的结果(p < .05)在实际应用中可能微不足道。务必报告:

  • 效应量:效应的大小(Cohen's d、eta-squared、r、R-squared)
  • 置信区间:估计值的精确度
  • 背景信息:该领域中的临床/实际相关性
常见效应量
检验效应量小中大
t 检验Cohen's d0.200.500.80
t 检验(小样本 n)Hedges' g0.200.500.80
ANOVAeta-squared partial0.010.060.14
ANOVAomega-squared0.010.060.14
相关r0.100.300.50
回归R-squared0.020.130.26
回归f-squared0.020.150.35
卡方检验Cramer's V0.070.210.35
卡方检验 2x2phi 系数0.100.300.50

Cohen 的基准仅供参考,并非严格阈值——始终应考虑具体领域的背景。

假设概述

大多数参数检验要求:

  1. 独立性:观测值彼此独立
  2. 正态性:数据(或残差)近似服从正态分布
  3. 方差齐性:各组的方差相近(用于组间比较)
  4. 线性:变量之间的关系呈线性(用于回归)

违反假设时:

  • 违反正态性,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 个及以上独立组连续是单因素 ANOVAKruskal-Wallis
3 个及以上重复测量组连续是重复测量 ANOVAFriedman 检验
2 个变量连续是Pearson rSpearman rho
预测连续变量混合--线性回归--
预测二元变量混合--Logistic 回归--
预测计数计数--Poisson/负二项回归--
事件发生时间生存数据--Cox PH/Log-rank--
2 个分类变量分类--卡方检验/Fisher 精确检验--
评定者一致性分类--Cohen's kappa/Fleiss' kappa--
方法一致性连续--Bland-Altman/ICC--

最佳实践

  1. 尽可能预先注册分析,以区分验证性发现与探索性发现。在收集数据前,明确主要结局、检验方法和校正方法
  2. 解释结果前务必检查假设。运行正态性检验(Shapiro-Wilk)、方差齐性检验(Levene's)和残差诊断。即使满足假设,也要记录结果
  3. 为每项检验报告效应量及其置信区间。仅报告 p 值是不够的——效应量能体现实际重要性
  4. 报告所有计划的分析,包括不显著的发现。选择性报告会提高假阳性率
  5. 采用适当的多重比较校正方法。Bonferroni(保守)、Holm(逐步校正,保守性较低)或 FDR/Benjamini-Hochberg(适用于大量检验)。根据比较次数和可接受的错误率进行选择
  6. 在分析前后都将数据可视化。比较组别时使用箱线图,分析相关性时使用散点图,进行回归诊断时使用残差图
  7. 进行敏感性分析以评估稳健性:去除离群值、使用不同变换或采用其他检验后重新运行分析
  8. 反模式——p 值操纵:不断检验多个结局、子组或模型设定,直到 p < .05,会提高假阳性率。应通过预先注册来避免
  9. 反模式——HARKing(结果已知后再提出假设):将探索性发现说成验证性发现,会损害科学诚信
  10. 反模式——误解不显著结果:无法拒绝 H0 并不意味着 H0 为真。使用贝叶斯方法或等效性检验来支持零假设

常见陷阱

  1. 误把 p 值解读为假设为真的概率。p 值衡量的是 P(data | H0),而不是 P(H0 | data)。如何避免:使用准确的表述:“如果零假设为真,观察到如此极端数据的概率为 p = ...”

  2. 混淆统计显著性与实际重要性。大样本可能会让微乎其微的效应也达到显著。如何避免:始终同时报告并解读效应量和 p 值

  3. 结果不显著后再进行事后功效分析。事后功效是 p 值的数学函数,不会提供新信息。如何避免:改用敏感性分析——确定研究在 80% 功效下能够检测到的效应量

  4. 忽略假设违背,继续使用参数检验。如何避免:系统地检查假设。假设不满足时,使用 Welch 校正、非参数替代方法或数据变换

  5. 多重比较未进行校正。在 alpha = .05 时进行 20 项检验,至少出现一个假阳性的概率约为 64%。如何避免:应用 Bonferroni、Holm 或 FDR 校正。报告校正前后的 p 值

  6. 将有序数据当作连续数据处理。Likert 量表属于有序数据——均值和标准差默认间隔相等。如何避免:使用非参数检验(Mann-Whitney、Kruskal-Wallis)或有序回归

  7. 忽略缺失数据模式。列表删除假定数据为 MCAR,而这很少成立。如何避免:评估缺失机制(MCAR、MAR、MNAR)。对于 MAR 数据,使用多重插补

  8. 混淆相关性与因果关系。无论效应量大小如何,观察性研究都无法确立因果关系。如何避免:仅在采用随机分配的实验设计中使用因果表述

  9. 不报告不显著的结果。发表偏倚和文件抽屉效应会扭曲文献。如何避免:报告所有预先注册的分析。考虑采用注册报告

  10. 用单尾检验“提高”显著性。只有在基于有力的方向性假设并预先指定时,才应使用单尾检验。如何避免:默认使用双尾检验。仅在事先有充分理由时使用单尾检验

工作流

标准分析流程
  1. 定义研究问题和假设

    • 明确陈述 H0 和 H1
    • 指定主要结果和协变量
  2. 选择统计检验(使用上文的决策框架)

    • 根据数据类型、研究设计和假设选择检验
    • 如有需要,规划多重比较校正
  3. 进行先验功效分析

    • 指定目标效应量(依据文献或临床相关性)
    • 设置 alpha = .05、功效 = .80(最低要求),确定所需的 n
    • 库:statsmodels.stats.power、pingouin
  4. 检查并清理数据

    • 检查缺失数据模式(MCAR/MAR/MNAR)
    • 识别离群值(IQR 方法:Q1 - 1.5IQR / Q3 + 1.5IQR,或 z 分数 > 3)
    • 验证变量类型和编码
    • 原始的 assumption_checks.py 脚本可通过可视化自动检测正态性、方差齐性和离群值
  5. 检查假设(参见上文按检验类型划分的假设检查工作流)

    • 正态性:Shapiro-Wilk 检验 + Q-Q 图(n > 50 时以图形检查为主)
    • 方差齐性:Levene 检验 + 箱线图
    • 线性:残差图(用于回归)
    • 球形性:Mauchly 检验(用于重复测量)
    • 记录结果和补救措施
  6. 运行主要分析

    • 使用适当的库(scipy.stats、pingouin、statsmodels)执行计划中的检验
    • 计算效应量和置信区间
    • 对于贝叶斯分析:指定先验、运行 MCMC、检查收敛情况(参见 references/bayesian_statistics.md)
  7. 进行事后分析和次要分析

    • 事后成对比较(Tukey HSD、Bonferroni)
    • 敏感性分析(移除离群值、采用替代方法)
    • 探索性分析(明确标注)
  8. 按 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——统计检验前的结构化假设制定

评论

支持 Markdown