Advertisement
Guest User

Untitled

a guest
Sep 16th, 2022
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.38 KB | Science | 0 0
  1. %simulate correlations with various risk rates
  2. n=10000;
  3. clear correlation
  4. clear cohend
  5. clear actualprop
  6. clear variance
  7. for run=1:99
  8. prop=run/100;
  9. clear data
  10. data=randn(n,1); %first column is a random normal variable
  11. data(:,2)=binornd(1,prop,[n,1]); %second column is group membership, random binary sequency of length n with probability of 1 at prop
  12. data(data(:,2)==1,1)=data(data(:,2)==1,1)+std(data(:,1)); %if group membership is 1, add 1 SD to the value
  13. actualprop(run)=sum(data(:,2)==1)./n; %let's see how many members the algorithm actually generated
  14. cohend(run)=computeCohen_d(data(data(:,2)==1,1),data(data(:,2)==0,1));
  15. correlation(run)=corr2(data(:,1),data(:,2));
  16. variance(run)=var(data(:,1));
  17. end
  18.  
  19. plot(0.01:0.01:0.99,correlation)
  20. hold on
  21. ylabel('Biomarker-disease correlation')
  22. yyaxis right
  23. plot(0.01:0.01:0.99,cohend)
  24. ylabel('Biomarker Cohen d, healthy vs. sick')
  25. xlabel('Proportion of sample with disease')
  26. set(gcf,'Color','white')
  27.  
  28. plot(0.01:0.01:0.99,variance)
  29. hold on
  30. ylabel('Biomarker variance')
  31. xlabel('Proportion of sample with disease')
  32. set(gcf,'Color','white')
  33.  
  34.  
  35. %simulating vaccines based on Vokó 2022
  36.  
  37. pfizer.persondays=651.71; % *100k
  38.  
  39.  
  40. pfizer.deaths_vacc=0.4;
  41. pfizer.deaths_unvacc=1.56;
  42. pfizer.efficacy=1-(pfizer.deaths_vacc/pfizer.deaths_unvacc);
  43. sino.deaths_vacc=0.6;
  44. sino.deaths_unvacc=1.79;
  45. sino.efficacy=1-(sino.deaths_vacc/sino.deaths_unvacc);
  46.  
  47. clear correlation_pfizer
  48. clear cohend_pfizer
  49. clear cohend_sino
  50. clear correlation_sino
  51. for run=1:9999
  52. mort=run/10000; %mortality without vaccine
  53. clear vaccdata_pfizer
  54. vaccdata_pfizer=[zeros(n/2,1)' ones(n/2,1)']'; %half the sample is vaccinated
  55. vaccdata_pfizer(vaccdata_pfizer(:,1)==0,2)=binornd(1,mort,[n/2,1]); %unvaccinated are dead in proportion to mortality
  56. vaccdata_pfizer(vaccdata_pfizer(:,1)==1,2)=binornd(1,mort*(1-pfizer.efficacy),[n/2,1]); %unvaccinated are dead in proportion to mortality
  57. clear vaccdata_sino
  58. vaccdata_sino=[zeros(n/2,1)' ones(n/2,1)']'; %half the sample is vaccinated
  59. vaccdata_sino(vaccdata_sino(:,1)==0,2)=binornd(1,mort,[n/2,1]); %unvaccinated are dead in proportion to mortality
  60. vaccdata_sino(vaccdata_sino(:,1)==1,2)=binornd(1,mort*(1-sino.efficacy),[n/2,1]); %unvaccinated are dead in proportion to mortality
  61. cohend_pfizer(run)=computeCohen_d(vaccdata_pfizer(vaccdata_pfizer(:,2)==1,1),vaccdata_pfizer(vaccdata_pfizer(:,2)==0,1));
  62. correlation_pfizer(run)=corr2(vaccdata_pfizer(:,1),vaccdata_pfizer(:,2));
  63. cohend_sino(run)=computeCohen_d(vaccdata_sino(vaccdata_sino(:,2)==1,1),vaccdata_sino(vaccdata_sino(:,2)==0,1));
  64. correlation_sino(run)=corr2(vaccdata_sino(:,1),vaccdata_sino(:,2));
  65. tetracorr_sino(run)=tetrachoric(vaccdata_sino);
  66. tetracorr_pfizer(run)=tetrachoric(vaccdata_pfizer);
  67. end
  68.  
  69. plot(0.01:0.01:99.99,correlation_pfizer)
  70. hold on
  71. plot(0.01:0.01:99.99,correlation_sino)
  72. legend('Pfizer-efficacy vaccine', 'Sinopharm-efficacy vaccine')
  73. % yyaxis right
  74. % plot(0.01:0.01:99.99,cohend_pfizer)
  75. % plot(0.01:0.01:99.99,cohend_sino)
  76. % ylabel('Cohen d')
  77. ylabel('Vaccination-mortality correlation')
  78. xlabel('Disease mortality (%)')
  79. set(gcf,'Color','white')
  80.  
  81.  
  82. %Simulating a fixed mortality rate
  83.  
  84. mort=0.0018;
  85. n2=1000000;
  86. clear vaccdata2_pfizer
  87. vaccdata_pfizer2=[zeros(n2/2,1)' ones(n2/2,1)']'; %half the sample is vaccinated
  88. vaccdata_pfizer2(vaccdata_pfizer2(:,1)==0,2)=binornd(1,mort,[n2/2,1]); %unvaccinated are dead in proportion to mortality
  89. vaccdata_pfizer2(vaccdata_pfizer2(:,1)==1,2)=binornd(1,mort*(1-pfizer.efficacy),[n2/2,1]); %unvaccinated are dead in proportion to mortality
  90. clear vaccdata2_sino
  91. vaccdata_sino2=[zeros(n2/2,1)' ones(n2/2,1)']'; %half the sample is vaccinated
  92. vaccdata_sino2(vaccdata_sino2(:,1)==0,2)=binornd(1,mort,[n2/2,1]); %unvaccinated are dead in proportion to mortality
  93. vaccdata_sino2(vaccdata_sino2(:,1)==1,2)=binornd(1,mort*(1-sino.efficacy),[n2/2,1]); %unvaccinated are dead in proportion to mortality
  94. cohend_pfizer2=computeCohen_d(vaccdata_pfizer2(vaccdata_pfizer2(:,2)==1,1),vaccdata_pfizer2(vaccdata_pfizer2(:,2)==0,1));
  95. correlation_pfizer2=corr2(vaccdata_pfizer2(:,1),vaccdata_pfizer2(:,2));
  96. cohend_sino2=computeCohen_d(vaccdata_sino2(vaccdata_sino2(:,2)==1,1),vaccdata_sino2(vaccdata_sino2(:,2)==0,1));
  97. correlation_sino2=corr2(vaccdata_sino2(:,1),vaccdata_sino2(:,2));
  98.  
  99. oddstab=crosstab(vaccdata_pfizer2(:,1),vaccdata_pfizer2(:,2));
  100. odds(oddstab)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement