library(tidyverse)

Synthetic MACE dataset

Question 1 :

  • Charger les données
data_MACE = read_csv2("./Data/data_MACE.csv")
Using ',' as decimal and '.' as grouping mark. Use read_delim() for more control.
Parsed with column specification:
cols(
  prior_OAD = col_character(),
  metformine_treat = col_character(),
  MACE = col_character()
)
glimpse(data_MACE)
Observations: 11,000
Variables: 3
$ prior_OAD        <chr> "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "...
$ metformine_treat <chr> "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "...
$ MACE             <chr> "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "yes", "...
  • Estimer la probabilité d’avoir un MACE parmi les personnes traitées avec la metformine et parmi ceux traités par sitagliptine.

Correction

data_MACE %>% count(MACE) %>%
  mutate(freq = n / sum(n))

Correction

data_MACE %>% count(metformine_treat) %>% mutate(freq = n / sum(n))

Correction

data_MACE %>% group_by(metformine_treat,MACE) %>% summarize(n= n())  %>%  mutate(freq = n / sum(n))
print(c("proba of MACE among metformine yes",350/4000))
[1] "proba of MACE among metformine yes" "0.0875"                            
print(c("proba of MACE among metformine no",round(500/7000,digits = 2)))
[1] "proba of MACE among metformine no" "0.07"                             

Question 2 :

  • Estimer la probabilité d’avoir eu un précédent traitement par OAD parmi les personnes ayant reçu de la metformine, même chose pour les personnes n’ayant pas reçu de la metformine

Correction

data_MACE_metformine = filter(data_MACE,metformine_treat == "yes")
data_MACE_metformine %>% group_by(prior_OAD)  %>% summarise(n = n()) %>%
  mutate(freq = n / sum(n))

Correction

data_MACE_no_metformine = filter(data_MACE,metformine_treat == "no")
data_MACE_no_metformine %>% group_by(prior_OAD) %>% summarise(n = n()) %>%
  mutate(freq = n / sum(n))
  • Estimer la probabilité d’avoir eu un MACE pour les personnes ayant reçu précédent traitement par OAD, même chose pour les personnes n’ayant pas reçu précédemment d’OAD

Correction

data_MACE_prior_OAD = filter(data_MACE,prior_OAD == "yes")
data_MACE_prior_OAD %>% group_by(MACE) %>% summarise(n = n()) %>%
  mutate(freq = n / sum(n))

Correction

data_MACE_no_prior_OAD = filter(data_MACE,prior_OAD == "no")
data_MACE_no_prior_OAD %>% group_by(MACE) %>% summarise(n = n()) %>%
  mutate(freq = n / sum(n))

Question 3

  • Appliquer la méthode de stratification pour calculer la probabilité d’avoir un MACE si tout le monde avait reçu de la metformine, même chose si personne n’en avait reçu.

Correction

data_freq = data_MACE %>% group_by(metformine_treat,prior_OAD,MACE) %>% summarise(n = n())  %>%
  mutate(freq = n / sum(n))
data_freq

Correction

proba_prior_OAD = data_MACE %>% group_by(prior_OAD) %>% summarise(n = n())  %>%
  mutate(freq = n / sum(n))
proba_prior_OAD

Correction

expected_proba_MACE_alltreated = filter(data_freq,metformine_treat == "yes",prior_OAD=="yes",MACE=="yes")$freq * proba_prior_OAD$freq[2] +
  filter(data_freq,metformine_treat == "yes",prior_OAD=="no",MACE=="yes")$freq  * proba_prior_OAD$freq[1]
expected_proba_MACE_alltreated
[1] 0.07727273

Correction

expected_proba_MACE_notreated = filter(data_freq,metformine_treat == "no",prior_OAD=="yes",MACE=="yes")$freq * proba_prior_OAD$freq[2] +
  filter(data_freq,metformine_treat == "no",prior_OAD=="no",MACE=="yes")$freq  * proba_prior_OAD$freq[1]
expected_proba_MACE_notreated
  • Puis l’estimer l’effect causal de du traitement (metformine ou non) sur le risque de MACE.

Correction

expected_proba_MACE_alltreated - expected_proba_MACE_notreated
LS0tCnRpdGxlOiAiRXhlbXBsZXMgcG91ciBsYSBjYXVzYWxpdMOpIDogY29uZnVzaW9uIGV0IHN0cmF0aWZpY2F0aW9uIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKYGBgCgojIFN5bnRoZXRpYyBNQUNFIGRhdGFzZXQKIyMjIFF1ZXN0aW9uIDEgOiAKLSBDaGFyZ2VyIGxlcyBkb25uw6llcwpgYGB7cn0KZGF0YV9NQUNFID0gcmVhZF9jc3YyKCIuL0RhdGEvZGF0YV9NQUNFLmNzdiIpCmdsaW1wc2UoZGF0YV9NQUNFKQpgYGAKCgotIEVzdGltZXIgbGEgcHJvYmFiaWxpdMOpIGQnYXZvaXIgdW4gYE1BQ0VgIHBhcm1pIGxlcyBwZXJzb25uZXMgdHJhaXTDqWVzIGF2ZWMgbGEgbWV0Zm9ybWluZSBldCBwYXJtaSBjZXV4IHRyYWl0w6lzIHBhciBzaXRhZ2xpcHRpbmUuCmBgYHtyfQoKYGBgCiMjIyMgQ29ycmVjdGlvbgpgYGB7cn0KZGF0YV9NQUNFICU+JSBjb3VudChNQUNFKSAlPiUgbXV0YXRlKGZyZXEgPSBuIC8gc3VtKG4pKQpgYGAKYGBge3J9CgpgYGAKIyMjIyBDb3JyZWN0aW9uCmBgYHtyfQpkYXRhX01BQ0UgJT4lIGNvdW50KG1ldGZvcm1pbmVfdHJlYXQpICU+JSBtdXRhdGUoZnJlcSA9IG4gLyBzdW0obikpCmBgYApgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmRhdGFfTUFDRSAlPiUgZ3JvdXBfYnkobWV0Zm9ybWluZV90cmVhdCxNQUNFKSAlPiUgc3VtbWFyaXplKG49IG4oKSkgICU+JSAgbXV0YXRlKGZyZXEgPSBuIC8gc3VtKG4pKQpgYGAKCmBgYHtyfQpwcmludChjKCJwcm9iYSBvZiBNQUNFIGFtb25nIG1ldGZvcm1pbmUgeWVzIiwzNTAvNDAwMCkpCnByaW50KGMoInByb2JhIG9mIE1BQ0UgYW1vbmcgbWV0Zm9ybWluZSBubyIscm91bmQoNTAwLzcwMDAsZGlnaXRzID0gMikpKQpgYGAKIyMjIFF1ZXN0aW9uIDIgOgotIEVzdGltZXIgbGEgcHJvYmFiaWxpdMOpIGQnYXZvaXIgZXUgdW4gcHLDqWPDqWRlbnQgdHJhaXRlbWVudCBwYXIgT0FEIHBhcm1pIGxlcyBwZXJzb25uZXMgYXlhbnQgcmXDp3UgZGUgbGEgbWV0Zm9ybWluZSwgbcOqbWUgY2hvc2UgcG91ciBsZXMgcGVyc29ubmVzIG4nYXlhbnQgcGFzIHJlw6d1IGRlIGxhIG1ldGZvcm1pbmUKYGBge3J9CgpgYGAKIyMjIyBDb3JyZWN0aW9uCmBgYHtyfQpkYXRhX01BQ0VfbWV0Zm9ybWluZSA9IGZpbHRlcihkYXRhX01BQ0UsbWV0Zm9ybWluZV90cmVhdCA9PSAieWVzIikKZGF0YV9NQUNFX21ldGZvcm1pbmUgJT4lIGdyb3VwX2J5KHByaW9yX09BRCkgICU+JSBzdW1tYXJpc2UobiA9IG4oKSkgJT4lCiAgbXV0YXRlKGZyZXEgPSBuIC8gc3VtKG4pKQpgYGAKYGBge3J9CgpgYGAKIyMjIyBDb3JyZWN0aW9uCmBgYHtyfQpkYXRhX01BQ0Vfbm9fbWV0Zm9ybWluZSA9IGZpbHRlcihkYXRhX01BQ0UsbWV0Zm9ybWluZV90cmVhdCA9PSAibm8iKQpkYXRhX01BQ0Vfbm9fbWV0Zm9ybWluZSAlPiUgZ3JvdXBfYnkocHJpb3JfT0FEKSAlPiUgc3VtbWFyaXNlKG4gPSBuKCkpICU+JQogIG11dGF0ZShmcmVxID0gbiAvIHN1bShuKSkKYGBgCi0gRXN0aW1lciBsYSBwcm9iYWJpbGl0w6kgZCdhdm9pciBldSB1biBNQUNFIHBvdXIgbGVzIHBlcnNvbm5lcyBheWFudCByZcOndSBwcsOpY8OpZGVudCB0cmFpdGVtZW50IHBhciBPQUQsIG3Dqm1lIGNob3NlIHBvdXIgbGVzIHBlcnNvbm5lcyBuJ2F5YW50IHBhcyByZcOndSBwcsOpY8OpZGVtbWVudCBkJ09BRApgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmRhdGFfTUFDRV9wcmlvcl9PQUQgPSBmaWx0ZXIoZGF0YV9NQUNFLHByaW9yX09BRCA9PSAieWVzIikKZGF0YV9NQUNFX3ByaW9yX09BRCAlPiUgZ3JvdXBfYnkoTUFDRSkgJT4lIHN1bW1hcmlzZShuID0gbigpKSAlPiUKICBtdXRhdGUoZnJlcSA9IG4gLyBzdW0obikpCmBgYApgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmRhdGFfTUFDRV9ub19wcmlvcl9PQUQgPSBmaWx0ZXIoZGF0YV9NQUNFLHByaW9yX09BRCA9PSAibm8iKQpkYXRhX01BQ0Vfbm9fcHJpb3JfT0FEICU+JSBncm91cF9ieShNQUNFKSAlPiUgc3VtbWFyaXNlKG4gPSBuKCkpICU+JQogIG11dGF0ZShmcmVxID0gbiAvIHN1bShuKSkKYGBgCiMjIyBRdWVzdGlvbiAzCi0gQXBwbGlxdWVyIGxhIG3DqXRob2RlIGRlIHN0cmF0aWZpY2F0aW9uIHBvdXIgY2FsY3VsZXIgbGEgcHJvYmFiaWxpdMOpIGQnYXZvaXIgdW4gTUFDRSBzaSB0b3V0IGxlIG1vbmRlIGF2YWl0IHJlw6d1IGRlIGxhIG1ldGZvcm1pbmUsIG3Dqm1lIGNob3NlIHNpIHBlcnNvbm5lIG4nZW4gYXZhaXQgcmXDp3UuIApgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmRhdGFfZnJlcSA9IGRhdGFfTUFDRSAlPiUgZ3JvdXBfYnkobWV0Zm9ybWluZV90cmVhdCxwcmlvcl9PQUQsTUFDRSkgJT4lIHN1bW1hcmlzZShuID0gbigpKSAgJT4lCiAgbXV0YXRlKGZyZXEgPSBuIC8gc3VtKG4pKQpkYXRhX2ZyZXEKYGBgCmBgYHtyfQoKYGBgCiMjIyMgQ29ycmVjdGlvbgpgYGB7cn0KcHJvYmFfcHJpb3JfT0FEID0gZGF0YV9NQUNFICU+JSBncm91cF9ieShwcmlvcl9PQUQpICU+JSBzdW1tYXJpc2UobiA9IG4oKSkgICU+JQogIG11dGF0ZShmcmVxID0gbiAvIHN1bShuKSkKcHJvYmFfcHJpb3JfT0FECmBgYApgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmV4cGVjdGVkX3Byb2JhX01BQ0VfYWxsdHJlYXRlZCA9IGZpbHRlcihkYXRhX2ZyZXEsbWV0Zm9ybWluZV90cmVhdCA9PSAieWVzIixwcmlvcl9PQUQ9PSJ5ZXMiLE1BQ0U9PSJ5ZXMiKSRmcmVxICogcHJvYmFfcHJpb3JfT0FEJGZyZXFbMl0gKwogIGZpbHRlcihkYXRhX2ZyZXEsbWV0Zm9ybWluZV90cmVhdCA9PSAieWVzIixwcmlvcl9PQUQ9PSJubyIsTUFDRT09InllcyIpJGZyZXEgICogcHJvYmFfcHJpb3JfT0FEJGZyZXFbMV0KZXhwZWN0ZWRfcHJvYmFfTUFDRV9hbGx0cmVhdGVkCmBgYApgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmV4cGVjdGVkX3Byb2JhX01BQ0Vfbm90cmVhdGVkID0gZmlsdGVyKGRhdGFfZnJlcSxtZXRmb3JtaW5lX3RyZWF0ID09ICJubyIscHJpb3JfT0FEPT0ieWVzIixNQUNFPT0ieWVzIikkZnJlcSAqIHByb2JhX3ByaW9yX09BRCRmcmVxWzJdICsKICBmaWx0ZXIoZGF0YV9mcmVxLG1ldGZvcm1pbmVfdHJlYXQgPT0gIm5vIixwcmlvcl9PQUQ9PSJubyIsTUFDRT09InllcyIpJGZyZXEgICogcHJvYmFfcHJpb3JfT0FEJGZyZXFbMV0KZXhwZWN0ZWRfcHJvYmFfTUFDRV9ub3RyZWF0ZWQKYGBgCgotIFB1aXMgbCdlc3RpbWVyIGwnZWZmZWN0IGNhdXNhbCBkZSBkdSB0cmFpdGVtZW50IChtZXRmb3JtaW5lIG91IG5vbikgc3VyIGxlIHJpc3F1ZSBkZSBNQUNFLgpgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmV4cGVjdGVkX3Byb2JhX01BQ0VfYWxsdHJlYXRlZCAtIGV4cGVjdGVkX3Byb2JhX01BQ0Vfbm90cmVhdGVkCmBgYAoKCg==