bayesian-estimation
This skill covers Bayesian estimation and inference in quantitative social science
Install / Use
npx skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill bayesian-estimationInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Our assessment of bayesian-estimation
bayesian-estimation scores 91/100 on our quality scale, 484th of 2,569 Development & Engineering skills we index (top 19%).
Its SKILL.md is 13 KB long, well organised into 17 sections with 3 code examples: a thorough specification that gives an agent plenty to work with.
With 4,360 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 3 days ago, so bayesian-estimation is actively maintained.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 88/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.
Automated pattern scan on 2026-09-27. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
bayesian-estimation compared with similar skills
All 4 of these similar skills score higher than bayesian-estimation; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| bayesian-estimation (this skill)by brycewang-stanford | 91 | 4.4k | 3d ago | SKILL.md |
| ai-job-searchby MadsLorentzen | 100 | 44.0k | 6d ago | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 41.7k | today | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 4d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 4d ago | SKILL.md |
Frequently asked questions
- How do I install bayesian-estimation?
- Run
npx skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill bayesian-estimation. The install tabs above show the steps for each supported agent. - Which AI agents does bayesian-estimation work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is bayesian-estimation safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It declares no license and scores 88/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is bayesian-estimation still maintained?
- The repository was last updated 3 days ago, so bayesian-estimation is actively maintained.
Skill content
View source on GitHubname: bayesian-estimation argument-hint: "<model or estimation problem>" description: >- This skill covers Bayesian estimation and inference in quantitative social science. Use when the user is specifying priors, running MCMC, diagnosing chain convergence, or reporting posterior summaries — including hierarchical models, Bayesian structural models, and small-sample settings where priors regularize. Triggers on "Bayesian estimation", "Bayesian inference", "MCMC", "Markov chain Monte Carlo", "Stan", "PyMC", "NumPyro", "prior", "posterior", "credible interval", "Bayesian structural", "Bayesian BLP", "Bayesian DSGE", "hierarchical model", "random effects Bayesian", "posterior predictive check", "Bayes factor", "prior predictive check", "NUTS", "HMC", "Hamiltonian Monte Carlo", "R-hat", "rhat", "effective sample size", "ESS", "Bayesian calibration", "posterior distribution", "prior elicitation", "weakly informative prior", "brms", "rstanarm", "cmdstanpy", "pymc", "arviz".
Bayesian Estimation
Reference for Bayesian estimation in quantitative social science: from prior elicitation to MCMC implementation to posterior reporting. Covers the full workflow of specifying a Bayesian model, running inference, diagnosing convergence, and communicating results — with applications to structural models, hierarchical designs, and small-sample settings.
When to Use This Skill
Use when the user is:
- Specifying priors and setting up a Bayesian model in Stan, PyMC, NumPyro, brms, or rstanarm
- Running MCMC and diagnosing R-hat, ESS, divergences, or trace plots
- Implementing hierarchical (multilevel) models with partial pooling
- Adding Bayesian inference to a structural model (BLP, dynamic discrete choice, DSGE)
- Reporting credible intervals, posterior predictive checks, or model comparison statistics
- Eliciting priors from calibration targets or literature benchmarks
- Debugging sampling pathologies: divergences, low acceptance rates, poor mixing
Skip when:
- The model is large-N and well-identified (frequentist MLE/GMM is more efficient and faster)
- The task is pure structural estimation without Bayesian components (use
structural-modelingskill) - The user needs classical causal inference (use
causal-inferenceskill)
When to Use Bayesian Estimation
Advantages
Small samples: Priors act as regularization. With N < 100 observations and several parameters, MLE can overfit or fail to converge. A weakly informative prior is often equivalent to several additional observations of prior knowledge.
Hierarchical structure: When data have natural groupings (markets, countries, firms), Bayesian partial pooling is more efficient than either pooling all groups (ignores variation) or fitting each group separately (ignores shared structure). Random effects Bayesian models borrow strength across groups.
Uncertainty propagation: The posterior is a full distribution. Downstream quantities (elasticities, welfare changes, counterfactuals) inherit full uncertainty without a delta method approximation.
Natural model comparison: Posterior predictive checks and LOO-CV are cleaner than frequentist test-based model selection, especially for non-nested models.
Constrained parameters: Parameters with domain restrictions (discount factors in [0,1], positive variances, simplex probability vectors) are handled naturally via transformed parameter blocks and appropriate priors.
When to Prefer Frequentist
- Large N (N > 10,000): Priors become irrelevant as the likelihood dominates; MLE or GMM is faster
- Simple models where MLE is efficient (OLS, logit, Poisson): No benefit from Bayesian approach
- Publication venues requiring classical standard errors and p-values (some applied micro journals)
- Models requiring solving equilibrium constraints (NFXP/MPEC) at each draw — computationally prohibitive
Comparison Table
| Scenario | Bayesian | Frequentist | |----------|----------|-------------| | N = 50, 10 parameters | Preferred — priors regularize | MLE may not converge | | N = 100,000, 5 parameters | Either works; MLE faster | Preferred — priors irrelevant | | Hierarchical / multi-group | Preferred — partial pooling | Mixed effects via ML is comparable | | Uncertainty in counterfactuals | Preferred — natural propagation | Delta method or bootstrap | | Structural model, large state space | Difficult — MCMC over full model | Preferred — NFXP/MPEC more tractable | | Non-standard likelihood | Either — depends on differentiability | GMM often more flexible | | Model comparison, non-nested | LOO-CV / WAIC | AIC/BIC, Vuong test | | Publication: applied micro top-5 | Use sparingly; justify carefully | Standard expectation |
Prior Elicitation
The core task: encode genuine prior knowledge without overwhelming the likelihood.
Weakly Informative Defaults
These encode vague knowledge — parameters are unlikely to be astronomically large — without strongly influencing the posterior when data are informative. These follow Gelman et al. (2008, 2017) recommendations:
| Parameter type | Recommended prior | Rationale | |----------------|-------------------|-----------| | Location / intercept (raw scale) | Normal(0, 10) | Very diffuse; most applications won't have effects > 10 SDs | | Location (standardized predictors) | Normal(0, 2.5) | Rules out extreme effects; standard for logistic regression | | Scale / variance | HalfNormal(1) or Exponential(1) | Positive, concentrates near zero but with wide right tail | | Log-scale parameters (elasticities) | Normal(0, 1) on log scale | Implies elasticity plausibly between 0.14 and 7.4 | | Correlation matrices | LKJ(2) | Shrinks toward identity; LKJ(1) is uniform on correlations | | Simplex (probability vectors) | Dirichlet(1, ..., 1) | Uniform over simplex |
Informative Priors from Calibration Targets
When the literature provides benchmark values, use them as prior means with SD reflecting plausible variation:
- Use the
methods-exploreragent to find reference parameter values - Set prior mean to the benchmark: e.g., price elasticity of -1.2 from literature
- Set prior SD to cover the plausible range: if literature range is [-0.5, -2.0], use Normal(-1.2, 0.4) so that the range is roughly within 2 SDs
- Verify with a prior predictive check that implied observables are plausible
# Example: Informative prior on price elasticity from literature
# Literature: price elasticity typically -0.5 to -2.0 (mean around -1.2)
import pymc as pm
with pm.Model() as demand_model:
alpha = pm.Normal("alpha", mu=-1.2, sigma=0.4) # price elasticity
beta_inc = pm.Normal("beta_inc", mu=0, sigma=1.0) # income elasticity
sigma = pm.HalfNormal("sigma", sigma=1.0)
Prior predictive decision rules:
- Prior implies impossible values (negative income, market share > 1) → constrain or use transformed parameter
- Prior predictive range is > 100x observed data range → prior too diffuse; tighten it
- Prior predictive range is narrower than observed variation → prior too tight; loosen it
Prior sensitivity analysis: After estimation, refit with prior SD at 0.5x and 2x. If the posterior mean shifts by more than 0.5 SD, the prior is informative — report sensitivity results.
MCMC Quick Reference
Key thresholds for diagnosing MCMC convergence. For full code and detailed guidance, see references/diagnostics-guide.md.
| Diagnostic | Good | Borderline | Bad | Action if Bad | |------------|------|-----------|-----|---------------| | R-hat | < 1.01 | 1.01–1.05 | >= 1.05 | Run longer chains; reparametrize | | Bulk ESS | > 400 | 200–400 | < 200 | Increase draws; reduce autocorrelation | | Tail ESS | > 1000 | 400–1000 | < 400 | Increase draws; focus on scale parameters | | Divergences | 0 | — | Any | Raise target_accept to 0.9–0.95; non-centered parametrization | | BFMI | > 0.3 | 0.2–0.3 | < 0.2 | Reparametrize; check prior scales |
Convergence checklist (run before every reported result):
- [ ] R-hat < 1.01 for all parameters
- [ ] Bulk ESS > 400 for all parameters
- [ ] Tail ESS > 400 (ideally > 1000 for reported credible intervals)
- [ ] Zero divergences
- [ ] BFMI > 0.2
- [ ] Trace plots show fuzzy caterpillar pattern
import arviz as az
summary = az.summary(idata, var_names=["beta", "sigma"])
# Check: r_hat < 1.01, ess_bulk > 400, ess_tail > 400
divergences = idata.sample_stats["diverging"].values.sum()
assert divergences == 0, f"{divergences} divergences — fix before reporting"
For full diagnostic code including trace plots, pair plots, and BFMI computation, see references/diagnostics-guide.md.
Implementation Quick Start
A minimal PyMC example for hierarchical demand. For full Stan, PyMC, NumPyro, and brms examples (including Bayesian IV, reparametrization patterns, and Cholesky covariance), see references/implementation.md.
import pymc as pm
import arviz as az
with pm.Model() as hierarchical_demand:
# Hyperpriors
mu_beta = pm.Normal("mu_beta", mu=-1.0, sigma=0.5)
sigma_beta = pm.HalfNormal("sigma_beta", sigma=0.3)
# Non-centered parametrization — always use this for hierarchical models
beta_raw = pm.Normal("beta_raw", mu=0, sigma=1, shape=n_markets)
beta = pm.Deterministic("beta", mu_beta + sigma_beta * beta_raw)
sigma = pm.HalfNormal("sigma", sigma=1.0)
mu = beta[market_idx] * log_price
log_quantity = pm.Normal("log_quantity", mu=mu, sigma=sigma, observed=Y_obs)
trace = pm.sample(
draws=2000, tune=1000, chains=4,
target_accept=0.9, # raise if divergences appear
random_seed=42, return_inferencedata=True
)
# Always run diagnostics immediately after sampling
print(az.summary(trace, var_names=["beta", "mu_beta", "sigma_beta"]))
Framework selection guide:
| Framework | Best for | |-----------|----------| | Stan (cmdstanpy) | Complex custom models, structural work, production code | | PyMC | Python-native workflows, hierarchical models, rapid iteration | | NumPyro | Large models, GPU acceleration, JAX integration | | brms / rstanarm | R users, standard hierarchical families, formula interface |
For Bayesian structural models (BLP, dynamic discrete choice, hierarchical DiD) and reparametrization strategies, see references/structural-models.md.
Integration with compound-science
Agents to invoke alongside Bayesian estimation:
numerical-auditor: Review MCMC convergence diagnostics — R-hat, ESS, divergences. Report format should include all five convergence metrics.econometric-reviewer: Review prior elicitation strategy, sensitivity analysis, and whether priors are consistent with identification. Use for prior predictive checks and moment-matching to literature targets.methods-explorer: Find literature calibration targets to set informative prior means. Ask for point estimates and uncertainty ranges, not just means.econometric-reviewer: Verify that reported posterior means, credible intervals, and model comparison statistics match the actual ArviZ/Stan output.
Related skills:
structural-modeling: Frequentist counterpart — NFXP, MPEC, BLP, dynamic discrete choice. Use Bayesian skills on top of the structural model framework when small samples or hierarchical structure warrants it.causal-inference: For reduced-form causal methods. Bayesian DiD and RD designs follow the same identification logic; the Bayesian layer adds partial pooling and uncertainty propagation.
Extensions to Bayesian context:
empirical-playbookskill (diagnostic-battery.md): Convergence diagnostics (R-hat, ESS, divergences) are a subset of the full diagnostic batterynumerical-auditoragent: Prior predictive simulation is a special case of the Monte Carlo simulation workflowempirical-playbookskill (sensitivity-analysis.md): Prior sensitivity analysis (vary prior SD 0.5x and 2x) is a natural robustness check for Bayesian models
Truncated for display — read the full file on GitHub.
Related Skills
ai-job-search
44.0kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
41.7kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
