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 tilHmisc::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ð veljantile
sem vísar tildplyr::ntile
sem 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
:linear
fyrir samfellda svarbreytu enlogistic
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))
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 |