Differensplot anvendes ofte i en situation hvor man har to parrede stikprøver man ønsker at sammenligne. To klassiske eksempler på parrede prøver er:
Fra et matematisk/statistisk perspektiv er der ingen forskel på de to situationer. Det følgende eksempel stammer fra statnoter.dk side 2.5:
#indlæs data fra eksemplet
data <- dget("https://statepi.statnoter.dk/data/diffplot.robj")
data
SampleId Metode 1 (mmol/L) Metode2 (mmol/L)
1 1 0.91 0.88
2 2 1.62 1.49
3 3 3.07 3.10
4 4 4.38 4.51
5 5 5.36 5.48
6 6 6.52 6.69
7 7 6.34 6.13
8 8 7.93 7.91
9 9 9.33 9.44
10 10 10.00 9.57
For at lave et differensplot skal man først tilføje en kolonne med middelværdien for hver prøve, og en kolonne med differensen mellem metode 1 og metode 2 for hver prøve.
Bemærk I nedenstående kode er der et par detaljer der er
værd at bemærke: Vi kender allerede funktionen mean som
beregner middelværdien af en søjle i en dataframe. Her har vi imidlertid
brug for at beregne middelværdien i en række. Det kan gøres på flere
forskellige måder, men det letteste er at benytte funktionen
rowMeans. Dernæst har vi brug for at referere til 2. og 3.
søjle i vores dataframe. Det kunne vi gøre via kolonne-navnene, men da
de indeholder mellemrum og andre mærkelige tegn, er det sikrest at
benytte kolonne-nummeret, dvs. data[,2:3] refererer til 2.
og 3. kolonne.
data$mean <- rowMeans(data[, 2:3])
data$diff <- data[, 2] - data[, 3]
data
SampleId Metode 1 (mmol/L) Metode2 (mmol/L) mean diff
1 1 0.91 0.88 0.895 0.03
2 2 1.62 1.49 1.555 0.13
3 3 3.07 3.10 3.085 -0.03
4 4 4.38 4.51 4.445 -0.13
5 5 5.36 5.48 5.420 -0.12
6 6 6.52 6.69 6.605 -0.17
7 7 6.34 6.13 6.235 0.21
8 8 7.93 7.91 7.920 0.02
9 9 9.33 9.44 9.385 -0.11
10 10 10.00 9.57 9.785 0.43
Herefter er det “bare” at lave et punkt-diagram med middelværdien på x-aksen og differencen på y-aksen:
library(ggplot2)
ggplot(data = data) + geom_point(mapping = aes(x = mean, y = diff)) +
scale_x_continuous(name = "Middelværdi (mmol/L)") +
scale_y_continuous(name = "Differens metode1-metode2 (mmol/L)")
I differens-plots vil man tit ønske at tilføje en grænseværdi af en eller anden art. Hvis man f.eks. ønsker at angive en forskel på +/- 5% kan det gøres som vist her:
library(ggplot2)
ggplot(data = data) + geom_point(mapping = aes(x = mean, y = diff)) +
scale_x_continuous(name = "Middelværdi (mmol/L)") +
scale_y_continuous(name = "Differens metode1-metode2 (mmol/L)", limits = c(-0.5, 0.5)) +
geom_abline(slope = c(-0.05, 0.05), intercept = 0, colour = "red")