Test T w programowaniu R: jedna próbka i przykład sparowany

⚡ Inteligentne podsumowanie

Test t w R porównuje średnie za pomocą funkcji t.test(), obejmując jedną próbkę z ustalonym celem, dwiema niezależnymi grupami i parami powtarzanych pomiarów. Ten przewodnik uruchamia każdy wariant, poprawnie odczytuje wartość p i weryfikuje założenia.

  • 📐 Statystyka podstawowa: Wartość t dzieli zaobserwowaną średnią różnicę przez jej błąd standardowy, więc większe wartości przemawiają przeciwko hipotezie zerowej.
  • 🧪 Test jednopróbkowy: t.test(x, mu = 10) sprawdza, czy pojedynczy wektor jest zgodny z wartością teoretyczną, np. specyfikacją przepisu.
  • 🠄¥ Test dwupróbkowy: t.test(x, y) porównuje dwie niezależne grupy i domyślnie stosuje poprawkę Welcha w przypadku nierównej wariancji.
  • 🔗 Test parowany: Dodanie paired = TRUE sprawdza średnią różnic wewnątrzobiektowych i usuwa wspólną zmienność.
  • Weryfikacja założeń: Przed zgłoszeniem jakiejkolwiek wartości p należy zastosować shapiro.test() w celu sprawdzenia normalności rozkładu i var.test() w celu sprawdzenia równej wariancji.
  • 📊 Zasada decyzyjna: Wartość p poniżej 0.05 odrzuca hipotezę zerową, ale nigdy nie dowodzi prawdziwości hipotezy alternatywnej.

Test T w R Jedna próbka sparowana

Co to jest wnioskowanie statystyczne?

Wnioskowanie statystyczne to sztuka generowania wniosków na temat rozkładu danych. Analityk danych często staje przed pytaniami, na które można odpowiedzieć wyłącznie naukowo. Dlatego wnioskowanie statystyczne to strategia sprawdzania, czy hipoteza jest prawdziwa, tj. potwierdzona danymi.

Powszechną strategią oceny hipotezy jest test t, który pozwala sprawdzić, czy dwie średnie są równe. Jest on również znany jako Test studenckiTest t można obliczyć dla:

  1. Pojedynczy wektor względem wartości ustalonej (test t dla jednej próby)
  2. Dwa wektory z dwóch oddzielnych grup (niezależny test t dla dwóch prób)
  3. Dwa wektory mierzone na tych samych obiektach (test t dla par)

Każdy test t zakłada, że ​​dane są losowo pobierane, a wartości (lub, w przypadku testu parowanego, różnice) pochodzą z populacji o rozkładzie zbliżonym do normalnego. Wersja z dwiema niezależnymi próbami dodatkowo zakłada, że ​​obie grupy są od siebie niezależne, a wersja klasyczna – że ich wariancje są równe.

Co to jest test T w programowaniu R?

Podstawową ideą testu T jest wykorzystanie statystyk do oceny dwóch przeciwstawnych hipotez:

  • H0:hipoteza zerowa, że ​​średnia populacji jest równa testowanej wartości
  • H1:hipoteza alternatywna, że ​​średnia populacji różni się od tej wartości

Test t jest przeznaczony do małych prób, gdzie przybliżenie normalne jest zawodne. Wymaga, aby dane miały rozkład w przybliżeniu normalny.

Składnia testu T w R

Podstawowa składnia t.test() w R jest następująca:

t.test(x, y = NULL,
       mu = 0, var.equal = FALSE)
arguments:
- x : A vector to compute the one-sample t-test
- y: A second vector to compute the two sample t-test
- mu: Mean of the population under the null hypothesis
- var.equal: Specify whether the variances of the two vectors are equal. By default, set to `FALSE`
- paired: Set to `TRUE` when the two vectors are repeated measures on the same subjects

Przed uruchomieniem czegokolwiek dopasuj układ danych do odpowiedniej wersji testu.

Rodzaje testów T w R

Wybór niewłaściwego wariantu to najczęstszy błąd w teście t, dlatego zacznij od dopasowania układu danych do właściwego wywołania.

Typ Użyj tego, kiedy Wywołanie R
Jedna próbka Jedna grupa w porównaniu z znaną wartością docelową t.test(x, mu = wartość)
Niezależne dwupróbkowe (Welch) Dwie oddzielne grupy, możliwe nierówne odchylenia t.test(x, y)
Niezależne dwupróbkowe (zbiorcze) Dwie oddzielne grupy o równej wariancji t.test(x, y, var.equal = TRUE)
Sparowane Te same osoby mierzone dwukrotnie t.test(x, y, sparowane = PRAWDA)
Jednostronny Interesuje Cię tylko różnica w jednym kierunku t.test(x, mu = wartość, alternatywa = „większa”)

Powyżej trzech grup test t nie jest już odpowiedni. Przejdź do Test ANOVA, co utrzymuje ogólny wskaźnik błędów na poziomie 5 procent zamiast zwiększać go w przypadku powtarzających się porównań parami.

Test T dla jednej próbki w R

Test t dla jednej próby, zwany też testem Studenta, porównuje średnią wektora ze średnią teoretyczną, Test T dla jednej próbki w R. Wzór używany do obliczenia testu t to:

Test T dla jednej próbki w R

Tutaj,

  • Test T dla jednej próbki w R odnosi się do średniej
  • Test T dla jednej próbki w R do średniej teoretycznej
  • s jest odchyleniem standardowym
  • n liczba obserwacji.

Aby ocenić istotność statystyczną testu t, należy obliczyć Wartość p, Wartość p waha się od 0 do 1 i jest interpretowane w następujący sposób:

  • Wartość p niższa niż 0.05 oznacza, że ​​można odrzucić hipotezę zerową. Należy pamiętać, że odrzucenie hipotezy H0 nie jest równoznaczne z potwierdzeniem prawdziwości hipotezy H1, oznacza jedynie, że dane są mało prawdopodobne w przypadku hipotezy H0.
  • Wartość p wyższa niż 0.05 oznacza, że ​​nie masz wystarczających dowodów, aby odrzucić hipotezę zerową.

Wartość p można skonstruować, patrząc na odpowiednią wartość bezwzględną testu t w rozkładzie Studenta ze stopniami swobody równymi Test T dla jednej próbki w R

Na przykład, mając 5 obserwacji, porównujesz swoją wartość t z rozkładem Studenta o 4 stopniach swobody przy 95-procentowym poziomie ufności. Aby odrzucić hipotezę zerową w teście dwustronnym, bezwzględna wartość t musi przekraczać 2.776.

Zobacz tabelę poniżej:

Test T dla jednej próbki w R

Przykład testu T dla jednej próbki w R

Załóżmy, że jesteś firmą produkującą pliki cookie. Każde ciasteczko powinno zawierać 10 gramów cukru. Ciasteczka są produkowane przez maszynę, która dodaje cukier do miski przed wymieszaniem wszystkiego. Uważasz, że maszyna nie dodaje 10 gramów cukru do każdego ciasteczka. Jeśli Twoje założenie jest prawdziwe, maszynę należy naprawić. Zapisałeś poziom cukru trzydziestu ciasteczek.

Note: Możesz utworzyć losowy wektor za pomocą funkcji rnorm(). Ta funkcja generuje wartości o rozkładzie normalnym. Podstawowa składnia to:

rnorm(n, mean, sd)
arguments
- n: Number of observations to generate
- mean: The mean of the distribution. Optional
- sd: The standard deviation of the distribution. Optional

Można utworzyć rozkład z 30 obserwacji ze średnią 9.99 i odchyleniem standardowym 0.04.

set.seed(123)
sugar_cookie <- rnorm(30, mean = 9.99, sd = 0.04)
head(sugar_cookie)

Wyjście:

## [1]  9.967581  9.980793 10.052348  9.992820  9.995172 10.058603

Możesz zastosować test t dla jednej próbki, aby sprawdzić, czy poziom cukru różni się od przepisu. Możesz narysować test hipotezy:

  • H0: Średni poziom cukru wynosi 10
  • H1: Średni poziom cukru jest inny niż 10

Używasz poziomu istotności 0.05.

# H0 : mu = 10
t.test(sugar_cookie, mu = 10)

Oto wynik:

Przykład testu T dla jednej próbki w R

Wartość p w teście t dla jednej próby wynosi 0.1079 i przekracza próg 0.05. 95-procentowy przedział ufności dla średniej wynosi od 9.973 do 10.002 grama i zawiera wartość docelową równą 10. Nie można zatem odrzucić hipotezy H0: nie ma wystarczających dowodów na to, że maszyna odbiega od receptury.

Niezależny dwupróbkowy test t w R

Niezależny dwupróbkowy test t jest najczęściej stosowaną odmianą testu i ma zastosowanie zawsze, gdy dwa zestawy pomiarów pochodzą od różnych podmiotów: dwóch warsztatów, dwóch maszyn, dwóch ramion zabiegowych.

Załóżmy, że w fabryce działają dwie linie produkcyjne i chcesz wiedzieć, czy słoiki napełniane są do tej samej wagi.

set.seed(123)
line_a <- rnorm(25, mean = 500, sd = 8)
line_b <- rnorm(25, mean = 505, sd = 8)

# Welch test, the safe default
t.test(line_a, line_b)

# Pooled test, only when the variances are equal
t.test(line_a, line_b, var.equal = TRUE)

Przeczytaj wynik w czterech krokach.

  1. t to znormalizowany rozmiar odstępu między dwiema średnimi. Jego znak odzwierciedla jedynie kolejność przekazywania wektorów.
  2. df to liczba stopni swobody. Welch oblicza wartość ułamkową; test zbiorczy daje liczbę całkowitą równą n1 + n2 – 2.
  3. Wartość p jest prawdopodobieństwo zaobserwowania tak dużej różnicy, jeśli prawdziwe średnie byłyby identyczne.
  4. Przedział ufności ogranicza prawdziwą różnicę. Jeśli zawiera zero, różnica nie jest istotna na tym poziomie.

Jeśli Twoje dane znajdują się w pojedynczej ramce danych z jedną kolumną wartości i jedną kolumną czynnika, użyj interfejsu formuły, który jest łatwiejszy do odczytania i pozwala uniknąć ręcznego dzielenia danych:

t.test(weight ~ line, data = jars)

Którą wersję wybrać? Pozostaw domyślną wartość var.equal FALSE, chyba że przetestowałeś i potwierdziłeś równość wariancji. Korekta Welcha praktycznie nic nie kosztuje, gdy wariancje się zgadzają, i chroni Cię, gdy tak nie jest.

Sparowany test T w R

Test t dla prób parzystych, zwany również testem t dla próby zależnej, ma zastosowanie, gdy ta sama grupa jest mierzona dwukrotnie. Typowe zastosowania to:

  • Testowanie A / B: Porównaj dwa warianty
  • Badania typu „przypadek-kontrola”:przed i po leczeniu tych samych pacjentów

Przykład sparowanego testu T w R

Firma produkująca napoje jest zainteresowana poznaniem wyników programu rabatowego w sprzedaży. Firma postanowiła śledzić dzienną sprzedaż w jednym ze swoich sklepów, w którym promowany jest program. Pod koniec programu firma chce wiedzieć, czy istnieje statystyczna różnica między średnią sprzedażą sklepu przed i po programie.

  • Firma tracCodziennie sprawdzaliśmy sprzedaż przed rozpoczęciem programu. To nasz pierwszy wektor.
  • Program jest promowany przez tydzień, a sprzedaż jest rejestrowana każdego dnia. To nasz drugi wektor.
  • Przeprowadzisz test t, aby ocenić skuteczność programu. Nazywa się to testem t dla par, ponieważ wartości obu wektorów pochodzą z tego samego rozkładu (tj. tego samego sklepu).

Testowanie hipotez polega na:

  • H0: Brak różnicy w średniej
  • H1: Te dwa sposoby są różne

Należy pamiętać, że klasyczny test t zakłada nieznaną, ale równą wariancję w obu grupach. Rzeczywiste dane rzadko spełniają to założenie, a zignorowanie różnicy może zniekształcić wynik.

Rozwiązaniem jest test t Welcha, który łagodzi założenie o równej wariancji. R stosuje go domyślnie, ponieważ var.equal ma wartość FALSE, chyba że zaznaczysz inaczej. W tym zbiorze danych oba wektory zostały wygenerowane z tym samym odchyleniem standardowym, więc możesz bezpiecznie ustawić var.equal = TRUE.

Tworzysz dwa losowe wektory z rozkładu Gaussa z wyższą średnią dla sprzedaży po programie.

set.seed(123)
# sales before the program
sales_before <- rnorm(7, mean = 50000, sd = 50)
# sales after the program.This has higher mean
sales_after <- rnorm(7, mean = 50075, sd = 50)
# draw the distribution
t.test(sales_before, sales_after,var.equal = TRUE)

Przykład sparowanego testu T w R

Wartość p wynosi 0.04606, tuż poniżej progu 0.05, więc odrzucasz H0 i wnioskujesz, że obie średnie różnią się znacząco. Program rabatowy najwyraźniej zwiększył sprzedaż.

⚠️ Ważne: powyższe wywołanie porównuje dwa wektory jako niezależny próbki. Ponieważ obie serie to pomiary w tym samym sklepie, statystycznie poprawne wywołanie dodaje sparowane = PRAWDA:

t.test(sales_before, sales_after, paired = TRUE)

W formie sparowanej testowana jest średnia różnic z dnia na dzień, a nie różnica dwóch średnich. Usuwa ona zmienność na poziomie warsztatu, wspólną dla obu wektorów, a zatem ma większą moc statystyczną.

Jak sprawdzić założenia testu T w R

Wartość p w teście t jest znacząca tylko wtedy, gdy spełnione są jej założenia. Każde z nich można bezpośrednio sprawdzić.

1. Normalność. Testy z jedną i dwiema próbkami zakładają, że wartości są w przybliżeniu normalne; test parowany zakłada, że Różnice są. Sprawdź wykres QQ i potwierdź go testem Shapiro-Wilka:

qqnorm(sugar_cookie); qqline(sugar_cookie)
shapiro.test(sugar_cookie)

# for a paired design, test the differences
shapiro.test(sales_after - sales_before)

Wartość p Shapiro-Wilka powyżej 0.05 oznacza, że ​​nie można odrzucić rozkładu normalnego. Przy ponad 30 obserwacjach na grupę, centralne twierdzenie graniczne sprawia, że ​​test t jest odporny na umiarkowane skośności.

2. Równa wariancja. Wymaga tego tylko test z dwiema próbkami zbiorczymi. Przetestuj go za pomocą testu F:

var.test(line_a, line_b)

Wartość p powyżej 0.05 potwierdza równe wariancje, co uzasadnia var.equal = TRUE.

3. Niezależność. Wynika to z projektu badania i nie można tego sprawdzić po fakcie. Jeśli ten sam podmiot ma wkład w oba wektory, test niezależny jest po prostu niewłaściwym narzędziem i wymagane jest sparowanie = PRAWDA.

Kiedy założenie okazuje się błędne. W przypadku danych wyraźnie odbiegających od rozkładu normalnego z małymi próbkami, należy skorzystać z alternatyw opartych na rangach: wilcox.test(x, y) zastępuje test t dla dwóch prób, a wilcox.test(x, y, paired = TRUE) zastępuje wersję sparowaną. Żadna z tych metod nie wymaga rozkładu normalnego, choć obie tracą nieco na mocy, gdy dane są w rzeczywistości normalne.

Test T w R: najważniejsze wnioski i odniesienia do testów

  • Wnioskowanie statystyczne to sztuka wyciągania wniosków na temat rozkładu danych.
  • Test T należy do rodziny statystyk inferencyjnych. Jest powszechnie stosowany w celu sprawdzenia, czy istnieje różnica statystyczna między średnimi dwóch grup.
  • Jednopróbkowy test t, zwany też testem Studenta, porównuje średnią wektora ze średnią teoretyczną.
  • Test t dla prób sparowanych lub test t dla prób zależnych stosuje się, gdy tę samą grupę bada się dwukrotnie.

Poniższa tabela podsumowuje każdy z omówionych powyżej testów:

Testowanie Hipoteza do sprawdzenia Wartość p Code Argument opcjonalny
test t dla jednej próby Średnia wektora różni się od średniej teoretycznej 0.05
t.test(x, mu = mean)
Test t dla sparowanych próbek Średnia A różni się od średniej B dla tych samych osób 0.05
t.test(A, B, paired = TRUE)
var.equal = TRUE

Jeśli chcesz założyć równe wariancje w niezależnym teście dwupróbkowym, ustaw var.equal = TRUE. Pozostaw domyślną wartość FALSE, aby zastosować bezpieczniejszą poprawkę Welcha.

FAQ

Test parowany analizuje różnice wewnątrzgrupowe, gdy te same osoby są mierzone dwukrotnie. Test niezależny porównuje dwie oddzielne grupy. Użycie testu niezależnego na danych parowanych powoduje odrzucenie informacji i zmniejsza moc statystyczną.

Użyj Welcha, gdy nie potwierdziłeś równości wariancji, dlatego R stosuje ją domyślnie. Nie zużywa prawie żadnej energii, gdy wariancje są zgodne, i chroni wskaźnik błędów, gdy tak nie jest.

W przypadku małych próbek należy przejść na test sumy rang Wilcoxona lub test rang ze znakiem za pomocą funkcji wilcox.test(). W przypadku większych próbek centralne twierdzenie graniczne zapewnia wiarygodność testu t pomimo umiarkowanych odchyleń od normalności rozkładu.

Zespoły używają sparowanych testów t do porównania dwóch modeli w ramach identycznych krotności walidacji krzyżowej i oceny, czy wynik eksperymentu A/B jest prawdziwy. Model sparowany eliminuje zmienność między krotnościami z porównania.

Tak. Asystenci AI potrafią objaśniać stopnie swobody, tłumaczyć przedziały ufności na prosty język i ostrzegać o wyborze niewłaściwego wariantu. Potwierdź każdy odczyt własnymi wynikami shapiro.test() i var.test().

Podsumuj ten post następująco: