T-test u R programiranju: Jedan uzorak i parni primjer
⚡ Pametni sažetak
T-test u R-u uspoređuje srednje vrijednosti pomoću funkcije t.test(), pokrivajući jedan uzorak s fiksnim ciljem, dvije neovisne skupine i uparene ponovljene mjere. Ovaj vodič pokreće svaku varijantu, ispravno očitava p-vrijednost i provjerava temeljne pretpostavke.
Što je statističko zaključivanje?
Statističko zaključivanje je umijeće generiranja zaključaka o distribuciji podataka. Znanstvenik podataka često se suočava s pitanjima na koja se može odgovoriti samo znanstveno. Stoga je statističko zaključivanje strategija za provjeru je li hipoteza istinita, tj. je li potvrđena podacima.
Uobičajena strategija za procjenu hipoteze je t-test, koji govori jesu li dvije srednje vrijednosti jednake. Također je poznat kao Studentski testT-test se može izračunati za:
- Jedan vektor naspram fiksne vrijednosti (t-test jednog uzorka)
- Dva vektora iz dvije odvojene skupine (neovisni t-test s dva uzorka)
- Dva vektora izmjerena na istim subjektima (parni t-test)
Svaki t-test pretpostavlja da su podaci nasumično uzorkovani i da vrijednosti (ili, za test parova, razlike) dolaze iz približno normalno distribuirane populacije. Verzija s dva neovisna uzorka dodatno pretpostavlja da su dvije skupine međusobno neovisne, a klasični oblik pretpostavlja da su im varijance jednake.
Što je T-test u R programiranju?
Osnovna ideja iza T-testa je korištenje statistike za procjenu dviju suprotnih hipoteza:
- H0: nulta hipoteza, da je srednja vrijednost populacije jednaka testiranoj vrijednosti
- H1alternativna hipoteza, da se srednja vrijednost populacije razlikuje od te vrijednosti
T-test je osmišljen za male veličine uzoraka, gdje je normalna aproksimacija nepouzdana. Zahtijeva da podaci budu približno normalno distribuirani.
Sintaksa T-testa u R
Osnovna sintaksa za t.test() u R je:
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
Prije nego što bilo što pokrenete, uskladite raspored podataka s ispravnom varijantom testa.
Vrste T-testa u R-u
Odabir pogrešne varijante najčešća je pogreška t-testa, stoga počnite usklađivanjem rasporeda podataka s ispravnim pozivom.
| Tip | Koristite ga kada | R poziv |
|---|---|---|
| Jedan uzorak | Jedna skupina u usporedbi s poznatom ciljnom vrijednošću | t.test(x, mu = vrijednost) |
| Neovisni dva uzorka (Welch) | Dvije odvojene skupine, moguće nejednake varijance | t.test(x, y) |
| Neovisna dva uzorka (združena) | Dvije odvojene skupine s jednakom varijancom | t.test(x, y, var.equal = TRUE) |
| sparen | Isti subjekti mjereni su dva puta | t.test(x, y, upareno = ISTINA) |
| Jednostrano | Zanima te samo razlika u jednom smjeru | t.test(x, mu = vrijednost, alternativa = “veće”) |
Iznad tri skupine, t-test više nije prikladan. Prebacite se na ANOVA test, što održava ukupnu stopu pogreške na 5 posto umjesto da je povećava tijekom ponovljenih parnih usporedbi.
Jedan uzorak T-testa u R
T-test jednog uzorka, ili Studentov test, uspoređuje srednju vrijednost vektora s teoretskom sredinom, . Formula koja se koristi za izračunavanje t-testa je:
Ovdje,
odnosi se na srednju vrijednost
do teorijske sredine
- s je standardna devijacija
- n broj opažanja.
Da biste procijenili statističku značajnost t-testa, morate izračunati p-vrijednost, p-vrijednost kreće se od 0 do 1 i tumači se na sljedeći način:
- P-vrijednost niža od 0.05 znači da možete odbaciti nultu hipotezu. Imajte na umu da odbacivanje H0 nije isto što i dokazivanje istinitosti H1, to samo znači da su podaci malo vjerojatni pod H0.
- P-vrijednost veća od 0.05 ukazuje na to da nemate dovoljno dokaza za odbacivanje nulte hipoteze.
P-vrijednost možete konstruirati gledajući odgovarajuću apsolutnu vrijednost t-testa u Studentovoj distribuciji sa stupnjevima slobode jednakim
Na primjer, s 5 opažanja uspoređujete svoju t-vrijednost sa Studentovom distribucijom s 4 stupnja slobode na razini pouzdanosti od 95 posto. Da bi se odbacila nulta hipoteza u dvostranom testu, apsolutna t-vrijednost mora biti veća od 2.776.
Vidi tablicu ispod:
Jedan primjer T-testa u R
Pretpostavimo da ste tvrtka koja proizvodi kolačiće. Svaki kolačić treba sadržavati 10 grama šećera. Kolačići se proizvode pomoću stroja koji dodaje šećer u zdjelu prije nego što sve izmiješa. Vjerujete da stroj ne dodaje 10 grama šećera za svaki kolačić. Ako je vaša pretpostavka točna, stroj treba popraviti. Pohranili ste razinu šećera od trideset kolačića.
bilješke: Možete stvoriti nasumični vektor s funkcijom rnorm(). Ova funkcija generira normalno distribuirane vrijednosti. Osnovna sintaksa je:
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žete stvoriti distribuciju s 30 opažanja sa srednjom vrijednošću od 9.99 i standardnom devijacijom od 0.04.
set.seed(123) sugar_cookie <- rnorm(30, mean = 9.99, sd = 0.04) head(sugar_cookie)
Izlaz:
## [1] 9.967581 9.980793 10.052348 9.992820 9.995172 10.058603
Možete upotrijebiti t-test jednog uzorka da provjerite razlikuje li se razina šećera od one u receptu. Možete nacrtati test hipoteze:
- H0: Prosječna razina šećera jednaka je 10
- H1: Prosječna razina šećera razlikuje se od 10
Koristite razinu značajnosti od 0.05.
# H0 : mu = 10 t.test(sugar_cookie, mu = 10)
Evo rezultata:
P-vrijednost t-testa jednog uzorka iznosi 0.1079, što je iznad praga od 0.05. Interval pouzdanosti od 95 posto za prosjek kreće se od 9.973 do 10.002 grama i sadrži ciljnu vrijednost od 10. Stoga ne možete odbaciti H0: nema dovoljno dokaza da stroj odstupa od recepta.
Neovisni dvouzorni t-test u R-u
Nezavisni t-test s dva uzorka najčešće je korištena varijanta i primjenjuje se kad god dva seta mjerenja dolaze od različitih ispitanika: dvije radionice, dva stroja, dva tima za obradu.
Pretpostavimo da tvornica ima dvije proizvodne linije i želite znati pune li staklenke do iste težine.
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)
Pročitajte izlaz u četiri koraka.
- t je standardizirana veličina jaza između dvaju srednjih vrijednosti. Njegov predznak odražava samo redoslijed kojim ste proslijedili vektore.
- df je broj stupnjeva slobode. Welch daje frakcijsku vrijednost; združeni test daje cijeli broj jednak n1 + n2 – 2.
- p-vrijednost je vjerojatnost da se vidi ovolika razlika ako bi stvarne srednje vrijednosti bile identične.
- Interval pouzdanosti ograničava stvarnu razliku. Kada sadrži nulu, razlika nije značajna na toj razini.
Ako se vaši podaci nalaze u jednom okviru podataka s jednim stupcem vrijednosti i jednim stupcem faktora, umjesto toga koristite sučelje formule, koje je lakše za čitanje i izbjegava ručno dijeljenje podataka:
t.test(weight ~ line, data = jars)
Koju verziju koristiti. Ostavite var.equal na zadanu vrijednost FALSE osim ako niste testirali i potvrdili jednake varijance. Welchova korekcija gotovo ništa ne košta kada se varijance podudaraju, a štiti vas kada se ne podudaraju.
Upareni T-test u R
Parni t-test, također nazvan t-test ovisnog uzorka, primjenjuje se kada se ista skupina mjeri dva puta. Tipične primjene su:
- A / B testiranje: Usporedite dvije varijante
- Studije slučaja i kontroleprije i poslije tretmana na istim subjektima
Primjer uparenog T-testa u R
Tvrtka za proizvodnju pića zainteresirana je za učinak programa popusta na prodaju. Tvrtka je odlučila pratiti dnevnu prodaju jedne od svojih trgovina u kojoj se promovira program. Na kraju programa, tvrtka želi znati postoji li statistička razlika između prosječne prodaje trgovine prije i nakon programa.
- tvrtka tracPratili smo prodaju svaki dan prije početka programa. Ovo je naš prvi vektor.
- Program se promovira tjedan dana, a prodaja se bilježi svaki dan. Ovo je naš drugi vektor.
- Provest ćete t-test kako biste procijenili učinkovitost programa. To se naziva upareni t-test jer vrijednosti oba vektora dolaze iz iste distribucije (tj. iste trgovine).
Testiranje hipoteze je:
- H0: Nema razlike u prosjeku
- H1: Dva su sredstva različita
Imajte na umu da klasični t-test pretpostavlja nepoznatu, ali jednaku varijancu u obje skupine. Stvarni podaci rijetko to točno zadovoljavaju, a ignoriranje razlike može iskriviti rezultat.
Rješenje je Welchov t-test, koji ublažava pretpostavku o jednakoj varijanci. R ga primjenjuje prema zadanim postavkama jer je var.equal NETOČNO osim ako ne kažete drugačije. U ovom skupu podataka oba vektora su generirana s istom standardnom devijacijom, tako da možete sigurno postaviti var.equal = TRUE.
Kreirate dva slučajna vektora iz Gaussove distribucije s višom sredinom za prodaju nakon programa.
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)
P-vrijednost je 0.04606, odmah ispod praga od 0.05, pa odbacujete H0 i zaključujete da se dva prosjeka značajno razlikuju. Čini se da je program popusta povećao prodaju.
⚠️ Važno: Gornji poziv uspoređuje dva vektora kao nezavisan uzorci. Budući da su obje serije mjerenja u istoj radionici, statistički ispravan poziv zbraja upareno = ISTINA:
t.test(sales_before, sales_after, paired = TRUE)
Spareni oblik testira srednju vrijednost dnevnih razlika umjesto razlike dviju srednjih vrijednosti. Uklanja varijaciju na razini trgovine koju dijele oba vektora i stoga ima veću statističku snagu.
Kako provjeriti pretpostavke T-testa u R-u
P-vrijednost t-testa ima smisla samo kada su njene pretpostavke važeće. Svaka od njih ima izravnu provjeru.
1. Normalnost. Testovi s jednim uzorkom i testovi s dva uzorka pretpostavljaju da su vrijednosti približno normalne; test s parovima pretpostavlja razlike su. Pregledajte QQ dijagram i potvrdite Shapiro-Wilkovim testom:
qqnorm(sugar_cookie); qqline(sugar_cookie)
shapiro.test(sugar_cookie)
# for a paired design, test the differences
shapiro.test(sales_after - sales_before)
Shapiro-Wilkova p-vrijednost iznad 0.05 znači da se normalnost ne može odbaciti. S više od otprilike 30 opažanja po skupini, središnji granični teorem čini t-test robusnim do umjereno asimetričnim.
2. Jednaka varijanca. Samo združeni test s dva uzorka treba ovo. Testirajte ga F-testom:
var.test(line_a, line_b)
P-vrijednost iznad 0.05 podržava jednake varijance, što opravdava var.equal = TRUE.
3. Nezavisnost. To proizlazi iz dizajna studije i ne može se testirati naknadno. Ako isti ispitanik doprinosi oba vektora, neovisni test je jednostavno pogrešan alat i potreban vam je upareni = TOČNO.
Kada pretpostavka ne uspije. Za očito nenormalne podatke s malim uzorcima, koristite alternative temeljene na rangu: wilcox.test(x, y) zamjenjuje t-test s dva uzorka, a wilcox.test(x, y, paired = TRUE) zamjenjuje uparenu verziju. Nijedan ne zahtijeva normalnost, iako oba imaju malu razliku u snazi kada su podaci zapravo normalni.
T-test u R-u: Ključne informacije i reference testova
- Statističko zaključivanje je umijeće generiranja zaključaka o distribuciji podataka.
- T-test pripada obitelji inferencijalne statistike. Obično se koristi da bi se otkrilo postoji li statistička razlika između srednjih vrijednosti dviju skupina.
- Jednouzorkovni t-test, ili Studentov test, uspoređuje srednju vrijednost vektora s teoretskom srednjom vrijednošću.
- Parni t-test, ili t-test ovisnog uzorka, primjenjuje se kada se ista skupina mjeri dva puta.
Donja tablica sažima svaki gore navedeni test:
| test | Hipoteza za testiranje | p-vrijednost | Code | Neobavezni argument |
|---|---|---|---|---|
| t-test jednog uzorka | Srednja vrijednost vektora razlikuje se od teorijske sredine | 0.05 |
t.test(x, mu = mean)
|
|
| t-test uparenog uzorka | Prosjek A se razlikuje od prosjeka B za iste subjekte | 0.05 |
t.test(A, B, paired = TRUE) |
var.equal = TRUE
|
Ako ste spremni pretpostaviti jednake varijance u neovisnom testu s dva uzorka, postavite var.equal = TRUE. Ostavite je na zadanoj vrijednosti FALSE kako biste pokrenuli sigurniju Welchovu korekciju.





