Website-Icon Björn Walther

Friedman-Test in R rechnen

1 Ziel des Friedman-Test in R

Der Friedman-Test ist ein nicht parametrischer Mittelwertvergleich bei 3 oder mehr abhängigen Stichproben. Die Nullhypothese geht von Gleichheit der Gruppen- bzw. Zeitpunktmittelwerte aus. Der Friedman-Test verwendet Ränge statt die tatsächlichen Werte und ist das Gegenstück zur ANOVA mit Messwiederholung, allerdings hat er nicht solche strengen Voraussetzungen.

 

2 Voraussetzungen des Friedman-Tests in R

 

3 Grafische Veranschaulichung mittels Boxplot und deskriptive Statistiken

3.1 Boxplot

Dieser Schritt ist optional und dient lediglich der Einordnung und dem Gewinn eines ungefähren Gefühls, was zwischen den Zeitpunkten für Unterschiede bestehen.
Hierzu lasse ich mir mit der boxplot()-Funktion die Messwerte (data$Wert) je Zeitpunkt (Data$Zeitpunkt) ausgeben. “data$” steht lediglich davor, weil ich die Daten nicht attached habe und ich sie aus dem Dataframe namens “data” beziehe. Das $ verknüpft Dataframe und Variablenname.


boxplot(data$Wert~data$Zeitpunkt)

Im Ergebnis ist erkennbar, dass im Zeitpunkt 3 die Box deutlich über der Boxen aus den Zeitpunkten 1 und 2 liegt. Eine Anpassung von Boxplots zeige ich hier ausführlicher.

 

3.2 Deskriptive Statistiken

Hier kann mittels des “dplyr“-Pakets und dessen summarize()-Funktion sowie Piping in Verbindung mit der group_by()-Funktion gearbeitet werden. Ich lasse mir lediglich den Median sowie das 1. Quartil und 3. Quartil ausgeben:


library(dplyr)
data %>%
  group_by(Zeitpunkt) %>%
  summarize(Mdn = median(Wert),
            Q1 = quantile(Wert, probs = .25),
            Q3 = quantile(Wert, probs = .75)) %>%
  as.data.frame()

Das Ergebnis ist:


  Zeitpunkt Mdn  Q1  Q3
1         1   2 1.0 2.5
2         2   2 1.0 3.0
3         3   3 2.5 4.0

Erkennbar ist, dass sich die Mediane im Zeitpunkt 1 und 2 zwar gleichen, in Verbindung mit den Quartilen bzw. dem Boxplot ist aber erkennbar, dass im Zeitpunkt 2 die Streuung nach oben hin zugenommen hat. Zeitpunkt 3 zeigt eine weitere Zunahme des Testscores, was anhand aller Lageparameter (Median, Quartil 1 und Quartil 3) erkennbar ist.

 

4 Durchführung und Interpretation des Friedman-Tests in R

4.1 Friedman-Test berechnen

Zur Berechnung des Friedman-Tests braucht es keine zusätzlichen Pakete. Man verwendet einfach die friedman.test()-Funktion:

Der Einfachheit wegen heißen meine Variablen im Code analog dazu:


friedman.test(data$Wert, data$Zeitpunkt, data$Proband)

Nachfolgend erhält man folgenden Output. Wichtig ist hier eigentlich nur der p-Wert.


Friedman rank sum test
data:  data$Wert, data$Zeitpunkt and data$Proband
Friedman chi-squared = 22.372, df = 2, p-value = 1.387e-05

Der p-Wert ist in wissenschaftlicher Schreibweise dargestellt. 1.387e-05 schiebt das Komma um 5 Stellen nach links. Demzufolge ist der p-Wert 0.00001387 und demnach sehr klein. Die Nullhypothese keines Unterschiedes über die Zeitpunkte hinweg kann hiermit verworfen werden.
Da beim Friedman-Test aber ja mindestens drei Zeitpunkte existieren, ist noch unklar, zwischen welchen Zeitpunkten signifikante Unterschiede bestehen. Hierzu bedarf es der Berechnung von post-hoc-Tests.

 

4.2 Effektstärke Kendall’s ω berechnen

Eine Effektstärke für den Friedman-Test selbst wird zwar nicht zwingend benötigt, kann aber eine gute Basis für andere Studien sein, die im Vorfeld eine Stichprobengröße ermitteln müssen. Daher kann die Effektstärke Kendall’s ω (Omega) berechnet werden. Aufgrund der optischen Ähnlichkeit wird es häufig auch als Kendall’s W bzw. Kendall’s w bezeichnet. Die Berechnung erfolgt über die friedman_effsize()-Funktion des “rstatix“-Pakets:


install.packages("rstatix")
library(rstatix)
friedman_effsize(data, Wert~Zeitpunkt | Proband)

Das führt zu folgendem Ergebnis:


  .y.       n effsize method    magnitude
*               
1 Wert     15   0.746 Kendall W large  

Im Beispiel liegt eine Effektstärke Kendall’s ω von 0.746 vor. In der Funktion wird auch direkt eine Einordnung als “groß” vorgenommen.

Hierzu dienen wurden die Grenzen von Cohen (1992), S. 157 verwendet:

Sollten bereits Studien existieren oder fachspezifische Grenzen existieren, sind diese für eine Einordnung des Ergebnisses vorzuziehen.

 

5 Durchführung und Interpretation der post-hoc-Tests

5.1 Post-Hoc-Tests für den Friedman-Test in R

Zunächst ist anzumerken, dass keine vollständige Klarheit herrscht, welche post-hoc-Tests zu rechnen sind. Daher einen Schritt zurück: worum geht es bei den post-Hoc-Tests beim Friedman-Test überhaupt?
Das Ziel ist, herauszufinden, zwischen welchen Zeitpunkten Unterschiede hinsichtlich der abhängigen Variable bestehen. Es werden also paarweise Vergleiche aller Zeitpunkte miteinander gerechnet.
Hier beginnt nun allerdings die Schwierigkeit, da es keine eindeutige Empfehlung gibt, welcher paarweise Vergleich der “richtige” ist.

Das “PMCMRplus“-Paket bietet 5 mögliche Funktionen:

Ich persönlich tendiere zu der exakten p-Wert-Methode von Eisinga et al. (2017), vor allem wegen der geringeren Beta-Fehlerwahrscheinlichkeit.
Die Alphafehlerwahrscheinlichkeit kann mit der entsprechenden Fehlerkorrektur angepasst werden. Zur Wahl stehen “holm”, “hochberg”, “hommel”, “bonferroni”, “BH”, “BY”, “fdr” und “none”.

Ich führe exemplarisch die Berechnung mit Bonferroni-Korrektur durch. Je nach Fachdisziplin sind unterschiedliche Korrekturen üblich und anzuwenden.


install.packages("PMCMRplus")
library(PMCMRplus)
frdAllPairsExactTest(data$Wert, data$Zeitpunkt, data$Proband, 
                     p.adjust.method = "bonferroni")

Das Ergebnis, also lediglich die p-Werte, werden in einer kleinen Matrix ausgegeben, die alle Zeitpunkte jeweils miteinander vergleicht.
Beispiel: Der Vergleich der Zeitpunkte 1 und 2 zeigt einen p-Wert von 0.714.


Pairwise comparisons using Eisinga, Heskes, Pelzer & Te Grotenhuis 
all-pairs test with exact p-values for a two-way balanced complete block design

data: y, groups and blocks

  1       2    
2 0.714   -    
3 7.5e-05 0.021

P value adjustment method: bonferroni

Schließlich ist noch interessant, wie groß der Unterschied zwischen den Zeitpunkten ist – allein anhand der oben erstellten Boxplots ist eine Abschätzung zwar möglich, aber schwer. Zudem sollte eine Standardisierung der Unterschiede zur Vergleichbarkeit durchgeführt werden, was nachfolgend gezeigt wird.

 

5.2 Effektstärke für Post-Hoc-Tests für den Friedman-Test in R

Ergänzend oder vielmehr hauptsächlich sollten Effektstärken für die post-hoc-Test für einen signifikanten Friedman-Test gerechnet werden. Leider gibt es keine fertige Funktion hierfür und ich habe mir einige Gedanken dazu gemacht, bin aber natürlich offen für Diskussionen.


frdAllPairsExactTest(data$Wert, data$Zeitpunkt, data$Proband, 
                     p.adjust.method = "none")

# unkorrigierte p-Werte
  1       2     
2 0.2379  -     
3 2.5e-05 0.0069

Nun kann ich die Transformation mit der qnorm()-Funktion vornehmen:


z1 <- qnorm(0.0069/2)
z2 <- qnorm(2.5e-05/2)

Und schließlich kann ich die Formel für die Effektstärke r verwenden, lasse mir im Vorfeld noch die Anzahl der Beobachtungen in n speichern.


n <- friedman_test(data, Wert~Zeitpunkt | Proband)$n

# Formel: r = z/sqrt(n)
r1 <- z1/sqrt(n)
r2 <- z2/sqrt(n)

Das führt zu folgenden Ergebnissen:


> r1
[1] -1.088257
> r2
[1] -0.6975585

Bei Effektstärken wird das Minuszeichen ignoriert, daher werden nur positive Werte verwendet und angegeben.

Laut Cohen: Statistical Power Analysis for the Behavioral Sciences (1988), S. 79-81 bzw. Cohen (1992), S. 157 sind die Effektgrenzen:

Im vorliegenden Beispiel sind beide Effektstärken groß, da 1.09 > 0,5 und 0.7 > 0,5. Es handelt sich also jeweils um einen großen Effekt zwischen Zeitpunkt 1 und 3 sowie zwischen Zeitpunkt 2 und 3 hinsichtlich der Testvariable

 

Achtung, fachspezifische Standards bei der Einordnung der Effektstärke als auch beim Reporting sind zu beachten.

 

6 Reporting

Zum Berichten empfiehlt sich:

Der Friedman-Test zeigte signifikante Unterschiede des Testscores über die Zeit (Chi² (2) = 22.37, p = 1.387e-05, ω = 0.746).
Zwischen Zeitpunkt 1 (Mdn = 2) und Zeitpunkt 2 (Mdn = 2), p = 0.021, r = 0.7 sowie Zeitpunkt 2 (Mdn = 2) und Zeitpunkt 3 (Mdn = 3), p < 0.001, r = 1.09 sind Unterscheide beobachtbar.
Nach Cohen (1992) sind beide Unterschiede groß.

 

7 Videotutorials

https://www.youtube.com/watch?v=Qg7_Y9LKnYQ https://www.youtube.com/watch?v=dE6UrEJrtvg https://www.youtube.com/watch?v=mAf5vjLe-fo https://www.youtube.com/watch?v=sIH9VIRTqaM https://www.youtube.com/watch?v=pCJf1YsKr7g

 

8 Literatur

 

9 Datensatz

 

Die mobile Version verlassen