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.cut2er sjálfgefið, vísar tilHmisc::cut2sem 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ð veljantilesem vísar tildplyr::ntilesem skiptir í jafna hópa en leyfir það að sömu gildi geta komið fyrir í aðlægum hópum., ólíktcut2.outcome: svarbreytan. Getur verið samfelld eða tvíkosta.model_type:linearfyrir samfellda svarbreytu enlogisticfyrir 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))| 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))| 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))| 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 |