Jak wykonać test t dla sparowanych próbek w r
Test t dla par próbek to test statystyczny, który porównuje średnie z dwóch próbek, gdy każdą obserwację z jednej próbki można dopasować do obserwacji z drugiej próbki.
Załóżmy na przykład, że chcemy wiedzieć, czy określony program nauczania ma znaczący wpływ na wyniki uczniów na konkretnym egzaminie. Aby to sprawdzić, prosimy 20 uczniów w klasie o przystąpienie do testu wstępnego. Następnie każdy ze studentów uczestniczy w programie studiów codziennie przez dwa tygodnie. Następnie uczniowie ponownie przystępują do testu o podobnym stopniu trudności.
Aby porównać różnicę między średnimi wynikami z pierwszego i drugiego testu, używamy testu t dla par, ponieważ w przypadku każdego ucznia wynik z pierwszego testu można powiązać z wynikiem z drugiego testu.
Jak wykonać test t dla par
Aby wykonać test t dla par, możemy zastosować następujące podejście:
Krok 1: Podaj hipotezę zerową i alternatywną.
H 0 : μ d = 0
H a : μ d ≠ 0 (dwustronne)
H a : μ d > 0 (jednostronne)
H a : μ d < 0 (jednostronne)
gdzie μd jest średnią różnicą.
Krok 2: Znajdź statystykę testową i odpowiadającą jej wartość p.
Niech a = wynik ucznia z pierwszego testu i b = wynik ucznia z drugiego testu. Aby przetestować hipotezę zerową, że prawdziwa średnia różnica między wynikami testu wynosi zero:
- Oblicz różnicę pomiędzy każdą parą wyników (d i = b i – a i )
- Oblicz średnią różnicę (d)
- Oblicz odchylenie standardowe różnic s d
- Oblicz statystykę t, która wynosi T = d / (s d / √n)
- Znajdź odpowiednią wartość p dla statystyki t z n-1 stopniami swobody.
Krok 3: Odrzuć lub nie odrzucaj hipotezy zerowej, w zależności od poziomu istotności.
Jeżeli wartość p jest mniejsza niż wybrany poziom istotności, odrzucamy hipotezę zerową i stwierdzamy, że istnieje statystycznie istotna różnica pomiędzy średnimi obu grup. W przeciwnym razie nie uda nam się odrzucić hipotezy zerowej.
Jak wykonać sparowany test t w R
Aby wykonać sparowany test t w R, możemy użyć wbudowanej funkcji t.test() o następującej składni:
t.test (x, y, para = PRAWDA, alternatywa = „dwie strony”)
- x, y: dwa wektory cyfrowe, które chcemy porównać
- sparowany: wartość logiczna określająca, że chcemy obliczyć test t dla par
- alternatywa: hipoteza alternatywna. Można to ustawić na „dwustronne” (domyślnie), „na górze” lub „na dole”.
Poniższy przykład ilustruje, jak przeprowadzić test t dla par, aby określić, czy istnieje znacząca różnica w średnich wynikach między testem wstępnym i testem końcowym dla 20 uczniów.
Utwórz dane
Najpierw utworzymy zbiór danych:
#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
Wizualizuj różnice
Następnie przyjrzymy się statystykom sumarycznym obu grup przy użyciu funkcji group_by() i podsumowanie () z biblioteki 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
Możemy także tworzyć wykresy skrzynkowe za pomocą funkcji boxplot() w R, aby wyświetlić rozkład wyników dla grup przed i po:
boxplot (score~group,
data=data,
main="Test Scores by Group",
xlab="Group",
ylab="Score",
col="steelblue",
border="black"
)
Ze statystyk podsumowujących i wykresów pudełkowych możemy zobaczyć, że średni wynik w grupie post jest nieco wyższy niż średni wynik w grupie wstępnej . Widzimy również, że wyniki po grupie charakteryzują się mniejszą zmiennością niż wyniki przed grupą.
Aby sprawdzić, czy różnica między średnimi tych dwóch grup jest istotna statystycznie, możemy wykonać test t dla par.
Wykonaj test t dla par
Przed wykonaniem testu t dla par należy sprawdzić, czy rozkład różnic ma rozkład normalny (lub w przybliżeniu normalny). Aby to zrobić, możemy utworzyć nowy wektor zdefiniowany jako różnica między wynikami przed i po i wykonać test Shapiro-Wilka na normalność tego wektora wartości:
#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 #
Wartość p testu wynosi 0,1135, czyli jest większa niż alfa = 0,05. Tym samym nie udało nam się odrzucić hipotezy zerowej mówiącej, że nasze dane mają rozkład normalny. Oznacza to, że możemy teraz przystąpić do testu t dla par.
Możemy użyć następującego kodu, aby wykonać test t dla par:
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
Z wyniku możemy zobaczyć, że:
- Statystyka testu t wynosi 1,588 .
- Wartość p dla tej statystyki testowej z 19 stopniami swobody (df) wynosi 0,1288 .
- 95% przedział ufności dla średniej różnicy wynosi (-0,6837; 4,9837) .
- Średnia różnica pomiędzy wynikami grupy przed i po wynosi 2,15 .
Zatem, ponieważ nasza wartość p jest poniżej naszego poziomu istotności wynoszącego 0,05, nie odrzucimy hipotezy zerowej, że obie grupy mają statystycznie istotne średnie.
Innymi słowy, nie mamy wystarczających dowodów, aby stwierdzić, że średnie wyniki pomiędzy grupami przed i po są statystycznie różne. Oznacza to, że program nauczania nie miał istotnego wpływu na wyniki testów.
Ponadto nasz 95% przedział ufności wskazuje, że mamy „95% pewności”, że prawdziwa średnia różnica między obiema grupami wynosi od -0,6837 do 4,9837 .
Ponieważ wartość zero mieści się w tym przedziale ufności, oznacza to, że zero może w rzeczywistości być prawdziwą różnicą pomiędzy średnimi wynikami, dlatego w tym przypadku nie udało nam się odrzucić hipotezy zerowej.