用途
该技能用于对研究数据开展规范的统计分析,目标是产出审稿人难以挑剔的分析:选对检验、验证假设、诚实报告效应量,并给出完整写作。适用于假设检验(t检验、方差分析、卡方、非参数检验)、回归与相关分析、贝叶斯分析、假设与诊断检查、效应量与功效分析,以及按APA格式报告结果。
主要能力
- 检验选择:提供快速参考与决策树,覆盖两组比较、三组及以上比较、变量关系、计数、生存、信度与因子设计等。
- 假设检查:附带脚本可检查正态性(Shapiro-Wilk、Q-Q图、直方图)、方差齐性(Levene检验、箱线图)、线性、回归诊断(含VIF、Breusch-Pagan、Durbin-Watson)与离群值检测,并给出违反假设时的补救建议。
- 效应量:报告Cohen's d、偏eta方、r、R方、Cramér's V等,并可用pg.compute_esci计算效应量置信区间。
- 功效分析:事前功效分析确定所需样本量,事后敏感性分析确定可检测的效应量;明确指出事后“观测功效”具有循环性、不应使用。
- 贝叶斯分析:使用PyMC与ArviZ进行贝叶斯建模,提供直接概率陈述、可信区间与收敛诊断(R-hat、ESS、后验预测检查)。
- APA报告:提供独立t检验、单因素方差分析、多元回归、贝叶斯分析的报告模板,要求包含描述统计、精确p值、效应量及置信区间、假设检查与全部计划分析。
使用方式
使用uv安装依赖库,生产环境固定版本。核心频率学派栈:uv pip install "pingouin>=0.6" "scipy>=1.11" "statsmodels>=0.14.6" pandas matplotlib seaborn;贝叶斯栈:uv pip install "pymc>=5.0" "arviz>=1.0"。分析按固定流程推进:先明确假设、变量与设计并预先确定检验;再检查数据(各组n、均值、标准差、中位数、缺失值并绘图);然后选择检验;用scripts/assumption_checks.py检查假设;运行检验并同时计算效应量;最后按APA模板报告。若用户只需某一步(如样本量计算),可直接跳到对应部分,但仍需确认计算所依赖的设计假设。
适用场景
适用于实验或观察性研究数据的统计分析,包括学术研究、论文写作与审稿准备。当需要纳入先验信息、需要关于假设的直接概率陈述、样本量小或数据为序贯收集、需要量化对零假设的证据,或模型较复杂(层次结构、缺失数据)时,可考虑贝叶斯方法。
限制与注意事项
- 正式假设检验在样本量增大时过于敏感:n≥100时,应更重视Q-Q图而非Shapiro-Wilk的p值。
- Pingouin 0.6.0起输出列名变更(如p_val、cohen_d、CI95、p_unc),0.5.x使用连字符形式。
- statsmodels需≥0.14.6并搭配scipy≥1.11,以避免SciPy 1.16+上的_lazywhere导入错误。
- ArviZ 1.x的az.summary()默认89%区间,宽度参数为ci_prob;报告95%可信区间需显式传入ci_prob=0.95。
- Pingouin已移除单侧贝叶斯因子:pg.ttest(..., alternative='greater')会静默丢弃BF10列,pg.bayesfactor_ttest对单侧替代会报错;单侧贝叶斯检验需直接用PyMC或JASP/R的BayesFactor。
- ArviZ 1.x移除了az.plot_posterior,改用plot_dist。
- 先验需按数据尺度设定并在报告中说明。
- 效应量基准是惯例而非定律,需结合情境解释。
- 模型特定API(OLS、GLM、ARIMA)参见statsmodels技能,PyMC工作流参见pymc技能。