domenica 30 ottobre 2011

Test di Friedman: confronti multipli non parametrici

Il test di Friedman viene usato per comparare tra loro più di due campioni dipendenti, in termini di popolazione. Il confronto che viene fatto si basa sulla mediana della popolazione.
La statistica test (Fr) viene calcolata con le seguenti due formule.


La prima si applica se non ci sono ripetizioni, mentre la seconda nel caso in cui ci sono ripetizioni nella assegnazione del rango.





Nella formula, n è il numero di righe nella tabella dei dati; k è il numero delle colonne (o condizioni); Ri è la somma dei ranghi per ciascuna colonna; Cf è la correzione apportata nel caso, appunto, in cui siano presenti delle ripetizioni dei ranghi, ed equivale a (1/4)nk(k+1)^2; rij è il rango assegnato a ciascuna cella della tabella.
I gradi di libertà sono pari a df = k-1.
La statistica test segue una distribuzione di Friedman; per campioni molto grandi (molti gruppi, o molti elementi per gruppo) allora si usa la distribuzione Chi-quadro, per la scelta del valore critico.

Consideriamo i seguenti esempi.




Il gestore di un locale ha 7 dipedenti, i quali sono sempre ritardatari. Per cercare di risolvere tale problema, adotta due strategie. Durante il primo mese (di strategia) decide di premiare i dipendenti che non fanno ritardo; il mese successivo invece punisce i dipedenti che ritardano. Raccoglie gli orari di arrivo (come differenza tra l'ora d'inizio del lavoro, e l'ora di arrivo), ne calcola le medie, e ottiene una tabella come la seguente:



Il gestore vuole sapere se uno dei due metodi applicati apporti un cambiamento nei ritardi dei suoi dipedenti. Le ipotesi del problema sono quindi:



Per prima cosa, assegnamo il rango a ciascuna cella, disponendo in ordine crescente le celle in base alla riga. Otteniamo la seguente tabella:



Calcoliamo ora la somma di ciascuna colonna della riga, ottenendo:



Applicando la prima equazione, con n=7 e k=3; otteniamo il valore:



Il valore critico, per n=7 e k=3 è:



Poichè quindi il valore calcolato è inferiore al valore tabulato, non possiamo rifiutare l'ipotesi nulla.




Un allenatore di pallavolo di 12 ragazzi vuole sperimentare due nuovi tipi di allenamento. Per valutarne l'efficacia, usa come parametro il numero di piegamenti che ciascun ragazzo riesce a fare in un minuto. Raccoglie i dati in una tabella: la prima colonna contiene il numero (medio) di piegamenti che i ragazzi riescono a fare di base (prima degli allenamenti), mentre le altre due colonne fanno riferimento ai risultati ottenuti dopo i due nuovi tipi di allenamento, durante il primo e il secondo mese.



A questi valori vengono assegnati i seguenti ranghi. Poichè sono presenti delle ripetizioni, le celle con i valori ripetuti conterranno la media dei ranghi:



Le ipotesi del problema sono:



Applichiamo la formula per calcolare il valore di F, con la correzione per le ripetizioni:



Essendo i dati numerosi, possiamo confrontare tale valore con la distribuzione Chi-quadro, a 2 gradi di libertà. Poichè il valore tabulato è stavolta inferiore al valore calcolato, concludiamo che la mediana di uno (o più) dei gruppi considerati è significativamente diversa (p < 0.05).
Per capire adesso quali confronti risultano significativi, possiamo applicare il Wilcoxon signed rank test.

Con questo test confrontiamo i 3 gruppi, a coppie. Poichè stiamo facendo un confronto multiplo, applichiamo la correzione di Bonferroni, impostando quindi alpha = 0.05 / 3 = 0.0167.
Lascio a voi il prosieguo dei calcoli. Qui riporto soltanto i risultati:

  • Baseline - mese1: non c'è differenza (p > 0.0167)

  • Baseline - mese2: i due gruppi sono differenti (p < 0.0167)

  • Mese1 - mese2: i due gruppi sono differenti (p < 0.0167)



Qual è quindi il tipo di allenamento migliore? A voi la risposta.






Risolviamo i due problemi con R.

Problema 1:


mydata <- matrix(c(
16, 13, 12,
10, 5, 2,
7, 8, 9,
13, 11, 5,
17, 2, 6,
10, 7, 9,
11, 6, 7),
nrow = 7,
byrow = T,
dimnames = list(1 : 7,
c("Baseline", "Mese 1", "Mese 2")))

friedman.test(mydata)




Friedman rank sum test

data: mydata
Friedman chi-squared = 5.4286, df = 2,
p-value = 0.06625





Problema 2:


mydata <- matrix(c(
66, 67, 69,
49, 50, 56,
51, 52, 49,
65, 65, 69,
42, 43, 46,
38, 39, 40,
33, 31, 39,
41, 41, 44,
46, 47, 48,
45, 46, 46,
36, 33, 34,
51, 55, 67),
nrow = 12,
byrow = T,
dimnames = list(1 : 12,
c("Baseline", "Mese 1", "Mese 2")))

friedman.test(mydata)




Friedman rank sum test

data: mydata
Friedman chi-squared = 10.9778, df = 2,
p-value = 0.004132



2 Commenti:

Anonimo ha detto...

molto utileeee

Anonimo ha detto...

io quando scrivo la matrice ad ogni riga mi compare un +. --> anche quando ho terminato di scrivere la matrice. è la prima volta che utilizzo il programma. Sos

Posta un commento

Statistiche... del blog!

In questo blog ci sono posts e commenti.

Visualizzazioni totali (dal 01.06.2010)

Follow me on...