Background

The Pfizer/BioNTech trial began in July, and has involved 43,538 volunteers, half of whom were given the vaccine and half of whom received a placebo. The committee issued its report when 94 of those participants had developed COVID-19 with at least one symptom. What we don’t yet know is how many of the 94 who were infected had been given the vaccine and how many were given the placebo – a vaccine can either stop you getting a virus or can mitigate the symptoms once you have it. Nor do we know how long the effect of this vaccine will last. All we know so far is that the vaccine was found to be effective 28 days after the second of the two doses.

Simple statistical analysis

n<- 43538
p1 <- 94
p2 <- 9
results = matrix(c(p1-p2,n/2,p2,n/2), nrow = 2)
mosaicplot(results)

fisher.test(results)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  results
## p-value < 2.2e-16
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##   4.745868 21.364730
## sample estimates:
## odds ratio 
##   9.444052

So if the RCT has been well designed this is a highly statistically significant result (p<0.0001).

What is the probability of someone in the placebo wing of the trial reporting symptoms?

a<-binom.test(p1, n/2)
a
## 
##  Exact binomial test
## 
## data:  p1 and n/2
## number of successes = 94, number of trials = 21769, p-value <
## 2.2e-16
## alternative hypothesis: true probability of success is not equal to 0.5
## 95 percent confidence interval:
##  0.003490805 0.005281666
## sample estimates:
## probability of success 
##            0.004318067
a$estimate * 100
## probability of success 
##              0.4318067
a$conf.int *100
## [1] 0.3490805 0.5281666
## attr(,"conf.level")
## [1] 0.95

And in the vaccine group?

a<-binom.test(p2, n/2)
a
## 
##  Exact binomial test
## 
## data:  p2 and n/2
## number of successes = 9, number of trials = 21769, p-value <
## 2.2e-16
## alternative hypothesis: true probability of success is not equal to 0.5
## 95 percent confidence interval:
##  0.0001890643 0.0007846769
## sample estimates:
## probability of success 
##           0.0004134319
a$estimate * 100
## probability of success 
##             0.04134319
a$conf.int *100
## [1] 0.01890643 0.07846769
## attr(,"conf.level")
## [1] 0.95

Share prices

 library(quantmod)
getSymbols("BNTX")
chartSeries(BNTX, theme = "white", subset = "2019")

chartSeries(BNTX, theme = "white", subset = 'last 2 months')

Share prices

 library(quantmod)
getSymbols("GSK")
chartSeries(GSK, theme = "white", subset = "2020")

chartSeries(GSK, theme = "white", subset = 'last 2 months')