library(tidyverse)
Registered S3 method overwritten by 'dplyr':
method from
print.rowwise_df
[30m── [1mAttaching packages[22m ──────────[39m
[30m[32m✔[30m [34mggplot2[30m 3.2.1 [32m✔[30m [34mpurrr [30m 0.3.2
[32m✔[30m [34mtibble [30m 2.1.3 [32m✔[30m [34mdplyr [30m 0.8.3
[32m✔[30m [34mtidyr [30m 1.0.0 [32m✔[30m [34mstringr[30m 1.4.0
[32m✔[30m [34mreadr [30m 1.3.1 [32m✔[30m [34mforcats[30m 0.4.0[39m
[30m── [1mConflicts[22m ───────────────────
[31m✖[30m [34mdplyr[30m::[32mfilter()[30m masks [34mstats[30m::filter()
[31m✖[30m [34mdplyr[30m::[32mlag()[30m masks [34mstats[30m::lag()[39m
Synthetic MACE dataset
Question 1 :
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 = [31mcol_character()[39m,
metformine_treat = [31mcol_character()[39m,
MACE = [31mcol_character()[39m
)
glimpse(data_MACE)
Observations: 11,000
Variables: 3
$ prior_OAD [3m[38;5;246m<chr>[39m[23m "yes…
$ metformine_treat [3m[38;5;246m<chr>[39m[23m "yes…
$ MACE [3m[38;5;246m<chr>[39m[23m "yes…
- Estimer la probabilité d’avoir un
MACE
parmi les personnes traitées avec la metformine et parmi ceux traités par sitagliptine.
Correction
r
r 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"
[2] "0.0875"
print(c("proba of MACE among metformine no",round(500/7000,digits = 2)))
[1] "proba of MACE among metformine no"
[2] "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
[1] 0.07727273
- 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
[1] 0
LS0tCnRpdGxlOiAiRXhlbXBsZXMgcG91ciBsYSBjYXVzYWxpdMOpIDogY29uZnVzaW9uIGV0IHN0cmF0aWZpY2F0aW9uIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKYGBgCgojIFN5bnRoZXRpYyBNQUNFIGRhdGFzZXQKIyMjIFF1ZXN0aW9uIDEgOiAKLSBDaGFyZ2VyIGxlcyBkb25uw6llcwpgYGB7cn0KZGF0YV9NQUNFID0gcmVhZF9jc3YyKCIuL0RhdGEvZGF0YV9NQUNFLmNzdiIpCmdsaW1wc2UoZGF0YV9NQUNFKQpgYGAKYGBge3J9CmhlYWQoZGF0YV9NQUNFKQpgYGAKCgotIEVzdGltZXIgbGEgcHJvYmFiaWxpdMOpIGQnYXZvaXIgdW4gYE1BQ0VgIHBhcm1pIGxlcyBwZXJzb25uZXMgdHJhaXTDqWVzIGF2ZWMgbGEgbWV0Zm9ybWluZSBldCBwYXJtaSBjZXV4IHRyYWl0w6lzIHBhciBzaXRhZ2xpcHRpbmUuCmBgYHtyfQoKYGBgCiMjIyMgQ29ycmVjdGlvbgpgYGB7cn0KZGF0YV9NQUNFICU+JSBjb3VudChNQUNFKSAlPiUgbXV0YXRlKGZyZXEgPSBuIC8gc3VtKG4pKQpgYGAKYGBge3J9CgpgYGAKIyMjIyBDb3JyZWN0aW9uCmBgYHtyfQpkYXRhX01BQ0UgJT4lIGNvdW50KG1ldGZvcm1pbmVfdHJlYXQpICU+JSBtdXRhdGUoZnJlcSA9IG4gLyBzdW0obikpCmBgYApgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmRhdGFfTUFDRSAlPiUgZ3JvdXBfYnkobWV0Zm9ybWluZV90cmVhdCxNQUNFKSAlPiUgc3VtbWFyaXplKG49IG4oKSkgICU+JSAgbXV0YXRlKGZyZXEgPSBuIC8gc3VtKG4pKQpgYGAKCmBgYHtyfQpwcmludChjKCJwcm9iYSBvZiBNQUNFIGFtb25nIG1ldGZvcm1pbmUgeWVzIiwzNTAvNDAwMCkpCnByaW50KGMoInByb2JhIG9mIE1BQ0UgYW1vbmcgbWV0Zm9ybWluZSBubyIscm91bmQoNTAwLzcwMDAsZGlnaXRzID0gMikpKQpgYGAKIyMjIFF1ZXN0aW9uIDIgOgotIEVzdGltZXIgbGEgcHJvYmFiaWxpdMOpIGQnYXZvaXIgZXUgdW4gcHLDqWPDqWRlbnQgdHJhaXRlbWVudCBwYXIgT0FEIHBhcm1pIGxlcyBwZXJzb25uZXMgYXlhbnQgcmXDp3UgZGUgbGEgbWV0Zm9ybWluZSwgbcOqbWUgY2hvc2UgcG91ciBsZXMgcGVyc29ubmVzIG4nYXlhbnQgcGFzIHJlw6d1IGRlIGxhIG1ldGZvcm1pbmUKYGBge3J9CgpgYGAKIyMjIyBDb3JyZWN0aW9uCmBgYHtyfQpkYXRhX01BQ0VfbWV0Zm9ybWluZSA9IGZpbHRlcihkYXRhX01BQ0UsbWV0Zm9ybWluZV90cmVhdCA9PSAieWVzIikKZGF0YV9NQUNFX21ldGZvcm1pbmUgJT4lIGdyb3VwX2J5KHByaW9yX09BRCkgICU+JSBzdW1tYXJpc2UobiA9IG4oKSkgJT4lCiAgbXV0YXRlKGZyZXEgPSBuIC8gc3VtKG4pKQpgYGAKYGBge3J9CgpgYGAKIyMjIyBDb3JyZWN0aW9uCmBgYHtyfQpkYXRhX01BQ0Vfbm9fbWV0Zm9ybWluZSA9IGZpbHRlcihkYXRhX01BQ0UsbWV0Zm9ybWluZV90cmVhdCA9PSAibm8iKQpkYXRhX01BQ0Vfbm9fbWV0Zm9ybWluZSAlPiUgZ3JvdXBfYnkocHJpb3JfT0FEKSAlPiUgc3VtbWFyaXNlKG4gPSBuKCkpICU+JQogIG11dGF0ZShmcmVxID0gbiAvIHN1bShuKSkKYGBgCi0gRXN0aW1lciBsYSBwcm9iYWJpbGl0w6kgZCdhdm9pciBldSB1biBNQUNFIHBvdXIgbGVzIHBlcnNvbm5lcyBheWFudCByZcOndSBwcsOpY8OpZGVudCB0cmFpdGVtZW50IHBhciBPQUQsIG3Dqm1lIGNob3NlIHBvdXIgbGVzIHBlcnNvbm5lcyBuJ2F5YW50IHBhcyByZcOndSBwcsOpY8OpZGVtbWVudCBkJ09BRApgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmRhdGFfTUFDRV9wcmlvcl9PQUQgPSBmaWx0ZXIoZGF0YV9NQUNFLHByaW9yX09BRCA9PSAieWVzIikKZGF0YV9NQUNFX3ByaW9yX09BRCAlPiUgZ3JvdXBfYnkoTUFDRSkgJT4lIHN1bW1hcmlzZShuID0gbigpKSAlPiUKICBtdXRhdGUoZnJlcSA9IG4gLyBzdW0obikpCmBgYApgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmRhdGFfTUFDRV9ub19wcmlvcl9PQUQgPSBmaWx0ZXIoZGF0YV9NQUNFLHByaW9yX09BRCA9PSAibm8iKQpkYXRhX01BQ0Vfbm9fcHJpb3JfT0FEICU+JSBncm91cF9ieShNQUNFKSAlPiUgc3VtbWFyaXNlKG4gPSBuKCkpICU+JQogIG11dGF0ZShmcmVxID0gbiAvIHN1bShuKSkKYGBgCiMjIyBRdWVzdGlvbiAzCi0gQXBwbGlxdWVyIGxhIG3DqXRob2RlIGRlIHN0cmF0aWZpY2F0aW9uIHBvdXIgY2FsY3VsZXIgbGEgcHJvYmFiaWxpdMOpIGQnYXZvaXIgdW4gTUFDRSBzaSB0b3V0IGxlIG1vbmRlIGF2YWl0IHJlw6d1IGRlIGxhIG1ldGZvcm1pbmUsIG3Dqm1lIGNob3NlIHNpIHBlcnNvbm5lIG4nZW4gYXZhaXQgcmXDp3UuIApgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmRhdGFfZnJlcSA9IGRhdGFfTUFDRSAlPiUgZ3JvdXBfYnkobWV0Zm9ybWluZV90cmVhdCxwcmlvcl9PQUQsTUFDRSkgJT4lIHN1bW1hcmlzZShuID0gbigpKSAgJT4lCiAgbXV0YXRlKGZyZXEgPSBuIC8gc3VtKG4pKQpkYXRhX2ZyZXEKYGBgCmBgYHtyfQoKYGBgCiMjIyMgQ29ycmVjdGlvbgpgYGB7cn0KcHJvYmFfcHJpb3JfT0FEID0gZGF0YV9NQUNFICU+JSBncm91cF9ieShwcmlvcl9PQUQpICU+JSBzdW1tYXJpc2UobiA9IG4oKSkgICU+JQogIG11dGF0ZShmcmVxID0gbiAvIHN1bShuKSkKcHJvYmFfcHJpb3JfT0FECmBgYApgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmV4cGVjdGVkX3Byb2JhX01BQ0VfYWxsdHJlYXRlZCA9IGZpbHRlcihkYXRhX2ZyZXEsbWV0Zm9ybWluZV90cmVhdCA9PSAieWVzIixwcmlvcl9PQUQ9PSJ5ZXMiLE1BQ0U9PSJ5ZXMiKSRmcmVxICogcHJvYmFfcHJpb3JfT0FEJGZyZXFbMl0gKwogIGZpbHRlcihkYXRhX2ZyZXEsbWV0Zm9ybWluZV90cmVhdCA9PSAieWVzIixwcmlvcl9PQUQ9PSJubyIsTUFDRT09InllcyIpJGZyZXEgICogcHJvYmFfcHJpb3JfT0FEJGZyZXFbMV0KZXhwZWN0ZWRfcHJvYmFfTUFDRV9hbGx0cmVhdGVkCmBgYApgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmV4cGVjdGVkX3Byb2JhX01BQ0Vfbm90cmVhdGVkID0gZmlsdGVyKGRhdGFfZnJlcSxtZXRmb3JtaW5lX3RyZWF0ID09ICJubyIscHJpb3JfT0FEPT0ieWVzIixNQUNFPT0ieWVzIikkZnJlcSAqIHByb2JhX3ByaW9yX09BRCRmcmVxWzJdICsKICBmaWx0ZXIoZGF0YV9mcmVxLG1ldGZvcm1pbmVfdHJlYXQgPT0gIm5vIixwcmlvcl9PQUQ9PSJubyIsTUFDRT09InllcyIpJGZyZXEgICogcHJvYmFfcHJpb3JfT0FEJGZyZXFbMV0KZXhwZWN0ZWRfcHJvYmFfTUFDRV9ub3RyZWF0ZWQKYGBgCgotIFB1aXMgbCdlc3RpbWVyIGwnZWZmZWN0IGNhdXNhbCBkZSBkdSB0cmFpdGVtZW50IChtZXRmb3JtaW5lIG91IG5vbikgc3VyIGxlIHJpc3F1ZSBkZSBNQUNFLgpgYGB7cn0KCmBgYAojIyMjIENvcnJlY3Rpb24KYGBge3J9CmV4cGVjdGVkX3Byb2JhX01BQ0VfYWxsdHJlYXRlZCAtIGV4cGVjdGVkX3Byb2JhX01BQ0Vfbm90cmVhdGVkCmBgYAoKCg==