PRR is a commonly used metric for safety signal detection. We can denote the vaccine-symptom pairs from the VAERS database as many \(2 \times 2\) contingency tables:
Target vaccine | Target symptom | All other symptoms | Total |
---|---|---|---|
Yes | \(n_{ij}\) | \(n_i - n_{ij}\) | \(n_i\) |
No | \(n_j - n_{ij}\) | \(n - n_i - n_j + n_{ij}\) | \(n - n_i\) |
Total | \(n_j\) | \(n - n_j\) | \(n\) |
In the table, \(n_i = \sum_j n_{ij}\), \(n_j = \sum_i n_{ij}\). They are the marginal sums over all other symptoms or vaccines for each unique vaccine \(i\) and symptom \(j\). The proportional reporting ratio (PRR) (Evans, Waller, and Davis 2001) for each vaccine-symptom pair is defined as
\[ PRR_{ij} = \frac{n_{ij}}{E_{ij}} \]
where
\[ E_{ij} = \frac{n_j (n_i - n_{ij})}{n - n_{ij}}. \]
\(PRR_{ij}\) measures the disproportionality in rates of the target symptom \(j\) to all other symptoms for exposure to vaccine \(i\) in the contingency table. It assumes that the reports of symptom \(j\) are independent to all other symptoms on vaccine \(i\), while this can turned out to be a quite strong assumption in reality. A relatively higher value of PRR indicates stronger association between the vaccine and the symptom.
Load the packages for PRR-based singal detection and ranking:
suppressMessages(library("PhViD"))
library("kableExtra")
Load the preprocessed VAERS data and transform it into the analyzable format:
df_p <- readRDS("data-processed/df_p.rds")
df_p <- df_p[, 1:3]
df_v <- as.PhViD(df_p, MARGIN.THRES = 10)
We calculate the Proportional Reporting Ratio (PRR) (Evans, Waller, and Davis 2001) and the ranking statistic — lower bound of the 95% two-sided confidence interval of log(PRR):
lst_prr <- PRR(df_v, MIN.n11 = 10, DECISION = 3, RANKSTAT = 2)
df_prr <- lst_prr$SIGNALS[order(lst_prr$SIGNALS$"LB95(log(PRR))", decreasing = TRUE), 1:8]
row.names(df_prr) <- NULL
View the top ranked vaccine-adverse event pairs:
head(df_prr) %>% kable() %>% kable_styling()
drug code | event effect | count | expected count | LB95(log(PRR)) | PRR | drug margin | event margin |
---|---|---|---|---|---|---|---|
INFLUENZA (SEASONAL) (FLUCELVAX) | Product use issue | 57 | 0.0863973 | 6.873915 | 1410.7090 | 2765 | 107 |
INFLUENZA (SEASONAL) (AFLURIA) | Multiple use of single-use product | 49 | 0.3842040 | 6.772886 | 6327.8212 | 26313 | 50 |
HPV (CERVARIX) | Product use issue | 22 | 0.0236538 | 6.601841 | 1170.5511 | 757 | 107 |
SMALLPOX (DRYVAX) | Cow pox | 125 | 0.6461921 | 6.443733 | 922.3838 | 14005 | 158 |
INFLUENZA (SEASONAL) (AFLURIA) | HIV antigen negative | 48 | 0.4149403 | 6.091730 | 1033.1137 | 26313 | 54 |
SMALLPOX (ACAM2000) | Pericardial disease | 64 | 0.2820515 | 5.936602 | 555.5036 | 8943 | 108 |
Evans, Stephen JW, Patrick C Waller, and S Davis. 2001. “Use of Proportional Reporting Ratios (Prrs) for Signal Generation from Spontaneous Adverse Drug Reaction Reports.” Pharmacoepidemiology and Drug Safety 10 (6): 483–86.
If you see mistakes or want to suggest changes, please create an issue on the source repository.