statistical-analysis – skill Dữ liệu & Khoa học cho agent AI
Phân tích thống kê có hướng dẫn cho dữ liệu nghiên cứu: chọn kiểm định, kiểm tra giả định, kích thước hiệu ứng, phân tích công suất, lựa chọn Bayesian và báo cáo theo định dạng APA. Dùng khi người dùng muốn so sánh nhóm, kiểm định giả thuyết, phân tích dữ liệu thí nghiệm hoặc khảo sát, kiểm tra giả định thống kê, tính cỡ mẫu cần thiết
Cài skill statistical-analysis bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/statistical-analysis-7a7d7.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /statistical-analysis – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/statistical-analysis-7a7d7.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $statistical-analysis – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/statistical-analysis-7a7d7.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /statistical-analysis – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/statistical-analysis-7a7d7.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /statistical-analysis – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Statistical Analysis
Overview
Conduct hypothesis tests (t-tests, ANOVA, chi-square), regression, correlation, and Bayesian analyses with systematic assumption checking, effect sizes, and APA-style reporting. Define the estimand and sampling units, diagnose model limitations, and report effect estimates with uncertainty. Numerical screens cannot certify assumptions or scientific validity.
When to Use This Skill
Use this skill when:
- Conducting statistical hypothesis tests (t-tests, ANOVA, chi-square, non-parametric)
- Performing regression or correlation analyses
- Running Bayesian statistical analyses
- Checking statistical assumptions and diagnostics
- Calculating effect sizes and conducting power analyses
- Reporting statistical results in APA format
- Analyzing experimental or observational data for research
---
Installation
Targets Pingouin 0.7.0, SciPy 1.18.1, statsmodels 0.15.0, PyMC 6.3.2 and ArviZ 1.3.0 (reviewed 2026-10-01). Create a separate environment; do not add mutually incompatible scientific stacks to a shared project environment.
uv venv --python 3.12 .venv-statistics
uv pip install --python .venv-statistics/bin/python "pingouin==0.7.0" "scipy==1.18.1" "statsmodels==0.15.0" pandas matplotlib seaborn
# Optional Bayesian examples:
uv pip install --python .venv-statistics/bin/python "pymc==6.3.2" "arviz==1.3.0"On Windows use .venv-statistics/Scripts/python.exe. Lock the resolved environment for reproduction.
- Pingouin 0.7 fixes erroneous mixed/repeated-measures corrections, categorical ANOVA, and other results; do not reproduce an old analysis by merely changing its reported version. See the [official changelog](https://pingouin-stats.org/changelog.html).
- Pingouin 0.6+ names are
p_val,cohen_d,CI95,p_unc.ttestreports absolute Cohen's d; calculate a signed estimate explicitly. Itspowercolumn is observed power and should not be used to interpret a null result. correction='auto'chooses Welch by unequal sample sizes, not by variance evidence. Setcorrection=Truefor prespecified Welch inference.- PyMC 6 returns an xarray
DataTree. ArviZ 1 usesci_probinsummary/plot_distandprobinhdi; specify 95% intervals explicitly. See [Bayesian guidance](references/bayesian_statistics.md). - Pingouin omits
BF10for one-sided t-tests; posterior directional probabilities are not Bayes factors. A two-sidedBF10uses its own model/prior and is not the Bayesian counterpart of a Welch unequal-variance model.
For model-specific APIs (OLS, GLM, ARIMA), see the statsmodels skill. For PyMC workflows, see the pymc skill.
---
Analysis Workflow
Use the following workflow, documenting prespecified decisions and exploratory departures.
1. Frame the question before touching the data. State the hypothesis, the outcome and predictor variables, and the design (independent vs. paired, number of groups). Specify the target effect, sampling unit, dependence, contrasts and multiplicity family before outcome-driven selection. Label adaptive exploration explicitly.
2. Inspect the data. Per group: n, mean, SD, median, missing values. Plot the raw data (histograms or box plots) before any test. Unequal group sizes, missingness, floor/ceiling effects, and outliers all change what test is appropriate — surface them to the user rather than silently working around them.
3. Select the test using the quick reference below, or references/test_selection_guide.md for designs beyond the basics (counts, time-to-event, reliability, factorial).
4. Check assumptions with scripts/assumption_checks.py. Interpret plots and screens alongside the design and estimand; do not switch tests automatically at a diagnostic p-value threshold. Report justified sensitivity analyses and any departures from the plan.
5. Run the test and always compute the effect size alongside it — a p-value assesses incompatibility with the null model; the effect estimate and its uncertainty support judgments about practical importance.
6. Report using the APA templates below, including descriptives, exact statistics, effect sizes with CIs, and the assumption checks performed.
If the user only needs one step (e.g., "how many participants do I need?"), jump straight to that section — but still confirm the design assumptions the calculation rests on.
---
Test Selection Guide
Quick Reference: Choosing the Right Test
Use references/test_selection_guide.md for comprehensive guidance (counts, survival, reliability, factorial designs). Quick reference:
Group comparisons: Independent continuous means usually use prespecified Welch's t-test or Welch's ANOVA. Pooled Student/ANOVA inference needs justified equal variance. Paired means use a paired t-test on aligned within-person differences. Repeated or clustered observations require a model of that dependence.
Rank questions: Mann-Whitney or Kruskal-Wallis can address distribution/rank contrasts; they are not automatic tests of medians. Wilcoxon signed-rank requires meaningful, symmetrically distributed paired differences. Friedman addresses blocked/repeated rank contrasts. See the reference for ties, small samples, and exact/permutation choices.
Relationships: Pearson measures linear association; Spearman measures monotone rank association. Choose by the scientific question, not a normality pretest. Use a suitable regression likelihood for continuous, binary, count or time-to-event outcomes.
Bayesian alternatives: Specify the likelihood, prior and comparison explicitly. Posterior estimation does not automatically yield a Bayes factor for a point null.
---
Assumption Checking
Always check assumptions before interpreting test results, and report the checks — reviewers look for them.
Use the bundled scripts/assumption_checks.py module. Add the skill’s scripts/ directory to PYTHONPATH (the skill root alone is insufficient):
from assumption_checks import comprehensive_assumption_check
# Within-group outlier screens, normality and variance diagnostics; with plots
results = comprehensive_assumption_check(
data=df,
value_col='score',
group_col='group', # Independent groups; paired tests use difference scores
alpha=0.05
)For targeted checks, import individual functions:
from assumption_checks import (
check_normality, # Shapiro-Wilk + Q-Q plot + histogram
check_normality_per_group,
check_homogeneity_of_variance, # Levene's test + box plots
check_linearity, # scatter + residual plot for simple regression
check_regression_diagnostics, # full OLS diagnostics (see Regression below)
detect_outliers # IQR or z-score methods
)
result = check_normality(data=df['score'], name='Test Score', alpha=0.05, plot=True)
print(result['interpretation'])
print(result['recommendation'])What to Do When Assumptions Are Violated
- A non-significant Shapiro/Levene result does not verify normality/equal variance. There is no universal n=30 robustness rule; tails, skewness, imbalance, dependence and the target estimator matter.
- For paired t-tests diagnose differences; for regression inspect residuals. Rank tests change the question and retain assumptions.
- Prespecify Welch for independent mean comparisons; use Games-Howell pairwise comparisons when appropriate to a heteroscedastic one-way design. Regression HC3 addresses heteroscedasticity, not clustering, confounding or a wrong mean model.
- The helper rejects infinities, undersized or degenerate samples, reports omitted NaNs, retains original outlier positions, and rejects missing group labels. No binary Shapiro verdict is returned above 5000 observations, where its p-value may be inaccurate.
- Grouped output uses
outliers_per_group; legacyis_normal/is_homogeneousand theNormaltable label mean only non-rejection. Independence is established through design review, never this helper. Passordered=Trueto regression diagnostics only for meaningful row order; Durbin-Watson is descriptive without a universal cutoff.
See [assumptions and diagnostics](references/assumptions_and_diagnostics.md).
---
Running Statistical Tests
Primary libraries:
- pingouin: user-friendly tests that return effect sizes by default — prefer it for standard tests
- scipy.stats: core statistical tests
- statsmodels: regression, diagnostics, power analysis
- pymc + arviz: Bayesian modeling and diagnostics
T-Test with Complete Reporting
import pingouin as pg
# Prespecified independent mean comparison; arrays must contain finite observations
result = pg.ttest(group_a, group_b, correction=True)
# Pingouin >= 0.6 column names
t_stat = result['T'].values[0]
dof = result['dof'].values[0]
p_value = result['p_val'].values[0]
cohens_d = pg.compute_effsize(group_a, group_b, eftype='cohen') # signed A - B
ci_lower,… (nội dung đầy đủ có trong gói tải về)
Skill liên quan
- statistical-power – Tính cỡ mẫu và lực thống kê (statistical power) cho kế hoạch nghiên cứu. Áp dụng khi ai…
- statsmodels – Khớp và chẩn đoán các mô hình thống kê Python gồm OLS, GLM, discrete và mixed model…
- docs-generator – Tạo sản phẩm kỹ thuật từ phân tích đã hoàn thành: báo cáo reverse-engineering, báo cáo…
- team-composition-analysis – Thiết kế cấu trúc đội nhóm tối ưu, kế hoạch tuyển dụng, chiến lược lương thưởng và phân…
- product-manager-toolkit – Bộ công cụ toàn diện cho product manager gồm ưu tiên hóa RICE, phân tích phỏng vấn khách…
- tellurium – Mô phỏng mô hình động học sinh hóa từ SBML hoặc Antimony bằng Tellurium và…
- dotnet-reverse – Đảo ngược kỹ thuật binary .NET/C#: phân tích PE managed, gỡ lỗi bằng dnSpyEx, giải…
- product-research – Dùng khi lập kế hoạch và tổng hợp nghiên cứu sản phẩm/người dùng theo kỷ luật phương…