Loading libraries

source("statis2.R")
load("../CLSA_Data.RData")
load("Subsets.RData")

Selecting variables of interest

(Can be done through the GUI)

Variables = bind_cols(
  CLSA_Data %>%
     select(Match_Age = AGE_NMBR_COM,
            Match_Sex = SEX_ASK_COM,
            Match_BMI_Class = HWT_DISW_COM,
            Demo_Drinking = ALC_FREQ_COM,
            Demo_Phys_Health = GEN_HLTH_COM,
            Demo_Ment_Health = GEN_MNTL_COM,
            Demo_BMI = HWT_DBMI_COM,
            Demo_Weight = WGT_WEIGHT_KG_COM,
            starts_with("NUR")),
CLSA_Data %>%
     select(starts_with("NUT")) %>%
     select(-ends_with("NB_COM"))
)
Variables %<>% 
  mutate_at(vars(NUR_DHNR_MCQ, NUR_DSCR_MCQ, NUT_FBR_COM:NUT_CADR_COM), 
            funs(if_else(. >= 98, as.integer(NA), .))) %>% 
  mutate(Demo_Drinking = if_else(Demo_Drinking == 96, 8, Demo_Drinking)) %>% 
  mutate(Match_BMI_Class = case_when(Match_BMI_Class == 1 | Match_BMI_Class == 2 ~ 1,
                                     Match_BMI_Class == 3 ~ 2,
                                     Match_BMI_Class == 4 ~ 3,
                                     Match_BMI_Class == 5 | Match_BMI_Class == 6 ~ 4,
                                     TRUE ~ as.double(Match_BMI_Class)))

Matching

CLSA_Matched = match_control(Subsets, Variables)

Descriptive Statistics

OA cases

CLSA_Matched %>%
  filter(Origin == "Original") %>% 
  select(-c(Origin, Demo_Drinking, Demo_Ment_Health, Demo_Phys_Health, Match_BMI_Class,    
            Match_Sex),
         Demo_Age = Match_Age) %>% 
  group_by(Subset) %>%
  do(describe(select(., -Subset))) %>%
  ungroup() %>% 
  select(-c(Normal, P_Value, Skew, Kurt, S_Size)) %>% 
  separate(Var, c("VarGroup", "Var"), "_", extra = "merge") %>% 
  arrange(VarGroup) %T>% 
  write.table(sep = "\t", "DS.tsv", row.names = F)


Match cases

CLSA_Matched %>%
  filter(Origin == "Matched") %>% 
  select(-c(Origin, Demo_Drinking, Demo_Ment_Health, Demo_Phys_Health, Match_BMI_Class,    
            Match_Sex),
         Demo_Age = Match_Age) %>% 
  group_by(Subset) %>%
  do(describe(select(., -Subset))) %>%
  ungroup() %>% 
  select(-c(Normal, P_Value, Skew, Kurt, S_Size)) %>% 
  separate(Var, c("VarGroup", "Var"), "_", extra = "merge") %>% 
  arrange(VarGroup) %T>% 
  write.table(sep = "\t", "DS2.tsv", row.names = F)


Wilcoxon test -based Matched Analysis

p-value < 0.05

Prepairing Dataset

AR = CLSA_Matched %>%
  select(-c(Demo_BMI, Demo_Weight)) %>% 
  filter(!is.na(Match_BMI_Class)) %>%
  group_by(Subset, Match_BMI_Class) %>% 
  do(match_analysis(.))
MR = AR %>% 
  mutate(Adj_Diff = if_else(Signif, true = Mean_Diff, false = 0, missing = 0)) %>% 
  group_by(Match_BMI_Class, VarGroup, Variable) %>% 
  summarise(Total_Diff = sum(Adj_Diff)) %>% 
  filter(VarGroup != "Match") %>% 
  ungroup()
print(MR)


Plotting Results

plot_wil = function(mData){
  ggplot(mData, aes(x = Match_BMI_Class, y = Variable,  fill = Total_Diff)) +
    ggtitle(paste(mData$VarGroup, "Variable Differences")) +
    theme(plot.title = element_text(hjust = 0.5)) +
    geom_tile() +
    scale_fill_gradient2(low = "red", mid = "black", high = "blue")
}
MR %>%
  group_by(VarGroup) %>% 
  do(p = plot_wil(.)) %>% 
  .$p
[[1]]

[[2]]

[[3]]

Bonferroni Corrected p-value

Prepairing Dataset

AR = CLSA_Matched %>%
  select(-c(Demo_BMI, Demo_Weight)) %>% 
  filter(!is.na(Match_BMI_Class)) %>%
  group_by(Subset, Match_BMI_Class) %>% 
  do(match_analysis(., bonCorrect = T))
MR = AR %>% 
  mutate(Adj_Diff = if_else(Signif, true = Mean_Diff, false = 0, missing = 0)) %>% 
  group_by(Match_BMI_Class, VarGroup, Variable) %>% 
  summarise(Total_Diff = sum(Adj_Diff)) %>% 
  filter(VarGroup != "Match") %>% 
  ungroup()
print(MR)


Plotting Results

plot_wil = function(mData){
  ggplot(mData, aes(x = Match_BMI_Class, y = Variable,  fill = Total_Diff)) +
    ggtitle(paste(mData$VarGroup, "Variable Differences")) +
    theme(plot.title = element_text(hjust = 0.5)) +
    geom_tile() +
    scale_fill_gradient2(low = "red", mid = "black", high = "blue")
}
MR %>%
  group_by(VarGroup) %>% 
  do(p = plot_wil(.)) %>% 
  .$p
[[1]]

[[2]]

[[3]]

LS0tCnRpdGxlOiAiUmVzdWx0cyIKYXV0aG9yOiAiRGF2aWQgRHVhcnRlIgpkYXRlOiAiMi8xMi8yMDE4IgpvdXRwdXQ6IAogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKLS0tCgojIyMgTG9hZGluZyBsaWJyYXJpZXMKCmBgYHtyfQpzb3VyY2UoInN0YXRpczIuUiIpCmxvYWQoIi4uL0NMU0FfRGF0YS5SRGF0YSIpCmxvYWQoIlN1YnNldHMuUkRhdGEiKQpgYGAKCiMjIyBTZWxlY3RpbmcgdmFyaWFibGVzIG9mIGludGVyZXN0IAoKKENhbiBiZSBkb25lIHRocm91Z2ggdGhlIEdVSSkKCmBgYHtyfQoKVmFyaWFibGVzID0gYmluZF9jb2xzKAogIENMU0FfRGF0YSAlPiUKICAgICBzZWxlY3QoTWF0Y2hfQWdlID0gQUdFX05NQlJfQ09NLAogICAgICAgICAgICBNYXRjaF9TZXggPSBTRVhfQVNLX0NPTSwKICAgICAgICAgICAgTWF0Y2hfQk1JX0NsYXNzID0gSFdUX0RJU1dfQ09NLAogICAgICAgICAgICBEZW1vX0RyaW5raW5nID0gQUxDX0ZSRVFfQ09NLAogICAgICAgICAgICBEZW1vX1BoeXNfSGVhbHRoID0gR0VOX0hMVEhfQ09NLAogICAgICAgICAgICBEZW1vX01lbnRfSGVhbHRoID0gR0VOX01OVExfQ09NLAogICAgICAgICAgICBEZW1vX0JNSSA9IEhXVF9EQk1JX0NPTSwKICAgICAgICAgICAgRGVtb19XZWlnaHQgPSBXR1RfV0VJR0hUX0tHX0NPTSwKICAgICAgICAgICAgc3RhcnRzX3dpdGgoIk5VUiIpKSwKCkNMU0FfRGF0YSAlPiUKICAgICBzZWxlY3Qoc3RhcnRzX3dpdGgoIk5VVCIpKSAlPiUKICAgICBzZWxlY3QoLWVuZHNfd2l0aCgiTkJfQ09NIikpCikKClZhcmlhYmxlcyAlPD4lIAogIG11dGF0ZV9hdCh2YXJzKE5VUl9ESE5SX01DUSwgTlVSX0RTQ1JfTUNRLCBOVVRfRkJSX0NPTTpOVVRfQ0FEUl9DT00pLCAKICAgICAgICAgICAgZnVucyhpZl9lbHNlKC4gPj0gOTgsIGFzLmludGVnZXIoTkEpLCAuKSkpICU+JSAKICBtdXRhdGUoRGVtb19Ecmlua2luZyA9IGlmX2Vsc2UoRGVtb19Ecmlua2luZyA9PSA5NiwgOCwgRGVtb19Ecmlua2luZykpICU+JSAKICBtdXRhdGUoTWF0Y2hfQk1JX0NsYXNzID0gY2FzZV93aGVuKE1hdGNoX0JNSV9DbGFzcyA9PSAxIHwgTWF0Y2hfQk1JX0NsYXNzID09IDIgfiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0Y2hfQk1JX0NsYXNzID09IDMgfiAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0Y2hfQk1JX0NsYXNzID09IDQgfiAzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0Y2hfQk1JX0NsYXNzID09IDUgfCBNYXRjaF9CTUlfQ2xhc3MgPT0gNiB+IDQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gYXMuZG91YmxlKE1hdGNoX0JNSV9DbGFzcykpKQpgYGAKIyMjIE1hdGNoaW5nCgpgYGB7cn0KQ0xTQV9NYXRjaGVkID0gbWF0Y2hfY29udHJvbChTdWJzZXRzLCBWYXJpYWJsZXMpCmBgYAoKIyMjIERlc2NyaXB0aXZlIFN0YXRpc3RpY3MKCiMjIyMgT0EgY2FzZXMKCmBgYHtyfQoKQ0xTQV9NYXRjaGVkICU+JQogIGZpbHRlcihPcmlnaW4gPT0gIk9yaWdpbmFsIikgJT4lIAogIHNlbGVjdCgtYyhPcmlnaW4sIERlbW9fRHJpbmtpbmcsIERlbW9fTWVudF9IZWFsdGgsIERlbW9fUGh5c19IZWFsdGgsIE1hdGNoX0JNSV9DbGFzcywgICAgCiAgICAgICAgICAgIE1hdGNoX1NleCksCiAgICAgICAgIERlbW9fQWdlID0gTWF0Y2hfQWdlKSAlPiUgCiAgZ3JvdXBfYnkoU3Vic2V0KSAlPiUKICBkbyhkZXNjcmliZShzZWxlY3QoLiwgLVN1YnNldCkpKSAlPiUKICB1bmdyb3VwKCkgJT4lIAogIHNlbGVjdCgtYyhOb3JtYWwsIFBfVmFsdWUsIFNrZXcsIEt1cnQsIFNfU2l6ZSkpICU+JSAKICBzZXBhcmF0ZShWYXIsIGMoIlZhckdyb3VwIiwgIlZhciIpLCAiXyIsIGV4dHJhID0gIm1lcmdlIikgJT4lIAogIGFycmFuZ2UoVmFyR3JvdXApICVUPiUgCiAgd3JpdGUudGFibGUoc2VwID0gIlx0IiwgIkRTLnRzdiIsIHJvdy5uYW1lcyA9IEYpCmBgYAo8L2JyPgoKIyMjIyBNYXRjaCBjYXNlcwoKYGBge3J9CkNMU0FfTWF0Y2hlZCAlPiUKICBmaWx0ZXIoT3JpZ2luID09ICJNYXRjaGVkIikgJT4lIAogIHNlbGVjdCgtYyhPcmlnaW4sIERlbW9fRHJpbmtpbmcsIERlbW9fTWVudF9IZWFsdGgsIERlbW9fUGh5c19IZWFsdGgsIE1hdGNoX0JNSV9DbGFzcywgICAgCiAgICAgICAgICAgIE1hdGNoX1NleCksCiAgICAgICAgIERlbW9fQWdlID0gTWF0Y2hfQWdlKSAlPiUgCiAgZ3JvdXBfYnkoU3Vic2V0KSAlPiUKICBkbyhkZXNjcmliZShzZWxlY3QoLiwgLVN1YnNldCkpKSAlPiUKICB1bmdyb3VwKCkgJT4lIAogIHNlbGVjdCgtYyhOb3JtYWwsIFBfVmFsdWUsIFNrZXcsIEt1cnQsIFNfU2l6ZSkpICU+JSAKICBzZXBhcmF0ZShWYXIsIGMoIlZhckdyb3VwIiwgIlZhciIpLCAiXyIsIGV4dHJhID0gIm1lcmdlIikgJT4lIAogIGFycmFuZ2UoVmFyR3JvdXApICVUPiUgCiAgd3JpdGUudGFibGUoc2VwID0gIlx0IiwgIkRTMi50c3YiLCByb3cubmFtZXMgPSBGKQpgYGAKPC9icj4KCiMjIyBXaWxjb3hvbiB0ZXN0IC1iYXNlZCBNYXRjaGVkIEFuYWx5c2lzCgojIyMjIHAtdmFsdWUgPCAwLjA1CgpQcmVwYWlyaW5nIERhdGFzZXQKCmBgYHtyfQpBUiA9IENMU0FfTWF0Y2hlZCAlPiUKICBzZWxlY3QoLWMoRGVtb19CTUksIERlbW9fV2VpZ2h0KSkgJT4lIAogIGZpbHRlcighaXMubmEoTWF0Y2hfQk1JX0NsYXNzKSkgJT4lCiAgZ3JvdXBfYnkoU3Vic2V0LCBNYXRjaF9CTUlfQ2xhc3MpICU+JSAKICBkbyhtYXRjaF9hbmFseXNpcyguKSkKYGBgCmBgYHtyfQpNUiA9IEFSICU+JSAKICBtdXRhdGUoQWRqX0RpZmYgPSBpZl9lbHNlKFNpZ25pZiwgdHJ1ZSA9IE1lYW5fRGlmZiwgZmFsc2UgPSAwLCBtaXNzaW5nID0gMCkpICU+JSAKICBncm91cF9ieShNYXRjaF9CTUlfQ2xhc3MsIFZhckdyb3VwLCBWYXJpYWJsZSkgJT4lIAogIHN1bW1hcmlzZShUb3RhbF9EaWZmID0gc3VtKEFkal9EaWZmKSkgJT4lIAogIGZpbHRlcihWYXJHcm91cCAhPSAiTWF0Y2giKSAlPiUgCiAgdW5ncm91cCgpCgpwcmludChNUikKYGBgCgo8L2JyPgpQbG90dGluZyBSZXN1bHRzCgpgYGB7cn0KcGxvdF93aWwgPSBmdW5jdGlvbihtRGF0YSl7CiAgZ2dwbG90KG1EYXRhLCBhZXMoeCA9IE1hdGNoX0JNSV9DbGFzcywgeSA9IFZhcmlhYmxlLCAgZmlsbCA9IFRvdGFsX0RpZmYpKSArCiAgICBnZ3RpdGxlKHBhc3RlKG1EYXRhJFZhckdyb3VwLCAiVmFyaWFibGUgRGlmZmVyZW5jZXMiKSkgKwogICAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpICsKICAgIGdlb21fdGlsZSgpICsKICAgIHNjYWxlX2ZpbGxfZ3JhZGllbnQyKGxvdyA9ICJyZWQiLCBtaWQgPSAiYmxhY2siLCBoaWdoID0gImJsdWUiKQp9CgpNUiAlPiUKICBncm91cF9ieShWYXJHcm91cCkgJT4lIAogIGRvKHAgPSBwbG90X3dpbCguKSkgJT4lIAogIC4kcApgYGAKCiMjIyMgQm9uZmVycm9uaSBDb3JyZWN0ZWQgcC12YWx1ZQoKUHJlcGFpcmluZyBEYXRhc2V0CgpgYGB7cn0KQVIgPSBDTFNBX01hdGNoZWQgJT4lCiAgc2VsZWN0KC1jKERlbW9fQk1JLCBEZW1vX1dlaWdodCkpICU+JSAKICBmaWx0ZXIoIWlzLm5hKE1hdGNoX0JNSV9DbGFzcykpICU+JQogIGdyb3VwX2J5KFN1YnNldCwgTWF0Y2hfQk1JX0NsYXNzKSAlPiUgCiAgZG8obWF0Y2hfYW5hbHlzaXMoLiwgYm9uQ29ycmVjdCA9IFQpKQpgYGAKYGBge3J9Ck1SID0gQVIgJT4lIAogIG11dGF0ZShBZGpfRGlmZiA9IGlmX2Vsc2UoU2lnbmlmLCB0cnVlID0gTWVhbl9EaWZmLCBmYWxzZSA9IDAsIG1pc3NpbmcgPSAwKSkgJT4lIAogIGdyb3VwX2J5KE1hdGNoX0JNSV9DbGFzcywgVmFyR3JvdXAsIFZhcmlhYmxlKSAlPiUgCiAgc3VtbWFyaXNlKFRvdGFsX0RpZmYgPSBzdW0oQWRqX0RpZmYpKSAlPiUgCiAgZmlsdGVyKFZhckdyb3VwICE9ICJNYXRjaCIpICU+JSAKICB1bmdyb3VwKCkKCnByaW50KE1SKQpgYGAKCjwvYnI+ClBsb3R0aW5nIFJlc3VsdHMKCmBgYHtyfQpwbG90X3dpbCA9IGZ1bmN0aW9uKG1EYXRhKXsKICBnZ3Bsb3QobURhdGEsIGFlcyh4ID0gTWF0Y2hfQk1JX0NsYXNzLCB5ID0gVmFyaWFibGUsICBmaWxsID0gVG90YWxfRGlmZikpICsKICAgIGdndGl0bGUocGFzdGUobURhdGEkVmFyR3JvdXAsICJWYXJpYWJsZSBEaWZmZXJlbmNlcyIpKSArCiAgICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41KSkgKwogICAgZ2VvbV90aWxlKCkgKwogICAgc2NhbGVfZmlsbF9ncmFkaWVudDIobG93ID0gInJlZCIsIG1pZCA9ICJibGFjayIsIGhpZ2ggPSAiYmx1ZSIpCn0KCk1SICU+JQogIGdyb3VwX2J5KFZhckdyb3VwKSAlPiUgCiAgZG8ocCA9IHBsb3Rfd2lsKC4pKSAlPiUgCiAgLiRwCgpgYGA=