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.

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *