Agent skill

sensitivity-analyst

Sensitivity analysis frameworks and assumption-testing methods

brycew6m4,252★ · +31/wk · 3 repos on radarProfile →
claude-codeNOASSERTION
Install
npx skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill sensitivity-analyst --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 1
SKILL.md size: 18 KB
Bundled scripts: none
Path: skills/26-Data-Wise-scholar/skills/research/sensitivity-analyst/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 3,244
Language: Stata
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

A comprehensive framework of sensitivity analysis techniques for causal inference and mediation studies, including unmeasured confounding, E-values, tipping point analysis, measurement error sensitivity, model misspecification checks, Rosenbaum bounds, and mediation sensitivity. It offers concrete R code examples and concrete steps to assess robustness of causal conclusions.

How it works

  • Unmeasured Confounding: Uses a Bias Factor framework with gamma, delta, and rho parameters; provides an R function sensitivity_unmeasured that builds a grid of gamma and delta, computes bias_factor, adjusts estimates, and identifies tipping points where the adjusted CI crosses zero.
  • E-Values: Provides a compute_evalue function that converts the effect measure to RR scale when possible, computes the E-value and E-value CI, and yields an interpretation. Also includes formulas for RR, OR, HR, and SMD cases and an accompanying message.
  • Tipping Point Analysis: Includes plot_tipping_point to create a contour plot and identify boundaries where conclusions change, with gamma/delta axes and adjusted estimates.
  • Measurement Error Sensitivity: Contains sensitivity_misclassification to explore misclassification of a mediator, computing attenuation, corrected effect and SE, CIs, and flags where conclusions change.
  • Model Misspecification: Provides specification_curve to run a grid of covariate sets and model types, fit mediator and outcome models, extract indirect paths a and b, and summarize multiple specifications (median, mean, sd, min, max, proportion positive).
  • Rosenbaum Bounds: Implements rosenbaum_bounds to compute upper and lower p-value bounds across a gamma range, using a signed rank statistic, and reports a critical gamma with interpretation.
  • Mediation Sensitivity: Offers sensitivity_mediation to adjust indirect effects by a rho parameter, compute adjusted indirect, CIs, and significance, enabling assessment of sequential ignorability concerns.

When to use it

Use this skill when evaluating robustness of causal or mediation findings against hidden biases, unmeasured confounding, measurement error, model misspecification, or sensitivity to assumptions. It targets scenarios like evaluating unmeasured confounding strength, seeking tipping points, or assessing mediation robustness.

What it can touch

  • Tools: claude-code (declared) is referenced for execution support in the skill. The provided R implementations are standalone code blocks intended for use within an R environment.

Caveats

  • License: NOASSERTION
  • The skill provides code templates and methodological guidance but does not guarantee any specific empirical outcomes. Users should ensure their data meet the assumptions behind each method (e.g., rare outcomes for certain E-value approximations, appropriate model types for specification curve analyses).
From the SKILL.md

# Sensitivity Analyst **Comprehensive sensitivity analysis frameworks for causal inference and mediation studies** Use this skill when working on: unmeasured confounding assessment, E-values, tipping point analysis, measurement error sensitivity, model misspecification checks, Rosenbaum bounds, or any robustness evaluation for causal claims. --- ## Unmeasured Confounding ### The Fundamental Problem In causal inference, we can never directly test the assumption of no unmeasured confounding. Sensitivity analysis quantifies: "How strong would unmeasured confounding need to be to explain away our findings?" ### Bias Factor Framework For an unmeasured confounder $U$ affecting both treatment $A$ and outcome $Y$: $$\text{Bias} = \frac{E[Y \mid A=1, U=1] - E[Y \mid A=1, U=0]}{E[Y \mid A=0, U=1] - E[Y \mid A=0, U=0]} \times \frac{P(U=1 \mid A=1) - P(U=1 \mid A=0)}{1}$$ The observed effect $\hat{\theta}$ relates to the true effect $\theta$ via: $$\hat{\theta} = \theta \times \text{Bias Factor}$$ ### Sensitivity Parameters | Parameter | Definition | Range | |-----------|------------|-------| | $\gamma$ | Odds ratio for U-A association | $[1, \infty)$ | | $\delta$ | Odds ratio for U-Y associat

What's inside
Steps it walks through
  1. Unmeasured Confounding
  2. The Fundamental Problem
  3. Bias Factor Framework
  4. Sensitivity Parameters
  5. R Implementation
  6. E-Values
  7. E-Value Definition
  8. Interpretation Guidelines
  9. E-Value for Different Effect Measures
  10. Tipping Point Analysis
  11. Concept
  12. Tipping Point Types
  13. Visualization
  14. Measurement Error Sensitivity
More from Auto-Empirical-Research-Skills
All skills →
About this skill
What does the sensitivity-analyst skill do?

Sensitivity analysis frameworks and assumption-testing methods

How do I install it?

Run `npx skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill sensitivity-analyst --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From brycewang-stanford/Auto-Empirical-Research-Skills, a repository with 3,244 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going