Come eseguire un t-test per campioni accoppiati in r
Un t-test per campioni appaiati è un test statistico che confronta le medie di due campioni quando ciascuna osservazione di un campione può essere abbinata a un’osservazione dell’altro campione.
Ad esempio, supponiamo di voler sapere se un determinato curriculum ha un impatto significativo sul rendimento degli studenti in un particolare esame. Per testarlo, chiediamo a 20 studenti di una classe di sostenere un pre-test. Successivamente, ciascuno studente partecipa al programma di studio ogni giorno per due settimane. Quindi, gli studenti ripetono un test di difficoltà simile.
Per confrontare la differenza tra i punteggi medi del primo e del secondo test, utilizziamo un t-test appaiato perché per ogni studente, il punteggio del primo test può essere associato al punteggio del secondo test.
Come eseguire un test t per dati appaiati
Per eseguire un t-test appaiato, possiamo utilizzare il seguente approccio:
Passaggio 1: enunciare le ipotesi nulla e alternativa.
H0 : μd = 0
H a : μ d ≠ 0 (bilaterale)
H a : μ d > 0 (unilaterale)
H a : μ d < 0 (unilaterale)
dove μ d è la differenza media.
Passaggio 2: trovare la statistica del test e il corrispondente valore p.
Sia a = il punteggio dello studente nella prima prova e b = il punteggio dello studente nella seconda prova. Per verificare l’ipotesi nulla che la vera differenza media tra i punteggi dei test sia zero:
- Calcolare la differenza tra ciascuna coppia di punteggi (d i = b i – a i )
- Calcolare la differenza media (d)
- Calcolare la deviazione standard delle differenze s d
- Calcola la statistica t, che è T = d / (s d / √n)
- Trova il valore p corrispondente per la statistica t con n-1 gradi di libertà.
Passaggio 3: rifiutare o non rifiutare l’ipotesi nulla, in base al livello di significatività.
Se il valore p è inferiore al livello di significatività scelto, rifiutiamo l’ipotesi nulla e concludiamo che esiste una differenza statisticamente significativa tra le medie dei due gruppi. Altrimenti non riusciremo a rifiutare l’ipotesi nulla.
Come eseguire un test t accoppiato in R
Per eseguire un test t accoppiato in R, possiamo utilizzare la funzione integrata t.test() con la seguente sintassi:
t.test (x, y, accoppiato = VERO, alternativo = “due lati”)
- x,y: i due vettori digitali che vogliamo confrontare
- accoppiato: un valore logico che specifica che vogliamo calcolare un test t accoppiato
- alternativa: l’ipotesi alternativa. Può essere impostato su “fronte-retro” (predefinito), “in alto” o “in basso”.
L’esempio seguente illustra come eseguire un t-test per dati appaiati per determinare se esiste una differenza significativa nei punteggi medi tra un pre-test e un post-test per 20 studenti.
Creare i dati
Per prima cosa creeremo il set di dati:
#create the dataset data <- data.frame(score = c(85,85, 78, 78, 92, 94, 91, 85, 72, 97, 84, 95, 99, 80, 90, 88, 95, 90, 96, 89, 84, 88, 88, 90, 92, 93, 91, 85, 80, 93, 97, 100, 93, 91, 90, 87, 94, 83, 92, 95), group = c(rep('pre', 20), rep('post', 20))) #view the dataset data #scoregroup #1 85 pre #2 85 pre #3 78 pre #4 78 pre #5 92 pre #6 94 pre #7 91 pre #8 85 pre #9 72 pre #10 97 pre #11 84 pre #12 95 pre #13 99 pre #14 80 pre #15 90 pre #16 88 pre #17 95 pre #18 90 pre #19 96 pre #20 89 pre #21 84 post #22 88 post #23 88 post #24 90 post #25 92 post #26 93 post #27 91 post #28 85 post #29 80 post #30 93 post #31 97 post #32 100 posts #33 93 post #34 91 post #35 90 post #36 87 post #37 94 post #38 83 post #39 92 post #40 95 post
Visualizza le differenze
Successivamente, esamineremo le statistiche riassuntive dei due gruppi utilizzando le funzioni group_by() e summary () della libreria dplyr :
#load dplyr library
library(dplyr)
#find sample size, mean, and standard deviation for each group
data %>%
group_by (group) %>%
summarize (
count = n(),
mean = mean(score),
sd = sd(score)
)
# A tibble: 2 x 4
# group count mean sd
#
#1 post 20 90.3 4.88
#2 pre 20 88.2 7.24
Possiamo anche creare boxplot utilizzando la funzione boxplot() in R per visualizzare la distribuzione dei punteggi per i gruppi pre e post:
boxplot (score~group,
data=data,
main="Test Scores by Group",
xlab="Group",
ylab="Score",
col="steelblue",
border="black"
)
Dalle statistiche riassuntive e dai box plot, possiamo vedere che il punteggio medio nel gruppo post è leggermente superiore al punteggio medio nel gruppo pre . Possiamo anche vedere che i punteggi post gruppo hanno una variabilità minore rispetto ai punteggi pre gruppo.
Per scoprire se la differenza tra le medie di questi due gruppi è statisticamente significativa, possiamo eseguire un test t per dati appaiati.
Eseguire un t-test per dati appaiati
Prima di eseguire il test t per dati appaiati, dobbiamo verificare che la distribuzione delle differenze sia distribuita normalmente (o approssimativamente normalmente). Per fare ciò, possiamo creare un nuovo vettore definito come la differenza tra i punteggi pre e post ed eseguire un test di Shapiro-Wilk per la normalità su questo vettore di valori:
#define new vector for difference between post and pre scores differences <- with(data, score[group == "post"] - score[group == "pre"]) #perform shapiro-wilk test for normality on this vector of values shapiro.test(differences) # Shapiro-Wilk normality test # #data: differences #W = 0.92307, p-value = 0.1135 #
Il valore p del test è 0,1135, che è maggiore di alfa = 0,05. Pertanto, non riusciamo a rifiutare l’ipotesi nulla secondo cui i nostri dati sono distribuiti normalmente. Ciò significa che ora possiamo procedere con il t-test appaiato.
Possiamo usare il seguente codice per eseguire un t-test accoppiato:
t.test (score~group, data = data, paired = TRUE)
# Paired t-test
#
#data: score by group
#t = 1.588, df = 19, p-value = 0.1288
#alternative hypothesis: true difference in means is not equal to 0
#95 percent confidence interval:
# -0.6837307 4.9837307
#sample estimates:
#mean of the differences
#2.15
Dal risultato possiamo vedere che:
- La statistica del test t è 1.588 .
- Il valore p per questa statistica del test con 19 gradi di libertà (df) è 0,1288 .
- L’intervallo di confidenza al 95% per la differenza media è (-0,6837, 4,9837) .
- La differenza media tra i punteggi del gruppo pre e post è 2,15 .
Pertanto, poiché il nostro valore p è inferiore al livello di significatività di 0,05, non riusciremo a rifiutare l’ipotesi nulla secondo cui i due gruppi hanno medie statisticamente significative.
In altre parole, non abbiamo prove sufficienti per affermare che i punteggi medi tra i gruppi pre e post siano statisticamente diversi. Ciò significa che il curriculum non ha avuto effetti significativi sui punteggi dei test.
Inoltre, il nostro intervallo di confidenza al 95% indica che siamo “sicuri al 95%” che la vera differenza media tra i due gruppi sia compresa tra -0,6837 e 4,9837 .
Poiché il valore zero è contenuto all’interno di questo intervallo di confidenza, ciò significa che zero potrebbe effettivamente essere la vera differenza tra i punteggi medi, motivo per cui in questo caso non abbiamo rifiutato l’ipotesi nulla.