<div dir="ltr"><div dir="ltr">Pieter -<div><br></div><div>The initial safety and efficacy report was published in the New England Journal of Medicine at the end of 2020, <a href="https://www.nejm.org/doi/full/10.1056/nejmoa2034577">https://www.nejm.org/doi/full/10.1056/nejmoa2034577</a>, it has smoother language and inline graphics. It also has fewer deaths in the treatment group than in the control group, but it is only reporting the first two months of the study.</div><div><br></div><div>The numbers of deaths reported in the "Adverse Reactions" section of these reports will eventually track the expected death rate of the population in the trial, and apparently they do, since there is no comment to indicate otherwise. Every clinical trial that tests the safety of a treatment is expected to agree with the baseline mortality statistics for the population in the trial.</div><div><br></div><div>If you see 14 and 15 deaths out of 22000 participants and your immediate response is that 15 is bigger than 14, then you should probably stop torturing yourself with statistical data. You're making and agonizing over distinctions that the data can never support. The number of deaths in a population over a period of time has an average value and a variance which are found by looking at large populations over long periods of time. In any particular population and period of time there are a lot trajectories that the death count can take that will be consistent with the long term average even as they wander above and below the average.</div><div><br></div><div>I append a simple simulation in julia that you can think about.</div><div><br></div><div>-- rec --</div><div><br></div><div><font face="monospace"># from <a href="https://www.cdc.gov/nchs/fastats/deaths.htm">https://www.cdc.gov/nchs/fastats/deaths.htm</a><br>death_rate = 869.7 # raw deaths per 100000 per year<br></font></div></div><div><font face="monospace"><br></font></div><div><font face="monospace"># simulate the action of a 'death rate' on a population of 'sample' individuals for 'days' of time.</font></div><div><font face="monospace"># convert the raw death rate to the death_rate_per_individual_per_day, ie death_rate/100000/365.25,</font></div><div><font face="monospace"># allocate an array of size sample*days, size coerced to an integer value,</font></div><div><font face="monospace"># fill the array with uniform random numbers.</font></div><div><span style="font-family:monospace"># if an array value is less than the death rate per person per day, score 1 death.</span><br></div><div><span style="font-family:monospace"># this overcounts because individuals can be scored as dying more than once, YODO!</span></div><div><br></div><div><font face="monospace">simulate(death_rate, sample, days) =<br> sum(rand(Int(sample*days)) .< death_rate/100000/365.25)</font></div><div><font face="monospace"><br></font></div><div><font face="monospace"># accumulate an ensemble of death rate simulation results.</font></div><div><font face="monospace"># run 'trials' simulations of 'death_rate' for 'sample' individuals for 'days' time.<br></font></div><div><font face="monospace"># accumulate an array with the number of deaths in each simulation</font></div><font face="monospace">accumulate(death_rate, sample, days, trials) =<br> [simulate(death_rate, sample, days) for i in 1:trials]</font><div><font face="monospace"><br></font></div><div><font face="monospace"># check the model: run the simulation with death_rate for 100000 individuals and 365.25 days,</font></div><div><font face="monospace"># the result averaged over multiple simulations should tend to the original death_rate.</font></div><div><font face="monospace"># we report the mean and standard error of the accumulated death counts</font></div><div><font face="monospace">julia> mean_and_std(accumulate(death_rate, 100000, 365.25, 50))<br>(868.34, 31.64188002361066)<br><br></font></div><div><font face="monospace"># That's in the ball park</font></div><div><font face="monospace"># Now what are the expected deaths per 22000 over 180 days</font></div><div><font face="monospace">julia> mean_and_std(accumulate(death_rate, 22000, 180, 50))<br>(94.3, 10.272312697891614)</font><br><font face="monospace"><br># that's nowhere close to the 14 and 15 found in the report. </font></div><div><font face="monospace"># Probably the trial population was chosen to be young and healthy, </font></div><div><font face="monospace"># so they have a lower death rate than the general population.</font></div><div><font face="monospace"># let's use 14.5 deaths per 22000 per 180 days as an estimated trial population death rate</font></div><div><font face="monospace"># but convert the value to per_100000_per_year.</font></div><div><font face="monospace">julia> est_death_rate = 14.5/22000*100000/180*365.25<br>133.74053030303028<br></font></div><div><font face="monospace"><br></font></div><div><font face="monospace"># check the model:</font></div><div><div class="gmail_quote"><font face="monospace">julia> mean_and_std(accumulate(est_death_rate, 22000, 180, 50))<br>(14.96, 3.6419326558007294)<br><br></font></div><div class="gmail_quote"><div class="gmail_attr"><font face="monospace"># in the ball park again. </font></div><div class="gmail_attr"><font face="monospace"><br></font></div><div class="gmail_attr"><font face="monospace"># So the point of this simulation isn't the exact result, it's the pairs of results that this process can generate</font></div><div class="gmail_attr"><font face="monospace"># let's stack up two sets of simulations, call the top one 'treatment' and the bottom one 'control'</font></div><div class="gmail_attr"><font face="monospace"># treatment and control are being generated by the exact same model, </font></div><div class="gmail_attr"><font face="monospace"># but their mutual relation is bouncing </font><span style="font-family:monospace">all over the place. </span></div><div class="gmail_attr"><span style="font-family:monospace"># That treatment>control or vice versa is just luck of the draw</span></div><div class="gmail_attr"><span style="font-family:monospace"><br></span></div><div class="gmail_attr"><font face="monospace">julia> [accumulate(est_death_rate, 22000, 180, 20), accumulate(est_death_rate, 22000, 180, 20) ]<br></font></div><div class="gmail_attr"><font face="monospace">2-element Vector{Vector{Int64}}:<br> [12, 12, 13, 11, 22, 13, 14, 16, 13, 14, 21, 17, 13, 14, 19, 11, 20, 11, 9, 19]<br> [11, 14, 15, 17, 11, 19, 17, 12, 16, 14, 18, 16, 11, 16, 12, 16, 10, 14, 17, 13]</font><br></div><div class="gmail_attr"><font face="monospace"><br></font></div><div class="gmail_attr"><font face="monospace"><br></font></div><div class="gmail_attr">On Wed, Sep 15, 2021 at 2:25 AM Pieter Steenekamp <<a href="mailto:pieters@randcontrols.co.za">pieters@randcontrols.co.za</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">In the Phizer report "Six Month Safety and Efficacy of the BNT162b2 mRNA COVID-19 Vaccine" (<a href="https://www.medrxiv.org/content/10.1101/2021.07.28.21261159v1.full.pdf" target="_blank">https://www.medrxiv.org/content/10.1101/2021.07.28.21261159v1.full.pdf</a>) , I picked up the following:<br><br>"During the blinded, controlled period, 15 BNT162b2 and 14 placebo recipients died" <br><br>Does this mean the Phizer vaccine did not result in fewer total deaths in the vaccinated group compared to the placebo unvaccinated group?<br><br>I sort of can't believe this, I obviously miss something.<br><br>But of course, there are clear benefits in that the reported vaccine efficacy was 91.3%</div>
- .... . -..-. . -. -.. -..-. .. ... -..-. .... . .-. .<br>
FRIAM Applied Complexity Group listserv<br>
Zoom Fridays 9:30a-12p Mtn GMT-6 <a href="http://bit.ly/virtualfriam" rel="noreferrer" target="_blank">bit.ly/virtualfriam</a><br>
un/subscribe <a href="http://redfish.com/mailman/listinfo/friam_redfish.com" rel="noreferrer" target="_blank">http://redfish.com/mailman/listinfo/friam_redfish.com</a><br>
FRIAM-COMIC <a href="http://friam-comic.blogspot.com/" rel="noreferrer" target="_blank">http://friam-comic.blogspot.com/</a><br>
archives: <a href="http://friam.471366.n2.nabble.com/" rel="noreferrer" target="_blank">http://friam.471366.n2.nabble.com/</a><br>
</blockquote></div></div></div>