[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MB738CBNAPWYK89PC8X76C":3,"skill-same:01M6MB738CBNAPWYK89PC8X76C":116},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":54,"linkOnly":55,"markdownContent":56,"markdownBody":57,"frontMatter":58,"refName":64,"commitSha":65,"skillDirectory":66,"forksCount":67,"repositoryHtmlUrl":68,"repositoryHomepageUrl":69,"ownerHtmlUrl":70,"ownerBlogUrl":71,"ownerDescription":72,"updatedAt":73,"install":74,"resources":87},"01M6MB738CBNAPWYK89PC8X76C","statistical-analysis",null,"Guided statistical analysis for research data - test selection, assumption checking, effect sizes, power analysis, Bayesian alternatives, and APA-formatted reporting. Use whenever a user wants to compare groups, test a hypothesis, analyze experimental or survey data, check statistical assumptions, compute required sample sizes, or write up results - even if they never name a specific test. Covers t-tests, ANOVA, chi-square, correlation, regression, non-parametric and Bayesian methods. For low-level model APIs, see the statsmodels and pymc skills.","hashgraph-online\u002Fawesome-codex-plugins","hashgraph-online","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F160371962?v=4","01M6CNB6NRJVNNGN14TR01Q6D3","HOL (Hashgraph Online)","01M6JT1HSKKG9V68KQAQGBA7XP",1554,"MIT","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002FKalarisLabs\u002Fresearch-agent-skills\u002Fskills\u002Fstatistical-analysis\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53],"analysis","statistical analysis","never","alternatives","for","data-science","compare","tests","chi-square","ANOVA","statistics","sample","compute","square","methods","selection","up","testing","survey","power","use","results","write","effect","check","regression","model","analyze","reporting","research","2026-11-10 10:12:30",false,"---\nname: statistical-analysis\ndescription: Guided statistical analysis for research data - test selection, assumption checking, effect sizes, power analysis, Bayesian alternatives, and APA-formatted reporting. Use whenever a user wants to compare groups, test a hypothesis, analyze experimental or survey data, check statistical assumptions, compute required sample sizes, or write up results - even if they never name a specific test. Covers t-tests, ANOVA, chi-square, correlation, regression, non-parametric and Bayesian methods. For low-level model APIs, see the statsmodels and pymc skills.\nlicense: MIT\nmetadata:\n  version: '1.2'\n  category: data-science-and-ml\n  maintainer: Kalaris Labs\n  tags: statistics, hypothesis testing, effect sizes, power analysis, APA reporting\n---\n\n# Statistical Analysis\n\n## Overview\n\nConduct hypothesis tests (t-tests, ANOVA, chi-square), regression, correlation, and Bayesian analyses with systematic assumption checking, effect sizes, and APA-style reporting. The goal is an analysis a reviewer could not tear apart: the right test, verified assumptions, honest effect sizes, and a complete write-up.\n\n## When to Use This Skill\n\nUse this skill when:\n- Conducting statistical hypothesis tests (t-tests, ANOVA, chi-square, non-parametric)\n- Performing regression or correlation analyses\n- Running Bayesian statistical analyses\n- Checking statistical assumptions and diagnostics\n- Calculating effect sizes and conducting power analyses\n- Reporting statistical results in APA format\n- Analyzing experimental or observational data for research\n\n---\n\n## Installation\n\nUse **uv** to install the libraries used in this skill. Pin versions in production; unpinned installs are fine for exploration.\n\n```bash\n# Core frequentist stack (Python 3.10+; 3.12+ recommended for latest SciPy\u002FArviZ)\nuv pip install \"pingouin>=0.6\" \"scipy>=1.11\" \"statsmodels>=0.14.6\" pandas matplotlib seaborn\n\n# Bayesian modeling (PyMC 5 + ArviZ)\nuv pip install \"pymc>=5.0\" \"arviz>=1.0\"\n```\n\n**Compatibility notes (verified against pingouin 0.6.1, statsmodels 0.14.6, arviz 1.2, 2026):**\n\n- **Pingouin 0.6.0** renamed output columns to remove special characters: `p_val`, `cohen_d`, `CI95`, `p_unc` (previously `p-val`, `cohen-d`, `CI95%`, `p-unc` in 0.5.x). Examples below use the current names; if stuck on 0.5.x, use the hyphenated forms.\n- **statsmodels + SciPy**: use `statsmodels>=0.14.6` with `scipy>=1.11` to avoid `_lazywhere` import errors on SciPy 1.16+.\n- **ArviZ 1.x**: `az.summary()` now defaults to **89% intervals** (`eti89` columns) and the width parameter is `ci_prob` (not `hdi_prob`). To report a conventional 95% credible interval, pass `az.summary(trace, ci_prob=0.95)`.\n- **One-sided Bayes Factors are gone from Pingouin**: `pg.ttest(..., alternative='greater')` silently drops the `BF10` column, and `pg.bayesfactor_ttest` raises on one-sided alternatives. For one-sided Bayesian tests, use PyMC directly (compute the posterior probability of the directional hypothesis) or JASP\u002FR's BayesFactor.\n\nFor model-specific APIs (OLS, GLM, ARIMA), see the **statsmodels** skill. For PyMC workflows, see the **pymc** skill.\n\n---\n\n## Analysis Workflow\n\nEvery sound analysis follows the same arc. Skipping steps is how analyses end up retracted, so work through them in order and say what you did at each one.\n\n1. **Frame the question before touching the data.** State the hypothesis, the outcome and predictor variables, and the design (independent vs. paired, number of groups). Commit to a planned test now — choosing the test after peeking at results is p-hacking, even when done innocently.\n2. **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\u002Fceiling effects, and outliers all change what test is appropriate — surface them to the user rather than silently working around them.\n3. **Select the test** using the quick reference below, or `references\u002Ftest_selection_guide.md` for designs beyond the basics (counts, time-to-event, reliability, factorial).\n4. **Check assumptions** with `scripts\u002Fassumption_checks.py`. If an assumption fails, switch to the remedial test (table below) and report both the plan and the change.\n5. **Run the test** and always compute the effect size alongside it — a p-value says an effect exists; the effect size says whether anyone should care.\n6. **Report** using the APA templates below, including descriptives, exact statistics, effect sizes with CIs, and the assumption checks performed.\n\nIf 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.\n\n---\n\n## Test Selection Guide\n\n### Quick Reference: Choosing the Right Test\n\nUse `references\u002Ftest_selection_guide.md` for comprehensive guidance (counts, survival, reliability, factorial designs). Quick reference:\n\n**Comparing Two Groups:**\n- Independent, continuous, normal → Independent t-test\n- Independent, continuous, non-normal → Mann-Whitney U test\n- Paired, continuous, normal → Paired t-test\n- Paired, continuous, non-normal → Wilcoxon signed-rank test\n- Binary outcome → Chi-square or Fisher's exact test\n\n**Comparing 3+ Groups:**\n- Independent, continuous, normal → One-way ANOVA\n- Independent, continuous, non-normal → Kruskal-Wallis test\n- Paired, continuous, normal → Repeated measures ANOVA\n- Paired, continuous, non-normal → Friedman test\n\n**Relationships:**\n- Two continuous variables → Pearson (normal) or Spearman correlation (non-normal)\n- Continuous outcome with predictor(s) → Linear regression\n- Binary outcome with predictor(s) → Logistic regression\n\n**Bayesian Alternatives:**\nAll tests have Bayesian versions providing direct probability statements about hypotheses, Bayes Factors quantifying evidence, and the ability to support the null. See `references\u002Fbayesian_statistics.md`.\n\n---\n\n## Assumption Checking\n\n**Always check assumptions before interpreting test results**, and report the checks — reviewers look for them.\n\nUse the bundled `scripts\u002Fassumption_checks.py` module. Run Python from the skill directory (`skills\u002Fstatistical-analysis\u002F`) or add `scripts\u002F` to `sys.path`:\n\n```python\nfrom assumption_checks import comprehensive_assumption_check\n\n# Outliers + normality (per group) + homogeneity of variance, with plots\nresults = comprehensive_assumption_check(\n    data=df,\n    value_col='score',\n    group_col='group',  # Optional: for group comparisons\n    alpha=0.05\n)\n```\n\nFor targeted checks, import individual functions:\n\n```python\nfrom assumption_checks import (\n    check_normality,                # Shapiro-Wilk + Q-Q plot + histogram\n    check_normality_per_group,\n    check_homogeneity_of_variance,  # Levene's test + box plots\n    check_linearity,                # scatter + residual plot for simple regression\n    check_regression_diagnostics,   # full OLS diagnostics (see Regression below)\n    detect_outliers                 # IQR or z-score methods\n)\n\nresult = check_normality(data=df['score'], name='Test Score', alpha=0.05, plot=True)\nprint(result['interpretation'])\nprint(result['recommendation'])\n```\n\n### What to Do When Assumptions Are Violated\n\n**Normality violated:**\n- Mild violation + n > 30 per group → Proceed with parametric test (robust)\n- Moderate violation → Use non-parametric alternative\n- Severe violation → Transform data or use non-parametric test\n\n**Homogeneity of variance violated:**\n- For t-test → Use Welch's t-test (`pg.ttest` applies it automatically with `correction='auto'`)\n- For ANOVA → Use Welch's ANOVA (`pg.welch_anova`) or Brown-Forsythe\n- For regression → Use robust standard errors or weighted least squares\n\n**Linearity violated (regression):**\n- Add polynomial terms, transform variables, or use non-linear models \u002F GAM\n\nFormal tests get oversensitive as n grows: for n ≥ 100, weigh the Q-Q plot more heavily than the Shapiro-Wilk p-value. See `references\u002Fassumptions_and_diagnostics.md` for comprehensive guidance.\n\n---\n\n## Running Statistical Tests\n\nPrimary libraries:\n- **pingouin**: user-friendly tests that return effect sizes by default — prefer it for standard tests\n- **scipy.stats**: core statistical tests\n- **statsmodels**: regression, diagnostics, power analysis\n- **pymc** + **arviz**: Bayesian modeling and diagnostics\n\n### T-Test with Complete Reporting\n\n```python\nimport pingouin as pg\n\n# correction='auto' applies Welch's correction when variances are unequal\nresult = pg.ttest(group_a, group_b, correction='auto')\n\n# Pingouin >= 0.6 column names\nt_stat = result['T'].values[0]\ndf = result['dof'].values[0]\np_value = result['p_val'].values[0]\ncohens_d = result['cohen_d'].values[0]\nci_lower, ci_upper = result['CI95'].values[0]  # CI for the mean difference\n\nprint(f\"t({df:.0f}) = {t_stat:.2f}, p = {p_value:.3f}, d = {cohens_d:.2f}\")\n```\n\n### ANOVA with Post-Hoc Tests\n\n```python\nimport pingouin as pg\n\naov = pg.anova(dv='score', between='group', data=df, detailed=True)\nprint(aov)\n\n# Effect size: partial eta-squared\neta_p2 = aov['np2'].values[0]\n\n# If significant, conduct post-hoc tests (Tukey HSD controls family-wise error)\nif aov['p_unc'].values[0] \u003C 0.05:\n    posthoc = pg.pairwise_tukey(dv='score', between='group', data=df)\n    print(posthoc)  # includes Hedges' g per pair\n```\n\n### Linear Regression with Diagnostics\n\n```python\nimport statsmodels.api as sm\nfrom assumption_checks import check_regression_diagnostics\n\nX = sm.add_constant(X_predictors)  # Add intercept\nmodel = sm.OLS(y, X).fit()\nprint(model.summary())\n\n# 4-panel residual plot + Shapiro-Wilk, Breusch-Pagan, Durbin-Watson, VIF\ndiag = check_regression_diagnostics(model)\nprint(diag['interpretation'])\nprint(diag['vif'])\n\n# If heteroscedasticity was flagged, report robust standard errors instead\nrobust = model.get_robustcov_results('HC3')\n```\n\n### Bayesian T-Test\n\n```python\nimport pymc as pm\nimport arviz as az\nimport numpy as np\n\nwith pm.Model() as model:\n    # Priors\n    mu1 = pm.Normal('mu_group1', mu=0, sigma=10)\n    mu2 = pm.Normal('mu_group2', mu=0, sigma=10)\n    sigma = pm.HalfNormal('sigma', sigma=10)\n\n    # Likelihood\n    y1 = pm.Normal('y1', mu=mu1, sigma=sigma, observed=group_a)\n    y2 = pm.Normal('y2', mu=mu2, sigma=sigma, observed=group_b)\n\n    # Derived quantity\n    diff = pm.Deterministic('difference', mu1 - mu2)\n\n    trace = pm.sample(2000, tune=1000)\n\n# ArviZ 1.x defaults to 89% intervals; request 95% explicitly for reporting\nprint(az.summary(trace, var_names=['difference'], ci_prob=0.95))\n\n# Direct probability statement (this is what one-sided questions become)\nprob_greater = np.mean(trace.posterior['difference'].values > 0)\nprint(f\"P(mu1 > mu2 | data) = {prob_greater:.3f}\")\n\n# ArviZ 1.x removed az.plot_posterior; use plot_dist (on 0.x, plot_posterior still works)\naz.plot_dist(trace, var_names=['difference'], ci_prob=0.95)\n```\n\nScale priors to the data (e.g., `sigma=10` suits outcomes with SD near 10; use the observed SD as a guide) and state the priors in the report.\n\n---\n\n## Effect Sizes\n\n**Effect sizes quantify magnitude; p-values only indicate existence.** Report one for every test. See `references\u002Feffect_sizes_and_power.md` for the full guide.\n\n### Quick Reference: Common Effect Sizes\n\n| Test | Effect Size | Small | Medium | Large |\n|------|-------------|-------|--------|-------|\n| T-test | Cohen's d | 0.20 | 0.50 | 0.80 |\n| ANOVA | η²_p | 0.01 | 0.06 | 0.14 |\n| Correlation | r | 0.10 | 0.30 | 0.50 |\n| Regression | R² | 0.02 | 0.13 | 0.26 |\n| Chi-square | Cramér's V | 0.07 | 0.21 | 0.35 |\n\nBenchmarks are conventions, not laws — a \"small\" effect can matter enormously (drug side effects) and a \"large\" one can be trivial. Interpret in context.\n\n### Calculating Effect Sizes\n\nPingouin returns effect sizes with its tests (`cohen_d` from `pg.ttest`, `np2` from `pg.anova`, `hedges` from `pg.pairwise_tukey`; `r` from `pg.corr` is already an effect size).\n\n### Confidence Intervals for Effect Sizes\n\nReport a CI for the effect size to show its precision. Use `pg.compute_esci` (note: `pg.compute_effsize_from_t` returns only the point estimate — it does **not** return a CI):\n\n```python\nimport pingouin as pg\n\nd = pg.compute_effsize(group_a, group_b, eftype='cohen')\nci_lower, ci_upper = pg.compute_esci(stat=d, nx=len(group_a), ny=len(group_b),\n                                     eftype='cohen', confidence=0.95)\nprint(f\"d = {d:.2f}, 95% CI [{ci_lower:.2f}, {ci_upper:.2f}]\")\n```\n\n---\n\n## Power Analysis\n\n### A Priori Power Analysis (Study Planning)\n\nDetermine required sample size before data collection:\n\n```python\nfrom statsmodels.stats.power import tt_ind_solve_power, FTestAnovaPower\n\n# T-test: What n per group is needed to detect d = 0.5?\nn_required = tt_ind_solve_power(\n    effect_size=0.5,\n    alpha=0.05,\n    power=0.80,\n    ratio=1.0,\n    alternative='two-sided'\n)\nprint(f\"Required n per group: {n_required:.0f}\")\n\n# One-way ANOVA: What n is needed to detect Cohen's f = 0.25?\n# Notes: the parameter is k_groups; effect_size is Cohen's f (f = sqrt(eta2\u002F(1-eta2)));\n# and solve_power returns the TOTAL sample size, not n per group.\nimport math\nanova_power = FTestAnovaPower()\nn_total = anova_power.solve_power(\n    effect_size=0.25,\n    k_groups=3,\n    alpha=0.05,\n    power=0.80\n)\nprint(f\"Required total N: {math.ceil(n_total)} ({math.ceil(n_total \u002F 3)} per group)\")\n```\n\n### Sensitivity Analysis (Post-Study)\n\nDetermine what effect size the study could detect:\n\n```python\n# With n=50 per group, what effect could we detect at 80% power?\ndetectable_d = tt_ind_solve_power(\n    effect_size=None,  # Solve for this\n    nobs1=50,\n    alpha=0.05,\n    power=0.80,\n    ratio=1.0,\n    alternative='two-sided'\n)\nprint(f\"Study could detect d >= {detectable_d:.2f}\")\n```\n\n**Note**: Post-hoc \"observed power\" (computing power from the observed effect) is circular and misleading — it is a deterministic function of the p-value. If a study is done and someone asks about power, run a sensitivity analysis instead.\n\nSee `references\u002Feffect_sizes_and_power.md` for detailed guidance.\n\n---\n\n## Reporting Results\n\nFollow `references\u002Freporting_standards.md` for APA style. Every report needs:\n\n1. **Descriptive statistics**: M, SD, n for all groups\u002Fvariables\n2. **Test statistics**: Test name, statistic, df, exact p-value (`p = .034`, not `p \u003C .05`; use `p \u003C .001` only below .001)\n3. **Effect sizes**: With confidence intervals\n4. **Assumption checks**: Which tests were run, results, and actions taken\n5. **All planned analyses**: Including non-significant findings — omitting them is cherry-picking\n\n### Example Report Templates\n\n#### Independent T-Test\n\n```\nGroup A (n = 48, M = 75.2, SD = 8.5) scored significantly higher than\nGroup B (n = 52, M = 68.3, SD = 9.2), t(98) = 3.82, p \u003C .001, d = 0.77,\n95% CI [0.36, 1.18], two-tailed. Assumptions of normality (Shapiro-Wilk:\nGroup A W = 0.97, p = .18; Group B W = 0.96, p = .12) and homogeneity\nof variance (Levene's F(1, 98) = 1.23, p = .27) were satisfied.\n```\n\n#### One-Way ANOVA\n\n```\nA one-way ANOVA revealed a significant main effect of treatment condition\non test scores, F(2, 147) = 8.45, p \u003C .001, η²_p = .10. Post hoc\ncomparisons using Tukey's HSD indicated that Condition A (M = 78.2,\nSD = 7.3) scored significantly higher than Condition B (M = 71.5,\nSD = 8.1, p = .002, d = 0.87) and Condition C (M = 70.1, SD = 7.9,\np \u003C .001, d = 1.07). Conditions B and C did not differ significantly\n(p = .52, d = 0.18).\n```\n\n#### Multiple Regression\n\n```\nMultiple linear regression was conducted to predict exam scores from\nstudy hours, prior GPA, and attendance. The overall model was significant,\nF(3, 146) = 45.2, p \u003C .001, R² = .48, adjusted R² = .47. Study hours\n(B = 1.80, SE = 0.31, β = .35, t = 5.78, p \u003C .001, 95% CI [1.18, 2.42])\nand prior GPA (B = 8.52, SE = 1.95, β = .28, t = 4.37, p \u003C .001,\n95% CI [4.66, 12.38]) were significant predictors, while attendance was\nnot (B = 0.15, SE = 0.12, β = .08, t = 1.25, p = .21, 95% CI [-0.09, 0.39]).\nMulticollinearity was not a concern (all VIF \u003C 1.5).\n```\n\n#### Bayesian Analysis\n\n```\nA Bayesian independent samples t-test was conducted using weakly\ninformative priors (Normal(0, 10) for group means). The posterior\ndistribution indicated that Group A scored higher than Group B\n(M_diff = 6.8, 95% credible interval [3.2, 10.4]), with a 99.8%\nposterior probability that Group A's mean exceeded Group B's mean.\nConvergence diagnostics were satisfactory (all R-hat \u003C 1.01, ESS > 1000).\n```\n\nIf a non-parametric test was used, report medians rather than means, the U\u002FW\u002FH statistic, and a rank-based effect size (e.g., rank-biserial correlation, returned by `pg.mwu` as `RBC`).\n\n---\n\n## Bayesian Statistics\n\nConsider Bayesian approaches when:\n- You have prior information to incorporate\n- You want direct probability statements about hypotheses (\"there is a 95% probability the effect lies in this interval\")\n- Sample size is small or data collection is sequential (no correction needed for optional stopping)\n- You need to quantify evidence *for* the null hypothesis\n- The model is complex (hierarchical structure, missing data)\n\nSee `references\u002Fbayesian_statistics.md` for prior specification, Bayes Factors, credible intervals, hierarchical models, and convergence checking (R-hat \u003C 1.01, sufficient ESS, posterior predictive checks).\n\n---\n\n## Bundled Resources\n\n### References (`references\u002F`)\n\n- **test_selection_guide.md**: Decision tree covering group comparisons, relationships, counts, time-to-event, agreement\u002Freliability, and categorical analysis\n- **assumptions_and_diagnostics.md**: Detailed guidance on checking and handling assumption violations\n- **effect_sizes_and_power.md**: Calculating, interpreting, and reporting effect sizes; power analysis\n- **bayesian_statistics.md**: Priors, Bayes Factors, credible intervals, hierarchical models, diagnostics\n- **reporting_standards.md**: APA-style reporting guidelines with worked examples\n\n### Scripts (`scripts\u002F`)\n\n- **assumption_checks.py**: Automated assumption checking with visualizations\n  - `comprehensive_assumption_check()`: outliers + normality + variance homogeneity in one call\n  - `check_normality()`, `check_normality_per_group()`: Shapiro-Wilk with Q-Q plots\n  - `check_homogeneity_of_variance()`: Levene's test with box plots\n  - `check_regression_diagnostics()`: 4-panel residual plots + Shapiro-Wilk, Breusch-Pagan, Durbin-Watson, VIF for fitted OLS models\n  - `check_linearity()`, `detect_outliers()`\n\n---\n\n## Statistical Integrity\n\nThese are the practices that keep an analysis defensible. They matter because the most common statistical failures are not computational errors — they are silent flexibility (testing until something works) and selective reporting.\n\n1. **Distinguish confirmatory from exploratory.** State the planned analysis before running it; label anything discovered along the way as exploratory.\n2. **Don't shop for significance.** If the planned test is non-significant, that is the result. Trying alternative tests, subgroups, or outlier-removal schemes until p \u003C .05 invalidates the p-value.\n3. **Correct for multiple comparisons** when running families of tests (Tukey HSD for post-hoc ANOVA; Holm or Benjamini-Hochberg FDR for other families) and say which correction was used.\n4. **A non-significant result is not evidence of no effect.** With small n, the study may simply have been underpowered — run a sensitivity analysis, or use a Bayesian analysis \u002F equivalence test to actually quantify support for the null.\n5. **Statistical significance is not practical importance.** With large n, trivial effects reach p \u003C .001. Lead the interpretation with the effect size.\n6. **Understand missing data before dropping rows.** Listwise deletion is only safe when data are missing completely at random; otherwise consider multiple imputation and say what was done.\n7. **Make it reproducible.** Set random seeds, report library versions for simulation-based methods, and keep the analysis in a runnable script.\n\n## Related skills\n\n- `statistical-power`: Sample-size and statistical power calculations for planning studies.\n- `statsmodels`: Statistical models library for Python.\n- `bgpt-paper-search`: Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server.\n","# Statistical Analysis\n\n## Overview\n\nConduct hypothesis tests (t-tests, ANOVA, chi-square), regression, correlation, and Bayesian analyses with systematic assumption checking, effect sizes, and APA-style reporting. The goal is an analysis a reviewer could not tear apart: the right test, verified assumptions, honest effect sizes, and a complete write-up.\n\n## When to Use This Skill\n\nUse this skill when:\n- Conducting statistical hypothesis tests (t-tests, ANOVA, chi-square, non-parametric)\n- Performing regression or correlation analyses\n- Running Bayesian statistical analyses\n- Checking statistical assumptions and diagnostics\n- Calculating effect sizes and conducting power analyses\n- Reporting statistical results in APA format\n- Analyzing experimental or observational data for research\n\n---\n\n## Installation\n\nUse **uv** to install the libraries used in this skill. Pin versions in production; unpinned installs are fine for exploration.\n\n```bash\n# Core frequentist stack (Python 3.10+; 3.12+ recommended for latest SciPy\u002FArviZ)\nuv pip install \"pingouin>=0.6\" \"scipy>=1.11\" \"statsmodels>=0.14.6\" pandas matplotlib seaborn\n\n# Bayesian modeling (PyMC 5 + ArviZ)\nuv pip install \"pymc>=5.0\" \"arviz>=1.0\"\n```\n\n**Compatibility notes (verified against pingouin 0.6.1, statsmodels 0.14.6, arviz 1.2, 2026):**\n\n- **Pingouin 0.6.0** renamed output columns to remove special characters: `p_val`, `cohen_d`, `CI95`, `p_unc` (previously `p-val`, `cohen-d`, `CI95%`, `p-unc` in 0.5.x). Examples below use the current names; if stuck on 0.5.x, use the hyphenated forms.\n- **statsmodels + SciPy**: use `statsmodels>=0.14.6` with `scipy>=1.11` to avoid `_lazywhere` import errors on SciPy 1.16+.\n- **ArviZ 1.x**: `az.summary()` now defaults to **89% intervals** (`eti89` columns) and the width parameter is `ci_prob` (not `hdi_prob`). To report a conventional 95% credible interval, pass `az.summary(trace, ci_prob=0.95)`.\n- **One-sided Bayes Factors are gone from Pingouin**: `pg.ttest(..., alternative='greater')` silently drops the `BF10` column, and `pg.bayesfactor_ttest` raises on one-sided alternatives. For one-sided Bayesian tests, use PyMC directly (compute the posterior probability of the directional hypothesis) or JASP\u002FR's BayesFactor.\n\nFor model-specific APIs (OLS, GLM, ARIMA), see the **statsmodels** skill. For PyMC workflows, see the **pymc** skill.\n\n---\n\n## Analysis Workflow\n\nEvery sound analysis follows the same arc. Skipping steps is how analyses end up retracted, so work through them in order and say what you did at each one.\n\n1. **Frame the question before touching the data.** State the hypothesis, the outcome and predictor variables, and the design (independent vs. paired, number of groups). Commit to a planned test now — choosing the test after peeking at results is p-hacking, even when done innocently.\n2. **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\u002Fceiling effects, and outliers all change what test is appropriate — surface them to the user rather than silently working around them.\n3. **Select the test** using the quick reference below, or `references\u002Ftest_selection_guide.md` for designs beyond the basics (counts, time-to-event, reliability, factorial).\n4. **Check assumptions** with `scripts\u002Fassumption_checks.py`. If an assumption fails, switch to the remedial test (table below) and report both the plan and the change.\n5. **Run the test** and always compute the effect size alongside it — a p-value says an effect exists; the effect size says whether anyone should care.\n6. **Report** using the APA templates below, including descriptives, exact statistics, effect sizes with CIs, and the assumption checks performed.\n\nIf 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.\n\n---\n\n## Test Selection Guide\n\n### Quick Reference: Choosing the Right Test\n\nUse `references\u002Ftest_selection_guide.md` for comprehensive guidance (counts, survival, reliability, factorial designs). Quick reference:\n\n**Comparing Two Groups:**\n- Independent, continuous, normal → Independent t-test\n- Independent, continuous, non-normal → Mann-Whitney U test\n- Paired, continuous, normal → Paired t-test\n- Paired, continuous, non-normal → Wilcoxon signed-rank test\n- Binary outcome → Chi-square or Fisher's exact test\n\n**Comparing 3+ Groups:**\n- Independent, continuous, normal → One-way ANOVA\n- Independent, continuous, non-normal → Kruskal-Wallis test\n- Paired, continuous, normal → Repeated measures ANOVA\n- Paired, continuous, non-normal → Friedman test\n\n**Relationships:**\n- Two continuous variables → Pearson (normal) or Spearman correlation (non-normal)\n- Continuous outcome with predictor(s) → Linear regression\n- Binary outcome with predictor(s) → Logistic regression\n\n**Bayesian Alternatives:**\nAll tests have Bayesian versions providing direct probability statements about hypotheses, Bayes Factors quantifying evidence, and the ability to support the null. See `references\u002Fbayesian_statistics.md`.\n\n---\n\n## Assumption Checking\n\n**Always check assumptions before interpreting test results**, and report the checks — reviewers look for them.\n\nUse the bundled `scripts\u002Fassumption_checks.py` module. Run Python from the skill directory (`skills\u002Fstatistical-analysis\u002F`) or add `scripts\u002F` to `sys.path`:\n\n```python\nfrom assumption_checks import comprehensive_assumption_check\n\n# Outliers + normality (per group) + homogeneity of variance, with plots\nresults = comprehensive_assumption_check(\n    data=df,\n    value_col='score',\n    group_col='group',  # Optional: for group comparisons\n    alpha=0.05\n)\n```\n\nFor targeted checks, import individual functions:\n\n```python\nfrom assumption_checks import (\n    check_normality,                # Shapiro-Wilk + Q-Q plot + histogram\n    check_normality_per_group,\n    check_homogeneity_of_variance,  # Levene's test + box plots\n    check_linearity,                # scatter + residual plot for simple regression\n    check_regression_diagnostics,   # full OLS diagnostics (see Regression below)\n    detect_outliers                 # IQR or z-score methods\n)\n\nresult = check_normality(data=df['score'], name='Test Score', alpha=0.05, plot=True)\nprint(result['interpretation'])\nprint(result['recommendation'])\n```\n\n### What to Do When Assumptions Are Violated\n\n**Normality violated:**\n- Mild violation + n > 30 per group → Proceed with parametric test (robust)\n- Moderate violation → Use non-parametric alternative\n- Severe violation → Transform data or use non-parametric test\n\n**Homogeneity of variance violated:**\n- For t-test → Use Welch's t-test (`pg.ttest` applies it automatically with `correction='auto'`)\n- For ANOVA → Use Welch's ANOVA (`pg.welch_anova`) or Brown-Forsythe\n- For regression → Use robust standard errors or weighted least squares\n\n**Linearity violated (regression):**\n- Add polynomial terms, transform variables, or use non-linear models \u002F GAM\n\nFormal tests get oversensitive as n grows: for n ≥ 100, weigh the Q-Q plot more heavily than the Shapiro-Wilk p-value. See `references\u002Fassumptions_and_diagnostics.md` for comprehensive guidance.\n\n---\n\n## Running Statistical Tests\n\nPrimary libraries:\n- **pingouin**: user-friendly tests that return effect sizes by default — prefer it for standard tests\n- **scipy.stats**: core statistical tests\n- **statsmodels**: regression, diagnostics, power analysis\n- **pymc** + **arviz**: Bayesian modeling and diagnostics\n\n### T-Test with Complete Reporting\n\n```python\nimport pingouin as pg\n\n# correction='auto' applies Welch's correction when variances are unequal\nresult = pg.ttest(group_a, group_b, correction='auto')\n\n# Pingouin >= 0.6 column names\nt_stat = result['T'].values[0]\ndf = result['dof'].values[0]\np_value = result['p_val'].values[0]\ncohens_d = result['cohen_d'].values[0]\nci_lower, ci_upper = result['CI95'].values[0]  # CI for the mean difference\n\nprint(f\"t({df:.0f}) = {t_stat:.2f}, p = {p_value:.3f}, d = {cohens_d:.2f}\")\n```\n\n### ANOVA with Post-Hoc Tests\n\n```python\nimport pingouin as pg\n\naov = pg.anova(dv='score', between='group', data=df, detailed=True)\nprint(aov)\n\n# Effect size: partial eta-squared\neta_p2 = aov['np2'].values[0]\n\n# If significant, conduct post-hoc tests (Tukey HSD controls family-wise error)\nif aov['p_unc'].values[0] \u003C 0.05:\n    posthoc = pg.pairwise_tukey(dv='score', between='group', data=df)\n    print(posthoc)  # includes Hedges' g per pair\n```\n\n### Linear Regression with Diagnostics\n\n```python\nimport statsmodels.api as sm\nfrom assumption_checks import check_regression_diagnostics\n\nX = sm.add_constant(X_predictors)  # Add intercept\nmodel = sm.OLS(y, X).fit()\nprint(model.summary())\n\n# 4-panel residual plot + Shapiro-Wilk, Breusch-Pagan, Durbin-Watson, VIF\ndiag = check_regression_diagnostics(model)\nprint(diag['interpretation'])\nprint(diag['vif'])\n\n# If heteroscedasticity was flagged, report robust standard errors instead\nrobust = model.get_robustcov_results('HC3')\n```\n\n### Bayesian T-Test\n\n```python\nimport pymc as pm\nimport arviz as az\nimport numpy as np\n\nwith pm.Model() as model:\n    # Priors\n    mu1 = pm.Normal('mu_group1', mu=0, sigma=10)\n    mu2 = pm.Normal('mu_group2', mu=0, sigma=10)\n    sigma = pm.HalfNormal('sigma', sigma=10)\n\n    # Likelihood\n    y1 = pm.Normal('y1', mu=mu1, sigma=sigma, observed=group_a)\n    y2 = pm.Normal('y2', mu=mu2, sigma=sigma, observed=group_b)\n\n    # Derived quantity\n    diff = pm.Deterministic('difference', mu1 - mu2)\n\n    trace = pm.sample(2000, tune=1000)\n\n# ArviZ 1.x defaults to 89% intervals; request 95% explicitly for reporting\nprint(az.summary(trace, var_names=['difference'], ci_prob=0.95))\n\n# Direct probability statement (this is what one-sided questions become)\nprob_greater = np.mean(trace.posterior['difference'].values > 0)\nprint(f\"P(mu1 > mu2 | data) = {prob_greater:.3f}\")\n\n# ArviZ 1.x removed az.plot_posterior; use plot_dist (on 0.x, plot_posterior still works)\naz.plot_dist(trace, var_names=['difference'], ci_prob=0.95)\n```\n\nScale priors to the data (e.g., `sigma=10` suits outcomes with SD near 10; use the observed SD as a guide) and state the priors in the report.\n\n---\n\n## Effect Sizes\n\n**Effect sizes quantify magnitude; p-values only indicate existence.** Report one for every test. See `references\u002Feffect_sizes_and_power.md` for the full guide.\n\n### Quick Reference: Common Effect Sizes\n\n| Test | Effect Size | Small | Medium | Large |\n|------|-------------|-------|--------|-------|\n| T-test | Cohen's d | 0.20 | 0.50 | 0.80 |\n| ANOVA | η²_p | 0.01 | 0.06 | 0.14 |\n| Correlation | r | 0.10 | 0.30 | 0.50 |\n| Regression | R² | 0.02 | 0.13 | 0.26 |\n| Chi-square | Cramér's V | 0.07 | 0.21 | 0.35 |\n\nBenchmarks are conventions, not laws — a \"small\" effect can matter enormously (drug side effects) and a \"large\" one can be trivial. Interpret in context.\n\n### Calculating Effect Sizes\n\nPingouin returns effect sizes with its tests (`cohen_d` from `pg.ttest`, `np2` from `pg.anova`, `hedges` from `pg.pairwise_tukey`; `r` from `pg.corr` is already an effect size).\n\n### Confidence Intervals for Effect Sizes\n\nReport a CI for the effect size to show its precision. Use `pg.compute_esci` (note: `pg.compute_effsize_from_t` returns only the point estimate — it does **not** return a CI):\n\n```python\nimport pingouin as pg\n\nd = pg.compute_effsize(group_a, group_b, eftype='cohen')\nci_lower, ci_upper = pg.compute_esci(stat=d, nx=len(group_a), ny=len(group_b),\n                                     eftype='cohen', confidence=0.95)\nprint(f\"d = {d:.2f}, 95% CI [{ci_lower:.2f}, {ci_upper:.2f}]\")\n```\n\n---\n\n## Power Analysis\n\n### A Priori Power Analysis (Study Planning)\n\nDetermine required sample size before data collection:\n\n```python\nfrom statsmodels.stats.power import tt_ind_solve_power, FTestAnovaPower\n\n# T-test: What n per group is needed to detect d = 0.5?\nn_required = tt_ind_solve_power(\n    effect_size=0.5,\n    alpha=0.05,\n    power=0.80,\n    ratio=1.0,\n    alternative='two-sided'\n)\nprint(f\"Required n per group: {n_required:.0f}\")\n\n# One-way ANOVA: What n is needed to detect Cohen's f = 0.25?\n# Notes: the parameter is k_groups; effect_size is Cohen's f (f = sqrt(eta2\u002F(1-eta2)));\n# and solve_power returns the TOTAL sample size, not n per group.\nimport math\nanova_power = FTestAnovaPower()\nn_total = anova_power.solve_power(\n    effect_size=0.25,\n    k_groups=3,\n    alpha=0.05,\n    power=0.80\n)\nprint(f\"Required total N: {math.ceil(n_total)} ({math.ceil(n_total \u002F 3)} per group)\")\n```\n\n### Sensitivity Analysis (Post-Study)\n\nDetermine what effect size the study could detect:\n\n```python\n# With n=50 per group, what effect could we detect at 80% power?\ndetectable_d = tt_ind_solve_power(\n    effect_size=None,  # Solve for this\n    nobs1=50,\n    alpha=0.05,\n    power=0.80,\n    ratio=1.0,\n    alternative='two-sided'\n)\nprint(f\"Study could detect d >= {detectable_d:.2f}\")\n```\n\n**Note**: Post-hoc \"observed power\" (computing power from the observed effect) is circular and misleading — it is a deterministic function of the p-value. If a study is done and someone asks about power, run a sensitivity analysis instead.\n\nSee `references\u002Feffect_sizes_and_power.md` for detailed guidance.\n\n---\n\n## Reporting Results\n\nFollow `references\u002Freporting_standards.md` for APA style. Every report needs:\n\n1. **Descriptive statistics**: M, SD, n for all groups\u002Fvariables\n2. **Test statistics**: Test name, statistic, df, exact p-value (`p = .034`, not `p \u003C .05`; use `p \u003C .001` only below .001)\n3. **Effect sizes**: With confidence intervals\n4. **Assumption checks**: Which tests were run, results, and actions taken\n5. **All planned analyses**: Including non-significant findings — omitting them is cherry-picking\n\n### Example Report Templates\n\n#### Independent T-Test\n\n```\nGroup A (n = 48, M = 75.2, SD = 8.5) scored significantly higher than\nGroup B (n = 52, M = 68.3, SD = 9.2), t(98) = 3.82, p \u003C .001, d = 0.77,\n95% CI [0.36, 1.18], two-tailed. Assumptions of normality (Shapiro-Wilk:\nGroup A W = 0.97, p = .18; Group B W = 0.96, p = .12) and homogeneity\nof variance (Levene's F(1, 98) = 1.23, p = .27) were satisfied.\n```\n\n#### One-Way ANOVA\n\n```\nA one-way ANOVA revealed a significant main effect of treatment condition\non test scores, F(2, 147) = 8.45, p \u003C .001, η²_p = .10. Post hoc\ncomparisons using Tukey's HSD indicated that Condition A (M = 78.2,\nSD = 7.3) scored significantly higher than Condition B (M = 71.5,\nSD = 8.1, p = .002, d = 0.87) and Condition C (M = 70.1, SD = 7.9,\np \u003C .001, d = 1.07). Conditions B and C did not differ significantly\n(p = .52, d = 0.18).\n```\n\n#### Multiple Regression\n\n```\nMultiple linear regression was conducted to predict exam scores from\nstudy hours, prior GPA, and attendance. The overall model was significant,\nF(3, 146) = 45.2, p \u003C .001, R² = .48, adjusted R² = .47. Study hours\n(B = 1.80, SE = 0.31, β = .35, t = 5.78, p \u003C .001, 95% CI [1.18, 2.42])\nand prior GPA (B = 8.52, SE = 1.95, β = .28, t = 4.37, p \u003C .001,\n95% CI [4.66, 12.38]) were significant predictors, while attendance was\nnot (B = 0.15, SE = 0.12, β = .08, t = 1.25, p = .21, 95% CI [-0.09, 0.39]).\nMulticollinearity was not a concern (all VIF \u003C 1.5).\n```\n\n#### Bayesian Analysis\n\n```\nA Bayesian independent samples t-test was conducted using weakly\ninformative priors (Normal(0, 10) for group means). The posterior\ndistribution indicated that Group A scored higher than Group B\n(M_diff = 6.8, 95% credible interval [3.2, 10.4]), with a 99.8%\nposterior probability that Group A's mean exceeded Group B's mean.\nConvergence diagnostics were satisfactory (all R-hat \u003C 1.01, ESS > 1000).\n```\n\nIf a non-parametric test was used, report medians rather than means, the U\u002FW\u002FH statistic, and a rank-based effect size (e.g., rank-biserial correlation, returned by `pg.mwu` as `RBC`).\n\n---\n\n## Bayesian Statistics\n\nConsider Bayesian approaches when:\n- You have prior information to incorporate\n- You want direct probability statements about hypotheses (\"there is a 95% probability the effect lies in this interval\")\n- Sample size is small or data collection is sequential (no correction needed for optional stopping)\n- You need to quantify evidence *for* the null hypothesis\n- The model is complex (hierarchical structure, missing data)\n\nSee `references\u002Fbayesian_statistics.md` for prior specification, Bayes Factors, credible intervals, hierarchical models, and convergence checking (R-hat \u003C 1.01, sufficient ESS, posterior predictive checks).\n\n---\n\n## Bundled Resources\n\n### References (`references\u002F`)\n\n- **test_selection_guide.md**: Decision tree covering group comparisons, relationships, counts, time-to-event, agreement\u002Freliability, and categorical analysis\n- **assumptions_and_diagnostics.md**: Detailed guidance on checking and handling assumption violations\n- **effect_sizes_and_power.md**: Calculating, interpreting, and reporting effect sizes; power analysis\n- **bayesian_statistics.md**: Priors, Bayes Factors, credible intervals, hierarchical models, diagnostics\n- **reporting_standards.md**: APA-style reporting guidelines with worked examples\n\n### Scripts (`scripts\u002F`)\n\n- **assumption_checks.py**: Automated assumption checking with visualizations\n  - `comprehensive_assumption_check()`: outliers + normality + variance homogeneity in one call\n  - `check_normality()`, `check_normality_per_group()`: Shapiro-Wilk with Q-Q plots\n  - `check_homogeneity_of_variance()`: Levene's test with box plots\n  - `check_regression_diagnostics()`: 4-panel residual plots + Shapiro-Wilk, Breusch-Pagan, Durbin-Watson, VIF for fitted OLS models\n  - `check_linearity()`, `detect_outliers()`\n\n---\n\n## Statistical Integrity\n\nThese are the practices that keep an analysis defensible. They matter because the most common statistical failures are not computational errors — they are silent flexibility (testing until something works) and selective reporting.\n\n1. **Distinguish confirmatory from exploratory.** State the planned analysis before running it; label anything discovered along the way as exploratory.\n2. **Don't shop for significance.** If the planned test is non-significant, that is the result. Trying alternative tests, subgroups, or outlier-removal schemes until p \u003C .05 invalidates the p-value.\n3. **Correct for multiple comparisons** when running families of tests (Tukey HSD for post-hoc ANOVA; Holm or Benjamini-Hochberg FDR for other families) and say which correction was used.\n4. **A non-significant result is not evidence of no effect.** With small n, the study may simply have been underpowered — run a sensitivity analysis, or use a Bayesian analysis \u002F equivalence test to actually quantify support for the null.\n5. **Statistical significance is not practical importance.** With large n, trivial effects reach p \u003C .001. Lead the interpretation with the effect size.\n6. **Understand missing data before dropping rows.** Listwise deletion is only safe when data are missing completely at random; otherwise consider multiple imputation and say what was done.\n7. **Make it reproducible.** Set random seeds, report library versions for simulation-based methods, and keep the analysis in a runnable script.\n\n## Related skills\n\n- `statistical-power`: Sample-size and statistical power calculations for planning studies.\n- `statsmodels`: Statistical models library for Python.\n- `bgpt-paper-search`: Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server.\n",{"name":5,"license":15,"metadata":59,"description":7},{"tags":60,"version":61,"category":62,"maintainer":63},"statistics, hypothesis testing, effect sizes, power analysis, APA reporting","1.2","data-science-and-ml","Kalaris Labs","main","2b63f856ce19c2a797929cacabd9e0fc936812fa","plugins\u002FKalarisLabs\u002Fresearch-agent-skills\u002Fskills\u002Fstatistical-analysis",468,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins","https:\u002F\u002Fhol.org\u002Fplugins\u002Fbest-codex-plugins","https:\u002F\u002Fgithub.com\u002Fhashgraph-online","https:\u002F\u002Fhol.org","Open-source standards and developer tools for interoperable AI agents: discovery, identity, communication, payments, privacy and security.","2026-11-11 02:22:54",{"source":8,"skillName":5,"commands":75,"prompt":85,"zipAvailable":86},[76,79,82],{"tool":77,"command":78},"npx","npx skills add hashgraph-online\u002Fawesome-codex-plugins --skill statistical-analysis",{"tool":80,"command":81},"bunx","bunx skills add hashgraph-online\u002Fawesome-codex-plugins --skill statistical-analysis",{"tool":83,"command":84},"pnpm","pnpm dlx skills add hashgraph-online\u002Fawesome-codex-plugins --skill statistical-analysis","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002FKalarisLabs\u002Fresearch-agent-skills\u002Fskills\u002Fstatistical-analysis\u002FSKILL.md",true,[88,94,98,102,106,110],{"path":89,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fassumptions_and_diagnostics.md","REFERENCE","参考文档",12350,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002FKalarisLabs\u002Fresearch-agent-skills\u002Fskills\u002Fstatistical-analysis\u002Freferences\u002Fassumptions_and_diagnostics.md",{"path":95,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fbayesian_statistics.md",20655,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002FKalarisLabs\u002Fresearch-agent-skills\u002Fskills\u002Fstatistical-analysis\u002Freferences\u002Fbayesian_statistics.md",{"path":99,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Feffect_sizes_and_power.md",18413,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002FKalarisLabs\u002Fresearch-agent-skills\u002Fskills\u002Fstatistical-analysis\u002Freferences\u002Feffect_sizes_and_power.md",{"path":103,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":104,"sourceHtmlUrl":105},"references\u002Freporting_standards.md",20239,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002FKalarisLabs\u002Fresearch-agent-skills\u002Fskills\u002Fstatistical-analysis\u002Freferences\u002Freporting_standards.md",{"path":107,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":108,"sourceHtmlUrl":109},"references\u002Ftest_selection_guide.md",5077,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002FKalarisLabs\u002Fresearch-agent-skills\u002Fskills\u002Fstatistical-analysis\u002Freferences\u002Ftest_selection_guide.md",{"path":111,"resourceType":112,"resourceTypeDesc":113,"sizeBytes":114,"sourceHtmlUrl":115},"scripts\u002Fassumption_checks.py","SCRIPT","脚本",20518,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002FKalarisLabs\u002Fresearch-agent-skills\u002Fskills\u002Fstatistical-analysis\u002Fscripts\u002Fassumption_checks.py",[117,144,169,201,218,232],{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":121,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":54},"01M716A6ETNB9B1SQ3GXZC75VR","deja-search","deja-vu memory — search the user's past AI coding sessions with the deja CLI. Holds what they already settled and never wrote into the repo (naming rules, banned or already-tried tools, required checks before merge, preferred values, who owns what). Use before your first edit in a task, before you call a change done or ready to merge, before you recommend a tool, library, design or reviewer, before re-debugging an error that may already be solved, when they say 'didn't we fix this before', 'what did we decide about X' or 'I already have that', and before telling them something on this machine does not exist.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvshulcz\u002Fdeja-vu\u002Fskills\u002Fdeja-search\u002FSKILL.md",[],[125,126,127,128,26,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143],"search","deja search","error","ready","memory","re","decide","fix","design","debugging","when","you","done","reviewer","io","change","cli","merge","past",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":121,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":150,"publishedAt":54},"01M716A3J2W5SENSE9VGMXB375","deja-reflect","End-of-session reflection and memory curation with deja-vu. Review what was decided, what commands broke and what repaired them, and record durable project rules or decisions with deja remember so the next session starts with them.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvshulcz\u002Fdeja-vu\u002Fskills\u002Fdeja-reflect\u002FSKILL.md",[],[151,152,153,154,129,155,156,157,158,159,160,161,162,139,163,164,165,166,167,168],"reflect","deja reflect","brew","remember","project rules","project","session","end","reflection","Rules","decisions","review","with","record","github","next","https","node",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":121,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":184,"publishedAt":54},"01M715T3RR4BAYSR57HPPTJ0PF","revid","Make, edit, export and post AI videos with Revid (revid.ai) through the Revid MCP server. Use whenever the user wants a short-form or long-form video made (from an idea, a script, a URL, an article, a PDF, a tweet, a product page, their own clips, or a song), wants to find what is going viral on TikTok, YouTube, Instagram or X before making something, wants to edit or re-export an existing Revid project, generate a standalone AI image or clip, make a series episode, or publish and schedule a finished video to connected social accounts. Covers setup (hosted MCP with OAuth, or an API key), the 36 tools, credits, polling and the rules for publishing. Routes to the more specific revid-* skills when one fits.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Ftmakersas\u002Frevid-skills\u002Fskills\u002Frevid\u002FSKILL.md",[175,178,181],{"categoryNo":176,"categoryName":177,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":179,"categoryName":180,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":182,"categoryName":183,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[171,185,186,187,188,189,156,190,130,191,192,193,194,135,195,196,197,198,199,200],"Video","short-form","standalone","PDF","viral","tiktok","short","social","MCP","song","URL","image","mcp server","schedule","api","publish",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":121,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":207,"publishedAt":54},"01M71569ZM2X3H5RBFK8PVKMK2","review-study","Review a QuestionPunk survey before launch for wording, answer choices, branching, and missing settings. Use for check my survey or review this draft before publishing.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fquestionpunk\u002Fcodex-plugin\u002Fskills\u002Freview-study\u002FSKILL.md",[],[208,209,162,28,210,211,42,212,44,48,213,214,215,216,217],"study","review study","answer","missing","publishing","draft","settings","launch","my","branching",{"skillNo":219,"name":220,"nameZh":6,"description":221,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":121,"licenseFileUrl":6,"sourceHtmlUrl":222,"categories":223,"keywords":224,"publishedAt":54},"01M71567GV0C35YQBY0DPGR86B","manage-study","Find QuestionPunk studies, check status, publish an explicitly requested draft, or retrieve its participant link. Use for find my survey, publish this study, or how many people responded.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fquestionpunk\u002Fcodex-plugin\u002Fskills\u002Fmanage-study\u002FSKILL.md",[],[225,208,226,28,42,44,227,48,213,200,228,229,230,231,216],"manage study","manage","people","how","find","link","status",{"skillNo":233,"name":234,"nameZh":6,"description":235,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":121,"licenseFileUrl":6,"sourceHtmlUrl":236,"categories":237,"keywords":238,"publishedAt":54},"01M71565A8TCA01AZQZRGRYMFZ","create-study","Create a saved QuestionPunk survey draft from a research brief or edit specified questions. Use for requests such as make a customer feedback survey or shorten my onboarding study.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fquestionpunk\u002Fcodex-plugin\u002Fskills\u002Fcreate-study\u002FSKILL.md",[],[239,208,240,241,242,243,28,244,42,245,44,246,247,213,53,248,249,250,251,216],"create study","create","brief","as","feedback","customer feedback","research brief","shorten","saved","requests","customer","questions","edit"]