Epidemiology GuideSAFE
🔬 A curated collection of 23,000+ agent skills for empirical research across 8 social science disciplines. | 精选 23,000+ AI Agent 技能库,覆盖8大社会科学学科的实证研究。CoPaper.AI 20分钟完成一篇可复现的规范实证论文,并支持用户上传 Skills。-- Maintained by CoPaper.AI from Stanford REAP.
Overview
🔬 A curated collection of 23,000+ agent skills for empirical research across 8 social science disciplines. | 精选 23,000+ AI Agent 技能库,覆盖8大社会科学学科的实证研究。CoPaper.AI 20分钟完成一篇可复现的规范实证论文,并支持用户上传 Skills。-- Maintained by CoPaper.AI from Stanford REAP.
e1ba289846fdOBSERVED · 2026-10-08Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| openclaw | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
---
name: epidemiology-guide
description: "Epidemiological study designs, measures of association, and public health ana..."
metadata:
openclaw:
emoji: "🔬"
category: "domains"
subcategory: "biomedical"
keywords: ["epidemiology", "public health", "evidence-based medicine", "clinical medicine", "disease surveillance"]
source: "wentor"
---
# Epidemiology Guide
A skill for designing and analyzing epidemiological studies. Covers study design selection, measures of disease frequency and association, bias assessment, and public health data analysis methods.
## Study Design Selection
### Design Hierarchy
```
Evidence Strength
|
Systematic Review / Meta-Analysis (Highest)
|
Randomized Controlled Trial
|
Cohort Study (Prospective)
|
Case-Control Study
|
Cross-Sectional Study
|
Case Report / Case Series (Lowest)
```
### When to Use Each Design
| Design | Research Question | Time | Cost | Bias Risk |
|--------|------------------|------|------|-----------|
| RCT | Does intervention X prevent outcome Y? | Years | Very high | Lowest |
| Prospective Cohort | Does exposure X increase risk of Y? | Years | High | Moderate |
| Retrospective Cohort | Historical exposure-outcome relationship? | Months | Moderate | Moderate-High |
| Case-Control | What exposures are associated with rare disease? | Months | Low | High |
| Cross-Sectional | What is the prevalence of X? | Weeks | Low | High |
| Ecological | Do population-level factors correlate with disease? | Weeks | Very low | Very high |
## Measures of Disease Frequency
```python
import numpy as np
def compute_measures(cases: int, population: int,
person_time: float = None,
period_years: float = 1.0) -> dict:
"""
Compute basic epidemiological measures.
Args:
cases: Number of new cases (for incidence) or existing cases (for prevalence)
population: Population at risk
person_time: Person-years of follow-up (for incidence rate)
period_years: Time period in years (for cumulative incidence)
"""
measures = {}
# Point prevalence
measures['prevalence'] = {
'value': cases / population,
'per_1000': (cases / population) * 1000,
'formula': 'cases / population at a point in time'
}
# Cumulative incidence (risk)
measures['cumulative_incidence'] = {
'value': cases / population,
'per_1000': (cases / population) * 1000,
'period_years': period_years,
'formula': 'new cases / population at risk during time period'
}
# Incidence rate (if person-time available)
if person_time:
measures['incidence_rate'] = {
'value': cases / person_time,
'per_1000_py': (cases / person_time) * 1000,
'formula': 'new cases / person-time at risk'
}
return measures
```
## Measures of Association
### Risk Ratio, Odds Ratio, and Attributable Risk
```python
def measures_of_association(a: int, b: int, c: int, d: int) -> dict:
"""
Compute epidemiological measures of association from a 2x2 table.
Disease+ Disease-
Exposed+ a b a+b
Exposed- c d c+d
a+c b+d N
Args:
a: Exposed with disease
b: Exposed without disease
c: Unexposed with disease
d: Unexposed without disease
"""
# Risk in exposed and unexposed
risk_exposed = a / (a + b)
risk_unexposed = c / (c + d)
# Risk Ratio (Relative Risk)
rr = risk_exposed / risk_unexposed
ln_rr = np.log(rr)
se_ln_rr = np.sqrt(1/a - 1/(a+b) + 1/c - 1/(c+d))
rr_ci = (np.exp(ln_rr - 1.96*se_ln_rr), np.exp(ln_rr + 1.96*se_ln_rr))
# Odds Ratio
or_val = (a * d) / (b * c)
ln_or = np.log(or_val)
se_ln_or = np.sqrt(1/a + 1/b + 1/c + 1/d)
or_ci = (np.exp(ln_or - 1.96*se_ln_or), np.exp(ln_or + 1.96*se_ln_or))
# Attributable Risk (Risk Difference)
ar = risk_exposed - risk_unexposed
se_ar = np.sqrt(risk_exposed*(1-risk_exposed)/(a+b) +
risk_unexposed*(1-risk_unexposed)/(c+d))
ar_ci = (ar - 1.96*se_ar, ar + 1.96*se_ar)
# Attributable Fraction in Exposed
af_exposed = (rr - 1) / rr
# Population Attributable Fraction
prevalence_exposure = (a + b) / (a + b + c + d)
paf = prevalence_exposure * (rr - 1) / (prevalence_exposure * (rr - 1) + 1)
return {
'risk_ratio': {'value': round(rr, 3), 'ci_95': tuple(round(x, 3) for x in rr_ci)},
'odds_ratio': {'value': round(or_val, 3), 'ci_95': tuple(round(x, 3) for x in or_ci)},
'risk_difference': {'value': round(ar, 4), 'ci_95': tuple(round(x, 4) for x in ar_ci)},
'attributable_fraction_exposed': round(af_exposed, 3),
'population_attributable_fraction': round(paf, 3),
'number_needed_to_harm': round(1/ar, 1) if ar > 0 else None
}
# Example: smoking and lung cancer
result = measures_of_association(a=80, b=920, c=10, d=990)
print(f"RR: {result['risk_ratio']['value']} ({result['risk_ratio']['ci_95']})")
print(f"OR: {result['odds_ratio']['value']} ({result['odds_ratio']['ci_95']})")
print(f"PAF: {result['population_attributable_fraction']}")
```
## Bias Assessment
### Types of Bias and Mitigation
| Bias Type | Description | Mitigation Strategy |
|-----------|------------|-------------------|
| Selection bias | Non-random sample selection | Random sampling, matching |
| Information bias | Measurement error in exposure/outcome | Validated instruments, blinding |
| Recall bias | Differential recall by disease status | Use records, not self-report |
| Confounding | Third variable affects both exposure and outcome | StratificatTrust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
e1ba289846fdfull audit observations/trust-audit/skill/brycewang-stanford__epidemiology-guide.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | e1ba289846fd | SAFE | B | 89 | first audit |
Questions
What does the Epidemiology Guide skill do?
🔬 A curated collection of 23,000+ agent skills for empirical research across 8 social science disciplines. | 精选 23,000+ AI Agent 技能库,覆盖8大社会科学学科的实证研究。CoPaper.AI 20分钟完成一篇可复现的规范实证论文,并支持用户上传 Skills。-- Maintained by CoPaper.AI from Stanford REAP.
Is Epidemiology Guide safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Epidemiology Guide access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does Epidemiology Guide work with?
Its documentation mentions openclaw. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (e1ba289846fd), read on 2026-10-08. The repository is watched, and a new audit runs when it changes — this is the first audit.