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")

Overvej gerne hvad man gør hvis man vil have vandrette streger i stedet (svarende til en fast forskel på f.eks. 0,25 mmol/L)