Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Probability Distributions

ASecurity

Use when you must fit and characterize a standard probability distribution for aerospace engineering data analysis: estimate the normal, lognormal, exponential, and Weibull distribution parameters from a univariate sample, evaluate the pdf, cdf, quantile, reliability, and hazard functions, score the fit with the chi-square and Kolmogorov-Smirnov goodness-of-fit statistics, and report percentiles plus reliability at a target time. Produces the fitted parameter dict, the fit-quality verdict, an...

2 stars
0 votes
0 copies
0 views
Added 9/27/2026
ai-agentspythonrustgo

Works with

claude code

Security Analysis

A100/100

Scanned 9/27/2026

Install to Claude Code

$npx -y skills add ashfordeOU/aero-agent-skills --skill probability-distributions --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Probability Distributions?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Probability Distributions
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ashfordeou-probability-distributions/badge)](https://www.skillsdirectory.com/skills/ashfordeou-probability-distributions)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: probability-distributions
description: "Use when you must fit and characterize a standard probability distribution for aerospace engineering data analysis: estimate the normal, lognormal, exponential, and Weibull distribution parameters from a univariate sample, evaluate the pdf, cdf, quantile, reliability, and hazard functions, score the fit with the chi-square and Kolmogorov-Smirnov goodness-of-fit statistics, and report percentiles plus reliability at a target time. Produces the fitted parameter dict, the fit-quality verdict, and the quantile and reliability values that gate the statistical characterization of scatter data such as loads, life, failure times, and tolerances. Trigger: probability distribution fitting, weibull fit, lognormal, exponential fit, goodness of fit, kolmogorov smirnov, chi-square fit test, quantile estimation, reliability at time, hazard function, parameter estimation."
license: Apache-2.0
compliance: STANDARDS-REF
standards:
  - id: naca-tr-824
    reference-only: true
gated: false
domain: cross-cutting
pack: numerics
compatibility: "agentskills.io SKILL.md; any SKILL.md host (Claude Code, Hermes, OpenClaw)"
metadata:
  domain: cross-cutting
  subdomain: numerics
  tags: [probability-distributions, weibull-fit, lognormal, exponential-fit, goodness-of-fit, kolmogorov-smirnov, chi-square-fit-test, quantile-estimation, reliability-at-time, hazard-function, parameter-estimation]
  version: 0.1.0
  author: AeroSkills
---

# Probability Distributions (cross-cutting/numerics/probability-distributions)

Use when the task is fitting and characterizing a standard probability
distribution for aerospace engineering data analysis: estimating the
normal, lognormal, exponential, and Weibull parameters from a univariate
sample of scatter data, evaluating the pdf, cdf, quantile, reliability,
and hazard functions, and scoring the fitted model with the chi-square
and Kolmogorov-Smirnov statistics. This leaf implements the standard
closed-form distribution model layer in pure Python, stdlib only. It
pairs with cross-cutting/numerics/monte-carlo-sampling (draw samples
from the fitted distributions for a study) and
cross-cutting/numerics/uncertainty-propagation (feed the fitted
distributions into a GUM sensitivity analysis); the manufacturing side,
process control over time, belongs to manufacturing-quality/as9100/
statistical-process-control.

## Domain quick reference

- Normal fit: mu = mean(x), sigma = sample standard deviation (ddof 1).
  Density 1/(sigma sqrt(2 pi)) exp(-(x - mu)^2 / (2 sigma^2)); cdf
  0.5 (1 + erf((x - mu) / (sigma sqrt(2)))).
- Normal quantile: mu + sigma z(p), with z(p) from the Acklam rational
  approximation of the standard normal inverse cdf (module coefficients,
  error near 1e-9).
- Lognormal fit: fit the normal to ln(x); mu_ln and sigma_ln are the
  mean and sample standard deviation of the logged data. Quantile:
  exp(mu_ln + sigma_ln z(p)).
- Exponential fit: rate = 1 / mean(x). Cdf 1 - exp(-rate x); quantile
  -ln(1 - p) / rate; reliability exp(-rate t); hazard rate (constant).
- Weibull MLE: shape k solves 1/k = sum(x^k ln x) / sum(x^k) -
  mean(ln x), by bisection on k in [WEIBULL_K_MIN, WEIBULL_K_MAX] to
  WEIBULL_TOL; scale lambda = (mean(x^k))^(1/k). Cdf
  1 - exp(-(x / lambda)^k); quantile lambda (-ln(1 - p))^(1/k);
  reliability exp(-(t / lambda)^k); hazard
  (k / lambda) (t / lambda)^(k - 1), increasing when k > 1.
- Reliability R(t) = 1 - cdf(t) for every model; hazard h(t) = pdf(t) /
  R(t) where no closed form applies.
- Chi-square gof: fixed-width bins over the data range, expected counts
  from the fitted cdf, bins with expected below MIN_EXP merged; df =
  cells after merging minus one; verdict PASS when the statistic is at
  most the alpha 0.05 critical value CRIT_CHI2 for that df.
- Kolmogorov-Smirnov gof: D = max |empirical cdf - fitted cdf| over the
  sorted sample; verdict PASS when D <= KS_CRIT_COEF / sqrt(n), the
  large-sample 5% approximation.
- NACA TR-824 frames the statistical data analysis context; the
  relations above are standard engineering methodology, summary-only.

## Workflow

1. Collect the univariate scatter sample, for example time to event in
   hours, and choose the candidate distribution from the failure or
   scatter physics.
2. Fit the model with fit_distribution(data, dist) and read the params
   dict (normal {mu, sigma}, lognormal {mu_ln, sigma_ln}, exponential
   {rate}, weibull {shape, scale}).
3. Score the fit with chi2_gof(data, dist, params, bins=8) for the
   (statistic, df, verdict) tuple and ks_gof(data, dist, params) for
   (D, verdict); a verdict of PASS on both supports the chosen model.
4. Characterize the distribution: quantile(p, dist, params) for the 5,
   50, and 95 percent quantiles and cdf(x, dist, params) for exceedance
   probabilities.
5. Report the reliability and hazard at the target time t with
   reliability(t, dist, params) and hazard(t, dist, params); for the
   Weibull, k > 1 flags wear-out behavior with a rising hazard.
6. Run the whole sequence in one call with summarize(data, dist, target)
   for the parameter dict, both gof verdicts, the percentiles, and the
   reliability at target.
7. Confirm the deterministic checks with the contract test
   scripts/test_probability_distributions.py.

## Worked example

Sample S = [100, 200, 300, 400, 500] hours, time to event scatter.

- Exponential fit on S: rate = 1/300 = 0.0033333 per hour, so
  quantile(0.5) = -ln(0.5) / rate = 207.944 hours and reliability(300)
  = exp(-1) = 0.367879. The exponential hazard is constant at 0.0033333.
- Normal fit on S: mu = 300, sigma = 158.1139 (sample standard
  deviation, ddof 1). cdf(300) = 0.5 exactly and quantile(cdf(400)) =
  400.0000001, the round trip to within 1e-6.
- Weibull fit on S: shape k = 2.294, scale lambda = 339.429, median
  quantile(0.5) = 289.305 with cdf(median) = 0.5. Because k > 1 the
  hazard rises from 0.00139 at 100 h to 0.01115 at 500 h, wear-out
  behavior.
- Lognormal fit on exp([0, 0.5, 1, 1.5, 2]): mu_ln = 1.0,
  sigma_ln = 0.790569 and quantile(0.5) = e = 2.71828, the lognormal
  median.
- Goodness of fit: ks_gof on S against the fitted normal returns
  D = 0.13646 with a PASS verdict; chi2_gof needs enough cells after
  merging for a verdict, so the contract test runs it on a 60 point
  probability-grid sample where it returns stat = 0.90566, df = 6,
  verdict PASS against the 12.59 critical value.

## Pitfalls

- Fitting lifetime distributions to non-positive data: the
  exponential, Weibull, and lognormal fits require positive samples,
  and fewer than 3 points, non-finite entries, a zero sample standard
  deviation, p outside [0, 1], and t or x outside the positive domain
  all raise ValueError.
- Running chi2_gof on too few points: the post-merge degrees of freedom
  can fall outside the critical table, as it does for the 5 point
  sample (ValueError); the 60 point probability-grid sample is the one
  with enough cells (stat = 0.90566, df = 6 against 12.59).
- Trusting a ks_gof PASS without fitting the model first: the verdict
  is computed against the leaf's fitted parameters, and a clearly wrong
  model (an arithmetic sequence against an exponential fit) returns
  FAIL.
- Reading the lognormal median from mu_ln alone: on exp([0, 0.5, 1,
  1.5, 2]) the fit returns mu_ln = 1.0, sigma_ln = 0.790569, and the
  median is quantile(0.5) = e = 2.71828, not mu_ln itself.
- Treating a fitted exponential as capturing the trend: its hazard is
  constant (0.0033333), while a Weibull fit with k = 2.294 > 1 shows
  wear-out with the hazard rising from 0.00139 to 0.01115 over the
  sample - the exponential hides the shape.
- Mixing ddof conventions in the normal fit: sigma = 158.1139 is the
  sample standard deviation with ddof 1, so population-scale (ddof 0)
  expectations misread every quantile.

## Verification

- Confirm the exponential anchors on S: quantile(0.5) equals
  300 ln(2) = 207.944 within 1e-6 and reliability(300) equals exp(-1)
  within 1e-12.
- Confirm the normal anchors on S: mu = 300, sigma = 158.1139,
  cdf(300) = 0.5, and quantile(cdf(x)) round trips within 1e-6.
- Confirm the lognormal anchors on the exp([0, 0.5, 1, 1.5, 2]) sample:
  mu_ln = 1.0, sigma_ln = 0.790569, median quantile e.
- Confirm Weibull cdf(quantile(0.5)) = 0.5 and the k > 1 rising hazard.
- Confirm ks_gof returns a PASS for the fitted model and a FAIL for a
  clearly wrong model (arithmetic sequence against an exponential fit).
- Confirm chi2_gof df and verdict from the real module output on the
  60 point grid sample, and the ValueError when the post-merge df falls
  outside the critical table (as it does for the 5 point sample).
- Confirm ValueError rejection of fewer than 3 points, non-finite or
  non-positive data for lognormal/exponential/weibull, zero sample
  standard deviation, p outside [0, 1], and t or x outside the positive
  domain of a lifetime distribution.
- Run the contract test offline: python3
  scripts/test_probability_distributions.py (35 tests, deterministic).

## Related leaves

- cross-cutting/numerics/monte-carlo-sampling: draw samples from the
  fitted distributions and histogram the outputs of a study.
- cross-cutting/numerics/uncertainty-propagation: use the fitted
  distributions as the inputs of a GUM sensitivity analysis.
- cross-cutting/numerics/least-squares-regression: the paired
  measurement model layer, a straight line fit, for scatter data.
- manufacturing-quality/as9100/statistical-process-control: the process
  side, control charts over time, after the distribution layer.

## Behavior contract (gate 3)

Run the deterministic contract test (stdlib unittest, offline):

    python3 scripts/test_probability_distributions.py

The test covers the worked-example anchors (exponential rate 1/300 with
median 207.944 and reliability(300) = exp(-1), normal mu 300 and sigma
158.1139 with cdf(mu) = 0.5 and quantile round trips, lognormal mu_ln
1.0 and sigma_ln 0.790569 with median e, Weibull cdf(median) = 0.5 and
rising hazard), pdf and hazard values, chi-square and Kolmogorov-Smirnov
verdicts including a wrong-model FAIL, the summarize report, and
ValueError rejection of non-physical inputs.

## Compliance

- Standards referenced, not reproduced: NACA TR-824 is named only as
  the statistical data analysis context; all relations above are
  standard engineering methodology, summary-only per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.

Attribution

ashfordeOUashfordeOU
View sourceMore from ashfordeOU →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

694821 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →