FAERS Signal Detection

A pharmacovigilance disproportionality analysis — PRR, ROR, chi-squared, and Evans criteria — over the full FAERS database via the openFDA API, validated on the known warfarin-haemorrhage signal (PRR ~5) and checked against negative controls.

What it does

Takes a drug–event pair, queries the openFDA API across the full FAERS database, and computes:

  • Proportional Reporting Ratio (PRR)
  • Reporting Odds Ratio (ROR)
  • Chi-squared statistic
  • Evans criteria (the standard threshold combination: PRR ≥ 2, n ≥ 3, chi-squared ≥ 4)

Validation

I validated the method on warfarin and haemorrhage — a well-established signal in the pharmacovigilance literature. The analysis returned a PRR of approximately 5, consistent with published estimates.

From there I stress-tested it: running the same signal across different seriousness filters (all reports, hospitalisation only, death only) and across multiple years, to see how the estimate moved. I also ran it against negative controls — drug–event pairs with no known association — to check the false-positive rate.

Stack

Python · pandas · openFDA API