1 quantile_analysis

1.1 Lýsing

quantile_analysis er fall sem skiptir í jafna hópa eftir raðaðri breytu (e. quantiles: s.s. þriðjunga, fjórðunga, fimmtunga o.s.frv) og skilar töflu fyrir tengsl þeirra við svarbreytu. Það höndlar samfelldar og tvíkosta svarbreytur og mögulegt er að leiðrétta fyrir öðrum skýribreytum.

Fyrir samfelldar svarbreytur er lm notað og fyrir tvíkosta breytur hefðbundið tvíkosta aðhvarf með glm með family=binomial. Við samanburð á hópum er alltaf miðað við neðsta hópinn (t.d. neðsta fimmtung) og því skilgreindur undirhópur fyrir hvert aðhvarfslíkan: subset = quantile %in% c(1,i), þar sem i er hópurinn sem bera á saman við hóp eitt.

95% öryggisbil eru reiknuð með confint skipuninni.

1.2 Breytur

Fallið tekur eftirfarandi breytur:

  • variable: breytan sem liggur til grundvallar við skiptingu í hópa (quantiles).
  • n_quantiles: fjöldi hópa.
  • method: Aðferðin til þess að skipta í hópa út frá röðuðum gögnum. cut2 er sjálfgefið, vísar til Hmisc::cut2 sem skiptir í nokkurn veginn jafna hópa (fjöldi tilgreindur með g=), þannig að engin gildi koma fyrir í fleiri en einum hóp. Hægt er að velja ntile sem vísar til dplyr::ntile sem skiptir í jafna hópa en leyfir það að sömu gildi geta komið fyrir í aðlægum hópum., ólíkt cut2.
  • outcome: svarbreytan. Getur verið samfelld eða tvíkosta.
  • model_type: linear fyrir samfellda svarbreytu en logistic fyrir tvíkosta svarbreytu.
  • covariates: vigri með skýribreytum til þess að leiðrétta fyrir í fjölbreytulíkani. Má sleppa til þess að fá einbreytulíkan.
  • data

ATH Fallið notar pakkana Hmisc og dplyr.

1.3 Skilgreining

source("https://raw.githubusercontent.com/eythorbj/R/master/functions/function_quantile_analysis.R")

1.4 Dæmi 1

Skiptum kviðarummáli í fimmtunga og skoðum tengsl þeirra við sykursýki. Ekki er leiðrétt fyrir öðrum breytum.

quantile_analysis(variable = "waist",
                  n_quantiles = 5,
                  outcome = "dm",
                  model_type = "logistic",
                  data = data) %>%
  kable(align = 'c', caption = "Unadjusted association of waist circumference quintiles with diabetes mellitus") %>%
  add_header_above(c(" "=2, "Diabetes mellitus" = 5))
Table 1.1: Unadjusted association of waist circumference quintiles with diabetes mellitus
Diabetes mellitus
Quantile N Percent Unadj. OR CI: lower CI: upper P
1 102 4.0 ref
2 68 17.9 5.182 1.712 19.251 0.0063
3 86 13.6 3.732 1.22 13.912 0.029
4 78 20.0 5.937 2.044 21.593 0.0024
5 67 27.3 8.906 3.121 32.146 0.00016

Dálkarnir í töflunni að ofan (frá vinstri til hægri) sýna fimmtunga (fyrsti hefur minnst kviðarummál), fjölda í hverjum fimmtungi, hlutfall (prósentur) með sykursýki í hverjum fimmtungi, OR reiknað miðað við fyrsta fimmtung (merktur með “ref”, reference), svo neðri og efri mörk 95% öryggisbils fyrir OR og loks p-gildi.

Skoðum betur hvernig fimmtungar voru skilgreindir í fallinu með cut2, hér frá grunni þar sem fallið býr aðeins til fimmtungana tímabundið og breytir ekki upphaflegu gagnasettinu.

data %>% mutate(quantile = as.numeric(cut2(waist, g=5))) %>% group_by(quantile) %>% summarise(n(), mean(waist), min(waist), max(waist)) %>% kable
quantile n() mean(waist) min(waist) max(waist)
1 102 31.09804 26 33
2 68 35.02941 34 36
3 86 37.88372 37 39
4 78 41.25641 40 43
5 67 47.28358 44 56
NA 2 NA NA NA

1.5 Dæmi 2

Skoðum nú þriðjunga kviðarummáls og tengsl við sykursýki, en leiðréttum fyrir aldri og kyni.

quantile_analysis(variable = "waist",
                  n_quantiles = 3,
                  outcome = "dm",
                  model_type = "logistic",
                  covariates = c("age", "gender"),
                  data = data) %>%
  kable(align = 'c', caption = "Association of waist circumference tertiles with diabetes mellitus, adjusted for age and sex") %>%
  add_header_above(c(" "=2, "Diabetes mellitus" = 5))
Table 1.2: Association of waist circumference tertiles with diabetes mellitus, adjusted for age and sex
Diabetes mellitus
Quantile N Percent Adj. OR CI: lower CI: upper P
1 145 7.8 ref
2 139 14.3 1.667 0.741 3.911 0.22
3 117 26.3 3.505 1.65 7.9 0.0016

1.6 Dæmi 3

Skoðum HDL-kólesteról eftir fjórðungum sykraðs hemóglóbíns. Þar sem svarbreytan er samfelld er hallatalan í línulega líkaninu jöfn mismuninum á meðaltölum þegar fjórðungarnir eru bornir saman. Í óleiðréttu líkaninu að neðan er þetta beinn mismunur milli meðaltalanna í töflunni. Það yrði þó ekki raunin ef leiðrétt væri fyrir öðrum svarbreytum.

quantile_analysis(variable = "glyhb",
                  n_quantiles = 4,
                  outcome = "hdl",
                  model_type = "linear",
                  data = data) %>%
  kable(align = 'c', caption = "Unadjusted association of HbA1c quartiles with HDL-cholesterol") %>%
  add_header_above(c(" "=2, "HDL-cholesterol" = 5))
Table 1.3: Unadjusted association of HbA1c quartiles with HDL-cholesterol
HDL-cholesterol
Quantile N Mean Unadj. difference CI: lower CI: upper P
1 99 53.041 ref
2 98 52.276 -0.765 -5.606 4.076 0.76
3 96 49.917 -3.124 -7.958 1.71 0.2
4 97 45.784 -7.257 -12.097 -2.417 0.0035