MCPInstall

statistical-analysis

Apply statistical methods including descriptive stats, trend analysis, outlier detection, and hypothesis testing. Use when analyzing distributions, testing for significance, detecting anomalies, computing correlations, or interpreting statistical results.

Installs
4.6K
Last 24h
+19
Trending rank
#5998
Security
Pass

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/anthropics/knowledge-work-plugins --skill statistical-analysis
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads statistical-analysis automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

Security audits

Independent scans of the skill's instructions and bundled files.

Gen Agent Trust Hub PassSAFE ·This skill provides a collection of purely descriptive methodologies and documentation for statistical analysis. It contains no executable scripts, credentials, external downloads, or input ingestion points, making it entirely safe to include in the agent environment.
Socket PassNo alerts
Snyk PassLOW ·Risk: LOW · No issues
Runlayer PassNONE ·1 file scanned · No issues
ZeroLeaks PassNONE ·Score: 93/100 · 2 sections analyzed

SKILL.md

The instructions your agent reads when the skill is triggered.

Statistical Analysis Skill

Descriptive statistics, trend analysis, outlier detection, hypothesis testing, and guidance on when to be cautious about statistical claims.

Descriptive Statistics Methodology

Central Tendency

Choose the right measure of center based on the data:

SituationUseWhy
Symmetric distribution, no outliersMeanMost efficient estimator
Skewed distributionMedianRobust to outliers
Categorical or ordinal dataModeOnly option for non-numeric
Highly skewed with outliers (e.g., revenue per user)Median + meanReport both; the gap shows skew

Always report mean and median together for business metrics. If they diverge significantly, the data is skewed and the mean alone is misleading.

Spread and Variability

  • Standard deviation: How far values typically fall from the mean. Use with normally distributed data.
  • Interquartile range (IQR): Distance from p25 to p75. Robust to outliers. Use with skewed data.
  • Coefficient of variation (CV): StdDev / Mean. Use to compare variability across metrics with different scales.
  • Range: Max minus min. Sensitive to outliers but gives a quick sense of data extent.

Percentiles for Business Context

Report key percentiles to tell a richer story than mean alone:

p1:   Bottom 1% (floor / minimum typical value)
p5:   Low end of normal range
p25:  First quartile
p50:  Median (typical user)
p75:  Third quartile
p90:  Top 10% / power users
p95:  High end of normal range
p99:  Top 1% / extreme users

Example narrative: "The median session duration is 4.2 minutes, but the top 10% of users spend over 22 minutes per session, pulling the mean up to 7.8 minutes."

Describing Distributions

Characterize every numeric distribution you analyze:

  • Shape: Normal, right-skewed, left-skewed, bimodal, uniform, heavy-tailed
  • Center: Mean and median (and the gap between them)
  • Spread: Standard deviation or IQR
  • Outliers: How many and how extreme
  • Bounds: Is there a natural floor (zero) or ceiling (100%)?

Trend Analysis and Forecasting

Identifying Trends

Moving averages to smooth noise:

# 7-day moving average (good for daily data with weekly seasonality)
df['ma_7d'] = df['metric'].rolling(window=7, min_periods=1).mean()

# 28-day moving average (smooths weekly AND monthly patterns)
df['ma_28d'] = df['metric'].rolling(window=28, min_periods=1).mean()

Period-over-period comparison:

  • Week-over-week (WoW): Compare to same day last week
  • Month-over-month (MoM): Compare to same month prior
  • Year-over-year (YoY): Gold standard for seasonal businesses
  • Same-day-last-year: Compare specific calendar day

Growth rates:

Simple growth: (current - previous) / previous
CAGR: (ending / beginning) ^ (1 / years) - 1
Log growth: ln(current / previous)  -- better for volatile series

Seasonality Detection

Check for periodic patterns:

  1. Plot the raw time series -- visual inspection first
  2. Compute day-of-week averages: is there a clear weekly pattern?
  3. Compute month-of-year averages: is there an annual cycle?
  4. When comparing periods, always use YoY or same-period comparisons to avoid conflating trend with seasonality

Forecasting (Simple Methods)

For business analysts (not data scientists), use straightforward methods:

  • Naive forecast: Tomorrow = today. Use as a baseline.
  • Seasonal naive: Tomorrow = same day last week/year.
  • Linear trend: Fit a line to historical data. Only for clearly linear trends.
  • Moving average forecast: Use trailing average as the forecast.

Always communicate uncertainty. Provide a range, not a point estimate:

  • "We expect 10K-12K signups next month based on the 3-month trend"
  • NOT "We will get exactly 11,234 signups next month"

When to escalate to a data scientist: Non-linear trends, multiple seasonalities, external factors (marketing spend, holidays), or when forecast accuracy matters for resource allocation.

Outlier and Anomaly Detection

Statistical Methods

Z-score method (for normally distributed data):

z_scores = (df['value'] - df['value'].mean()) / df['value'].std()
outliers = df[abs(z_scores) > 3]  # More than 3 standard deviations

IQR method (robust to non-normal distributions):

Q1 = df['value'].quantile(0.25)
Q3 = df['value'].quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
outliers = df[(df['value'] < lower_bound) | (df['value'] > upper_bound)]

Percentile method (simplest):

outliers = df[(df['value'] < df['value'].quantile(0.01)) |
              (df['value'] > df['value'].quantile(0.99))]

Handling Outliers

Do NOT automatically remove outliers. Instead:

  1. Investigate: Is this a data error, a genuine extreme value, or a different population?
  2. Data errors: Fix or remove (e.g., negative ages, timestamps in year 1970)
  3. Genuine extremes: Keep them but consider using robust statistics (median instead of mean)
  4. Different population: Segment them out for separate analysis (e.g., enterprise vs. SMB customers)

Report what you did: "We excluded 47 records (0.3%) with transaction amounts >$50K, which represent bulk enterprise orders analyzed separately."

Time Series Anomaly Detection

For detecting unusual values in a time series:

  1. Compute expected value (moving average or same-period-last-year)
  2. Compute deviation from expected
  3. Flag deviations beyond a threshold (typically 2-3 standard deviations of the residuals)
  4. Distinguish between point anomalies (single unusual value) and change points (sustained shift)

Hypothesis Testing Basics

When to Use

Use hypothesis testing when you need to determine whether an observed difference is likely real or could be due to random chance. Common scenarios:

  • A/B test results: Is variant B actually better than A?
  • Before/after comparison: Did the product change actually move the metric?
  • Segment comparison: Do enterprise customers really have higher retention?

The Framework

  1. Null hypothesis (H0): There is no difference (the default assumption)
  2. Alternative hypothesis (H1): There is a difference
  3. Choose significance level (alpha): Typically 0.05 (5% chance of false positive)
  4. Compute test statistic and p-value
  5. Interpret: If p < alpha, reject H0 (evidence of a real difference)

Common Tests

ScenarioTestWhen to Use
Compare two group meanst-test (independent)Normal data, two groups
Compare two group proportionsz-test for proportionsConversion rates, binary outcomes
Compare paired measurementsPaired t-testBefore/after on same entities
Compare 3+ group meansANOVAMultiple segments or variants
Non-normal data, two groupsMann-Whitney U testSkewed metrics, ordinal data
Association between categoriesChi-squared testTwo categorical variables

Practical Significance vs. Statistical Significance

Statistical significance means the difference is unlikely due to chance.

Practical significance means the difference is large enough to matter for business decisions.

A difference can be statistically significant but practically meaningless (common with large samples). Always report:

  • Effect size: How big is the difference? (e.g., "Variant B improved conversion by 0.3 percentage points")
  • Confidence interval: What's the range of plausible true effects?
  • Business impact: What does this translate to in revenue, users, or other business terms?

Sample Size Considerations

  • Small samples produce unreliable results, even with significant p-values
  • Rule of thumb for proportions: Need at least 30 events per group for basic reliability
  • For detecting small effects (e.g., 1% conversion rate change), you may need thousands of observations per group
  • If your sample is small, say so: "With only 200 observations per group, we have limited power to detect effects smaller than X%"

When to Be Cautious About Statistical Claims

Correlation Is Not Causation

When you find a correlation, explicitly consider:

  • Reverse causation: Maybe B causes A, not A causes B
  • Confounding variables: Maybe C causes both A and B
  • Coincidence: With enough variables, spurious correlations are inevitable

What you can say: "Users who use feature X have 30% higher retention" What you cannot say without more evidence: "Feature X causes 30% higher retention"

Multiple Comparisons Problem

When you test many hypotheses, some will be "significant" by chance:

  • Testing 20 metrics at p=0.05 means ~1 will be falsely significant
  • If you looked at many segments before finding one that's different, note that
  • Adjust for multiple comparisons with Bonferroni correction (divide alpha by number of tests) or report how many tests were run

Simpson's Paradox

A trend in aggregated data can reverse when data is segmented:

  • Always check whether the conclusion holds across key segments
  • Example: Overall conversion goes up, but conversion goes down in every segment -- because the mix shifted toward a higher-converting segment

Survivorship Bias

You can only analyze entities that "survived" to be in your dataset:

  • Analyzing active users ignores those who churned
  • Analyzing successful companies ignores those that failed
  • Always ask: "Who is missing from this dataset, and would their inclusion change the conclusion?"

Ecological Fallacy

Aggregate trends may not apply to individuals:

  • "Countries with higher X have higher Y" does NOT mean "individuals with higher X have higher Y"
  • Be careful about applying group-level findings to individual cases

Anchoring on Specific Numbers

Be wary of false precision:

  • "Churn will be 4.73% next quarter" implies more certainty than is warranted
  • Prefer ranges: "We expect churn between 4-6% based on historical patterns"
  • Round appropriately: "About 5%" is often more honest than "4.73%"

FAQ

What does the statistical-analysis skill do?

Apply statistical methods including descriptive stats, trend analysis, outlier detection, and hypothesis testing. Use when analyzing distributions, testing for significance, detecting anomalies, computing correlations, or interpreting statistical results.

How do I install statistical-analysis?

Run npx skills add https://github.com/anthropics/knowledge-work-plugins --skill statistical-analysis in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/statistical-analysis/ (personal) or .claude/skills/statistical-analysis/ (project).

Which AI agents can use statistical-analysis?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is statistical-analysis safe to install?

Security partners have reviewed it: Gen Agent Trust Hub passed; Socket passed; Snyk passed; Runlayer passed; ZeroLeaks passed. As with any skill, read the SKILL.md and bundled scripts before installing.

Who maintains statistical-analysis?

It is published by anthropics in anthropics/knowledge-work-plugins, and it is an official skill from the maker of the technology it covers. It has 4,587 recorded installs.

More from anthropics/knowledge-work-plugins

View all →

data-visualization

anthropics/knowledge-work-plugins

Create effective data visualizations with Python (matplotlib, seaborn, plotly). Use when building charts, choosing the right chart type for a dataset, creating publication-quality figures, or applying design principles like accessibility and color theory.

OfficialFrontend & Design13.8K installs

documentation

anthropics/knowledge-work-plugins

Write and maintain technical documentation. Trigger with "write docs for", "document this", "create a README", "write a runbook", "onboarding guide", or when the user needs help with any form of technical writing — API docs, architecture docs, or operational runbooks.

OfficialDocs & Writing10.3K installs

code-review

anthropics/knowledge-work-plugins

Review code changes for security, performance, and correctness. Trigger with a PR URL or diff, "review this before I merge", "is this code safe?", or when checking a change for N+1 queries, injection risks, missing edge cases, or error handling gaps.

OfficialCode Quality & Workflow9.9K installs

build-dashboard

anthropics/knowledge-work-plugins

Build an interactive HTML dashboard with charts, filters, and tables. Use when creating an executive overview with KPI cards, turning query results into a shareable self-contained report, building a team monitoring snapshot, or needing multiple charts with filters in one browser-openable file.

OfficialData & Databases9.1K installs

system-design

anthropics/knowledge-work-plugins

Design systems, services, and architectures. Trigger with "design a system for", "how should we architect", "system design for", "what's the right architecture for", or when the user needs help with API design, data modeling, or service boundaries.

OfficialFrontend & Design7.5K installs

memory-management

anthropics/knowledge-work-plugins

Two-tier memory system that makes Claude a true workplace collaborator. Decodes shorthand, acronyms, nicknames, and internal language so Claude understands requests like a colleague would. CLAUDE.md for working memory, memory/ directory for the full knowledge base.

Official7.5K installs

Popular testing & qa skills

View category →

tdd

mattpocock/skills

Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.

Testing & QA1.2M installs

grilling

mattpocock/skills

Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

Testing & QA996.2K installs

migrate-to-shoehorn

mattpocock/skills

Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.

Testing & QA484.1K installs

run-train

lllllllama/rigorpilot-skills

Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.

Testing & QA337.8K installs

test-driven-development

obra/superpowers

Use when implementing any feature or bugfix, before writing implementation code

Testing & QA261.8K installs

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work

Testing & QA216.8K installs