Jacob Liljehult
Klinisk sygeplejespecialist
cand.scient.san, Ph.d.
Neurologisk afdeling
Nordsjællands Hospital
korrelations analyser laves alle med funktionen cor.test( x, y, method)
hvor argumentet method bruges til at styre hvilken analyse der laves ved at definere den som enten "pearson"
, "kendall"
eller "spearman"
.
with(strokedata, cor.test(SBT, DBT, method = 'pearson'))
Pearson's product-moment correlation
data: SBT and DBT
t = 19.663, df = 1029, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.4767690 0.5656165
sample estimates:
cor
0.5226102
Pearson's r test antager at begge variable er normalfordelte - og ikke bare at residualerne er normaltfordelte som ved linær regression.
Den letteste måde at undersøge om denne antagelse er opfyldt er ved at visualisere data. Det kan gøres helt simpelt med funktionen plot( x, y)
der findes i base R, mens pakken {ggplot2} giver mere fleksibilitet i forhold til at lægge flere lag på plottet (fx smooth linjer).
Systolisk blodtryk plottet imod diastolisk blodtryk. Blå linje: Loess kurve med konfidensinterval. Rød/stiplet linje: Linær tendens
For at gøre det endnu tydeligere:
Systolisk blodtryk plottet imod diastolisk blodtryk. På siderne er der tilføjet histogrammer for hver variabel og under punkterne er der tilføjet et to-dimensionelt density område (jo tættere punkter, des mørkere område)
Blå linje: Loess kurve med konfidensinterval. Rød/stiplet linje: Linær tendens
Hvis man skal lave korrelationsanalyser på data der ikke opfylder modelantagelserne for Pearson's r-test, kan man i stedet bruge en non-parametrisk test. Ulempen er at tau og rho ikke kan fortolkes så direkte som r, men man får under alle omstændigheder en p-værdi.
Som eksempel kan vi undersøge korrelationen mellem symptombyrden hos patienter med apopleksi (sss) og abnorme vitalparametre (EWS):
Scandinavian Stroke Scale plottet imod Early Warning Score. Blå linje: Loess kurve med konfidensinterval. Rød/stiplet linje: Linær tendens
with(strokedata, cor.test(sss, EWS, method = 'kendall' ))
Kendall's rank correlation tau
data: sss and EWS
z = -13.724, p-value < 2.2e-16
alternative hypothesis: true tau is not equal to 0
sample estimates:
tau
-0.3277317
with(strokedata, cor.test(sss, EWS, method = 'spearman' ))
Spearman's rank correlation rho
data: sss and EWS
S = 258010049, p-value < 2.2e-16
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho
-0.4125775