T-próba R programozásban: Egymintás és párosított példa
⚡ Okos összefoglaló
Az R-ben a t-próba a t.test() függvény segítségével hasonlítja össze az átlagokat, egy mintát egy fix célmintával, két független csoporttal és párosított ismételt mérésekkel lefedve. Ez a bemutató lefuttatja az egyes variánsokat, helyesen beolvassa a p-értéket, és ellenőrzi az alapul szolgáló feltételezéseket.

Mi az a statisztikai következtetés?
A statisztikai következtetés az adatok eloszlására vonatkozó következtetések levonásának művészete. Az adattudósok gyakran olyan kérdésekkel szembesülnek, amelyekre csak tudományosan lehet válaszolni. Ezért a statisztikai következtetés egy olyan stratégia, amelynek célja annak tesztelése, hogy egy hipotézis igaz-e, azaz hogy az adatok igazolják-e.
A hipotézisek értékelésének egy gyakori stratégiája a t-próba, amely megmutatja, hogy két átlag egyenlő-e. Más néven t-próba. DiáktesztEgy t-próba kiszámítható a következőkre:
- Egyetlen vektor egy fix érték függvényében (egymintás t-próba)
- Két vektor két különálló csoportból (független kétmintás t-próba)
- Két vektor mérése ugyanazon alanyokon (párosított t-próba)
Minden t-próba feltételezi, hogy az adatokat véletlenszerűen mintavételezzük, és az értékek (vagy párosított próba esetén a különbségek) egy közelítőleg normális eloszlású populációból származnak. A független kétmintás változat azt is feltételezi, hogy a két csoport független egymástól, a klasszikus forma pedig azt feltételezi, hogy a varianciáik egyenlőek.
Mi az a T-teszt az R programozásban?
A T-teszt mögött meghúzódó alapötlet az, hogy statisztikákat használjunk két ellentétes hipotézis értékelésére:
- H0: a nullhipotézis, miszerint a populáció átlaga megegyezik a tesztelt értékkel
- H1: az alternatív hipotézis, miszerint a populáció átlaga eltér ettől az értéktől
A t-próbát kis mintákra tervezték, ahol a normális közelítés megbízhatatlan. Megköveteli, hogy az adatok megközelítőleg normális eloszlásúak legyenek.
T-Test szintaxis az R-ben
A t.test() alapvető szintaxisa R-ben:
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
Mielőtt bármit futtatnál, igazítsd az adatelrendezést a teszt megfelelő változatához.
T-próba típusai R-ben
A rossz variáns kiválasztása a leggyakoribb t-próba hiba, ezért kezdjük azzal, hogy az adatelrendezést a megfelelő híváshoz illesztjük.
| típus | Használd, amikor | R hívás |
|---|---|---|
| Egymintás | Egy csoport összehasonlítása egy ismert célértékkel | t.teszt(x, mu = érték) |
| Független kétmintás (Welch) | Két különálló csoport, a varianciák esetleg egyenlőtlenek | t.teszt(x, y) |
| Független kétmintás (összevont) | Két különálló csoport azonos varianciával | t.teszt(x, y, változó.egyenlő = IGAZ) |
| Páros | Ugyanazokat az alanyokat kétszer mérték | t.teszt(x, y, párosítva = IGAZ) |
| Egyoldalú | Csak az egyik irányú különbség érdekel | t.teszt(x, mu = érték, alternatíva = „nagyobb”) |
Három csoporton túl a t-próba már nem megfelelő. Váltsunk a következőre: ANOVA teszt, ami az összesített hibaszázalékot 5 százalékon tartja ahelyett, hogy ismételt páros összehasonlítások során felfújná azt.
Egy minta T-teszt R-ben
A One Sample t-próba vagy a Student-féle teszt egy vektor átlagát hasonlítja össze egy elméleti átlaggal, . A t-próba kiszámításához használt képlet a következő:
Itt,
az átlagra utal
az elméleti átlaghoz
- s a szórás
- n a megfigyelések száma.
A t-próba statisztikai szignifikanciájának értékeléséhez ki kell számítani a p-érték Az p-érték 0 és 1 között van, és a következőképpen értelmezhető:
- A 0.05-nél kisebb p-érték azt jelenti, hogy elvethetjük a nullhipotézist. Fontos megjegyezni, hogy a H0 elvetése nem ugyanaz, mint a H1 igaznak bizonyítása, csupán azt jelenti, hogy az adatok valószínűtlenek H0 esetén.
- A 0.05-nél nagyobb p-érték azt jelzi, hogy nincs elegendő bizonyítékod a nullhipotézis elvetésére.
A p-értéket úgy állíthatja össze, hogy megnézi a Student-eloszlásban a t-próba megfelelő abszolút értékét, amelynek szabadságfoka egyenlő
Például 5 megfigyelés alapján összehasonlítjuk a t-értékünket a Student-eloszlással 4 szabadságfok mellett, 95%-os megbízhatósági szinten. Ahhoz, hogy egy kétoldali tesztben elvessük a nullhipotézist, az abszolút t-értéknek meg kell haladnia a 2.776-ot.
Lásd az alábbi táblázatot:
Egy minta T-teszt példa az R-ben
Tegyük fel, hogy Ön egy cookie-kat gyártó cég. Minden sütinek 10 gramm cukrot kell tartalmaznia. A sütiket egy gép állítja elő, amely egy tálban hozzáadja a cukrot, mielőtt mindent összekever. Úgy gondolja, hogy a gép nem ad hozzá 10 gramm cukrot minden sütihez. Ha a feltevés igaz, a gépet meg kell javítani. Harminc keksz cukorszintjét tárolta el.
Megjegyzések: Az rnorm() függvénnyel véletlenszerű vektort hozhatunk létre. Ez a függvény normál eloszlású értékeket generál. Az alap szintaxis a következő:
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
Létrehozhat egy eloszlást 30 megfigyeléssel, 9.99-es átlaggal és 0.04-es szórással.
set.seed(123) sugar_cookie <- rnorm(30, mean = 9.99, sd = 0.04) head(sugar_cookie)
output:
## [1] 9.967581 9.980793 10.052348 9.992820 9.995172 10.058603
Egymintás t-próbával ellenőrizheti, hogy a cukorszint eltér-e a receptben megadottól. Felállíthat egy hipotézis tesztet:
- H0: Az átlagos cukorszint 10
- H1: Az átlagos cukorszint eltér 10-től
0.05-ös szignifikanciaszintet használ.
# H0 : mu = 10 t.test(sugar_cookie, mu = 10)
Itt van a kimenet:
Az egymintás t-próba p-értéke 0.1079, ami meghaladja a 0.05-ös küszöbértéket. Az átlag 95 százalékos konfidenciaintervalluma 9.973 és 10.002 gramm között van, és tartalmazza a 10-es célértéket. Ezért a H0 nem utasítható el: nincs elegendő bizonyíték arra, hogy a gép eltér a recepttől.
Független kétmintás t-próba R-ben
A független, kétmintás t-próba a leggyakrabban használt változat, és akkor alkalmazható, ha a két mérési sorozat különböző alanyoktól származik: két műhelytől, két géptől, két kezelőkartól.
Tegyük fel, hogy egy gyár két gyártósort üzemeltet, és tudni szeretnéd, hogy az üvegeket ugyannyi súllyal töltik-e meg.
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)
Olvasd be a kimenetet négy lépésben.
- t a két átlag közötti rés szabványosított mérete. Az előjele csak a vektorok átadásának sorrendjét tükrözi.
- df a szabadsági fokok. A Welch-féle próba tört értéket ad; az összevont próba pedig n1 + n2 – 2 egész számot eredményez.
- p-érték Mekkora a valószínűsége annak, hogy ekkora különbséget látnánk, ha a valódi átlagok azonosak lennének.
- Megbízhatósági intervallum határolja a valódi különbséget. Amikor nullát tartalmaz, a különbség ezen a szinten nem szignifikáns.
Ha az adataid egyetlen adatkeretben helyezkednek el, amelyben egy értékoszlop és egy tényezőoszlop található, akkor használd a képletfelületet, amely könnyebben olvasható, és elkerülhető az adatok kézi felosztása:
t.test(weight ~ line, data = jars)
Melyik verziót kell használni. Hagyja a var.equal függvényt az alapértelmezett FALSE értéken, kivéve, ha tesztelte és megerősítette az egyenlő varianciákat. A Welch-korrekció szinte semmibe sem kerül, ha a varianciák megegyeznek, és megvédi Önt, ha nem.
Párosított T-teszt R-ben
A párosított t-próba, más néven függő mintás t-próba, akkor alkalmazható, ha ugyanazt a csoportot kétszer mérik. Tipikus alkalmazások:
- A / B tesztelés: Hasonlítson össze két változatot
- Esettanulmányokugyanazon alanyok kezelése előtt és után
Párosított T-teszt példa az R-ben
Egy italgyártó cég érdeklődik egy akciós program teljesítményéről az eladásokon. A cég úgy döntött, hogy követi az egyik üzletének napi eladásait, ahol a programot népszerűsítik. A program végén a cég azt szeretné tudni, hogy van-e statisztikai különbség az üzlet program előtti és utáni átlagos eladásai között.
- a cég tracminden nap nyomon követtem az eladásokat a program indulása előtt. Ez az első vektorunk.
- A programot egy hétig reklámozzák, és minden nap rögzítik az eladásokat. Ez a második vektorunk.
- Végezze el a t-tesztet, hogy megítélje a program hatékonyságát. Ezt páros t-tesztnek nevezzük, mivel mindkét vektor értéke ugyanabból az eloszlásból származik (azaz ugyanabból a boltból).
A hipotézis tesztelése a következő:
- H0: Nincs különbség az átlagban
- H1: A két eszköz különbözik
Ne feledjük, hogy a klasszikus t-próba ismeretlen, de azonos varianciát feltételez mindkét csoportban. A valós adatok ritkán felelnek meg ennek a feltételnek, és a különbség figyelmen kívül hagyása torzíthatja az eredményt.
A megoldás a Welch-féle t-próba, amely enyhíti az egyenlő variancia feltételezését. Az R alapértelmezés szerint alkalmazza, mivel a var.equal HAMIS, hacsak másképp nem jelezzük. Ebben az adathalmazban mindkét vektor azonos szórással lett generálva, így biztonságosan beállíthatjuk a var.equal = TRUE értéket.
Létrehozunk két véletlenszerű vektort egy Gauss-eloszlásból, amelyek magasabb átlagértékkel rendelkeznek a program utáni eladásokhoz.
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)
A p-érték 0.04606, éppen a 0.05-ös küszöbérték alatt, tehát elvetjük a H0-t, és arra a következtetésre jutunk, hogy a két átlag szignifikánsan különbözik. Úgy tűnik, hogy a diszkontprogram fellendítette az eladásokat.
⚠️ Fontos: a fenti hívás a két vektort a következőképpen hasonlítja össze: független minták. Mivel mindkét sorozat ugyanazon a műhelyen végzett mérés, a statisztikailag helyes becslés hozzáadódik párosítva = IGAZ:
t.test(sales_before, sales_after, paired = TRUE)
A párosított forma a napi különbségek átlagát teszteli két átlag különbsége helyett. Eltávolítja a mindkét vektor által megosztott üzletszintű eltérést, így nagyobb statisztikai ereje van.
Hogyan ellenőrizzük a T-teszt feltételezéseit R-ben?
Egy t-próba p-értéke csak akkor értelmes, ha a feltételezései érvényesek. Mindegyikre vonatkozik közvetlen ellenőrzés.
1. Normalitás. Az egy- és kétmintás tesztek feltételezik, hogy az értékek megközelítőleg normálisak; a párosított teszt a következőket feltételezi: különbségek vannak. Vizsgáljon meg egy QQ diagramot, és erősítse meg a Shapiro-Wilk teszttel:
qqnorm(sugar_cookie); qqline(sugar_cookie)
shapiro.test(sugar_cookie)
# for a paired design, test the differences
shapiro.test(sales_after - sales_before)
A 0.05 feletti Shapiro-Wilk p-érték azt jelenti, hogy a normalitás nem vethető el. Csoportonként több mint 30 megfigyelés esetén a centrális határeloszlás-tétel a t-próbát mindenképpen mérsékelt ferdülésig robusztussá teszi.
2. Egyenlő variancia. Csak az összevont kétmintás tesztnek van erre szüksége. Teszteld F-próbával:
var.test(line_a, line_b)
A 0.05 feletti p-érték egyenlő varianciákat támogat, ami indokolja a var.equal = TRUE állítást.
3. Függetlenség. Ez a tanulmány felépítéséből következik, és utólag nem tesztelhető. Ha ugyanaz az alany mindkét vektorhoz hozzájárul, akkor a független teszt egyszerűen rossz eszköz, és a párosított = IGAZ függvényre van szükség.
Amikor egy feltételezés kudarcot vall. Kis mintájú, egyértelműen nem normális adatok esetén használjuk a rang alapú alternatívákat: a wilcox.test(x, y) a kétmintás t-próbát, a wilcox.test(x, y, paired = TRUE) pedig a párosított verziót helyettesíti. Egyik sem követeli meg a normalitás esetét, bár mindkettő kis mértékben csökkenti a teljesítményt, ha az adatok valójában normálisak.
T-teszt R-ben: Főbb tanulságok és tesztreferencia
- A statisztikai következtetés az adatok eloszlására vonatkozó következtetések levonásának művészete.
- A T-teszt a következtetési statisztikák családjába tartozik. Általában arra használják, hogy megtudják, van-e statisztikai különbség két csoport átlaga között.
- Az egymintás t-próba, vagy Student-próba, egy vektor átlagát hasonlítja össze egy elméleti átlaggal.
- A párosított t-próba, vagy függő mintás t-próba akkor alkalmazható, ha ugyanazt a csoportot kétszer mérik.
Az alábbi táblázat összefoglalja a fent említett teszteket:
| Tesztelés | Tesztelendő hipotézis | p-érték | Code | Opcionális érv |
|---|---|---|---|---|
| egymintás t-próba | Egy vektor átlaga eltér az elméleti átlagtól | 0.05 |
t.test(x, mu = mean)
|
|
| páros minta t-próba | Az A átlag különbözik a B átlagtól ugyanazon alanyok esetében | 0.05 |
t.test(A, B, paired = TRUE) |
var.equal = TRUE
|
Ha egy független, kétmintás tesztben egyenlő varianciákat feltételez, akkor a var.equal = TRUE értéket állítsa be. Hagyja az alapértelmezett FALSE értéken a biztonságosabb Welch-korrekció futtatásához.




