Testul T în programarea R: un exemplu și un exemplu pereche
⚡ Rezumat inteligent
Testul T din R compară mediile folosind funcția t.test(), acoperind un eșantion în raport cu o țintă fixă, două grupuri independente și măsuri repetate pereche. Această demonstrație execută fiecare variantă, citește corect valoarea p și verifică ipotezele subiacente.

Ce este Inferența Statistică?
Inferența statistică este arta de a genera concluzii despre distribuția datelor. Un specialist în știința datelor se confruntă adesea cu întrebări la care se poate răspunde doar științific. Prin urmare, inferența statistică este o strategie de testare a faptului dacă o ipoteză este adevărată, adică validată de date.
O strategie comună pentru evaluarea unei ipoteze este testul t, care vă spune dacă două medii sunt egale. Este cunoscut și sub numele de Testul elevuluiUn test t poate fi calculat pentru:
- Un singur vector față de o valoare fixă (test t cu un eșantion)
- Doi vectori din două grupuri separate (test t independent pentru două eșantioane)
- Doi vectori măsurați pe aceiași subiecți (test t pereche)
Fiecare test t presupune că datele sunt eșantionate aleatoriu și că valorile (sau, pentru un test pereche, diferențele) provin dintr-o populație distribuită aproximativ normal. Versiunea independentă cu două eșantioane presupune în plus că cele două grupuri sunt independente unul de celălalt, iar forma clasică presupune că varianțele lor sunt egale.
Ce este T-Test în programarea R?
Ideea de bază din spatele unui test T este de a folosi statisticile pentru a evalua două ipoteze contrare:
- H0ipoteza nulă, conform căreia media populației este egală cu valoarea testată
- H1: ipoteza alternativă, conform căreia media populației diferă de acea valoare
Testul t este conceput pentru eșantioane mici, unde aproximarea normală nu este fiabilă. Acesta necesită ca datele să aibă o distribuție aproximativ normală.
Sintaxa T-Test în R
Sintaxa de bază pentru t.test() în R este:
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
Înainte de a rula orice, potrivește aspectul datelor cu varianta corectă a testului.
Tipuri de teste T în R
Alegerea variantei greșite este cea mai frecventă greșeală a testului t, așa că începeți prin a potrivi aspectul datelor cu apelul corect.
| Tip | Folosește-l când | Apel R |
|---|---|---|
| O singură probă | Un grup comparat cu o valoare țintă cunoscută | t.test(x, mu = valoare) |
| Două eșantioane independente (Welch) | Două grupuri separate, varianțe posibil inegale | t.test(x, y) |
| Două eșantioane independente (combinate) | Două grupuri separate cu varianță egală | t.test(x, y, var.equal = TRUE) |
| împerecheat | Aceiași subiecți au măsurat de două ori | t.test(x, y, pereche = ADEVĂRAT) |
| Unilateral | Te interesează doar o diferență într-o singură direcție | t.test(x, mu = valoare, alternativă = „mai mare”) |
Dincolo de trei grupuri, un test t nu mai este potrivit. Treceți la test ANOVA, care menține rata generală de eroare la 5% în loc să o umfleze în comparații repetate în perechi.
O probă T-Test în R
Testul t One Sample, sau testul studentului, compară media unui vector cu o medie teoretică, . Formula folosită pentru a calcula testul t este:
Aici,
se referă la medie
la mijlocul teoretic
- s este abaterea standard
- n numărul de observaţii.
Pentru a evalua semnificația statistică a testului t, trebuie să calculați Valoarea p. Valoarea p variază de la 0 la 1 și se interpretează după cum urmează:
- O valoare p mai mică de 0.05 înseamnă că poți respinge ipoteza nulă. Reține că respingerea H0 nu este același lucru cu demonstrarea faptului că H1 este adevărată, ci înseamnă doar că datele sunt puțin probabile în condițiile H0.
- O valoare p mai mare de 0.05 indică faptul că nu aveți suficiente dovezi pentru a respinge ipoteza nulă.
Puteți construi valoarea p uitându-vă la valoarea absolută corespunzătoare a testului t în distribuția Student cu grade de libertate egale cu
De exemplu, cu 5 observații, comparați valoarea t cu distribuția Student cu 4 grade de libertate la un nivel de încredere de 95%. Pentru a respinge ipoteza nulă într-un test bilateral, valoarea t absolută trebuie să depășească 2.776.
Cf tabelul de mai jos:
Exemplu de test T cu un eșantion în R
Să presupunem că sunteți o companie care produce cookie-uri. Fiecare prăjitură ar trebui să conțină 10 grame de zahăr. Fursecurile sunt produse de o mașină care adaugă zahărul într-un bol înainte de a amesteca totul. Crezi că aparatul nu adaugă 10 grame de zahăr pentru fiecare prăjitură. Dacă presupunerea dvs. este adevărată, mașina trebuie reparată. Ai stocat nivelul de zahăr din treizeci de fursecuri.
notițe: Puteți crea un vector randomizat cu funcția rnorm(). Această funcție generează valori distribuite normal. Sintaxa de bază este:
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
Puteți crea o distribuție cu 30 de observații cu o medie de 9.99 și o abatere standard de 0.04.
set.seed(123) sugar_cookie <- rnorm(30, mean = 9.99, sd = 0.04) head(sugar_cookie)
ieșire:
## [1] 9.967581 9.980793 10.052348 9.992820 9.995172 10.058603
Puteți utiliza un test t cu un singur eșantion pentru a verifica dacă nivelul de zahăr este diferit de rețetă. Puteți trage un test de ipoteză:
- H0: Nivelul mediu de zahăr este egal cu 10
- H1: Nivelul mediu de zahăr este diferit de 10
Utilizați un nivel de semnificație de 0.05.
# H0 : mu = 10 t.test(sugar_cookie, mu = 10)
Iată rezultatul:
Valoarea p a testului t cu o singură probă este 0.1079, peste pragul de 0.05. Intervalul de încredere de 95% pentru medie se întinde de la 9.973 la 10.002 grame și conține valoarea țintă de 10. Prin urmare, nu puteți respinge H0: nu există suficiente dovezi că mașina se abate de la rețetă.
Test T independent cu două eșantioane în R
Testul t independent cu două eșantioane este varianta cea mai frecvent utilizată și se aplică ori de câte ori cele două seturi de măsurători provin de la subiecți diferiți: două ateliere, două mașini, două brațe de tratament.
Să presupunem că o fabrică are două linii de producție și doriți să știți dacă acestea umplu borcane cu aceeași greutate.
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)
Citiți rezultatul în patru pași.
- t este dimensiunea standardizată a decalajului dintre cele două medii. Semnul său reflectă doar ordinea în care ați transmis vectorii.
- df reprezintă gradele de libertate. Welch produce o valoare fracționară; testul combinat dă un număr întreg egal cu n1 + n2 – 2.
- Valoarea p este probabilitatea de a observa o diferență atât de mare dacă mediile reale ar fi identice.
- Interval de încredere limitele diferenței reale. Când conține zero, diferența nu este semnificativă la acel nivel.
Dacă datele se află într-un singur cadru de date cu o coloană de valori și o coloană de factori, utilizați în schimb interfața cu formule, care este mai ușor de citit și evită divizarea manuală a datelor:
t.test(weight ~ line, data = jars)
Ce versiune să folosiți. Lăsați var.equal la valoarea implicită FALSE, cu excepția cazului în care ați testat și confirmat varianțe egale. Corecția lui Welch nu costă aproape nimic în putere atunci când varianțele se întâmplă să se potrivească și vă protejează atunci când acestea nu se potrivesc.
Test T pereche în R
Testul t pentru eșantioane pereche, numit și testul t pentru eșantioane dependente, se aplică atunci când același grup este măsurat de două ori. Aplicațiile tipice sunt:
- Testarea A / B: Comparați două variante
- Studii de caz-controlînainte și după un tratament pe aceleași subiecți
Exemplu de test T pereche în R
O companie de băuturi este interesată să cunoască performanța unui program de reduceri la vânzări. Compania a decis să urmărească vânzările zilnice ale unuia dintre magazinele sale unde este promovat programul. La sfârșitul programului, compania dorește să știe dacă există o diferență statistică între vânzările medii ale magazinului înainte și după program.
- Compania tracAm gestionat vânzările în fiecare zi înainte de începerea programului. Acesta este primul nostru vector.
- Programul este promovat timp de o săptămână, iar vânzările se înregistrează în fiecare zi. Acesta este al doilea nostru vector.
- Veți efectua testul t pentru a aprecia eficacitatea programului. Acesta se numește un test t pereche deoarece valorile ambilor vectori provin din aceeași distribuție (adică același magazin).
Testarea ipotezei este:
- H0: Nicio diferență în medie
- H1: Cele două mijloace sunt diferite
Rețineți că testul t clasic presupune o varianță necunoscută, dar egală în ambele grupuri. Datele reale rareori satisfac exact această condiție, iar ignorarea diferenței poate distorsiona rezultatul.
Remediul este testul t al lui Welch, care relaxează ipoteza de varianță egală. R îl aplică în mod implicit deoarece var.equal este FALSE, cu excepția cazului în care specificați altfel. În acest set de date, ambii vectori au fost generați cu aceeași deviație standard, deci puteți seta în siguranță var.equal = TRUE.
Creați doi vectori aleatori dintr-o distribuție Gaussiană cu o medie mai mare pentru vânzările după program.
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)
Valoarea p este 0.04606, puțin sub pragul de 0.05, deci respingeți H0 și concluzionați că cele două medii diferă semnificativ. Programul de reduceri pare să fi crescut vânzările.
⚠️ Important: apelul de mai sus compară cei doi vectori ca independent mostre. Deoarece ambele serii sunt măsurători din același atelier, apelul statistic corect adaugă pereche = ADEVĂRAT:
t.test(sales_before, sales_after, paired = TRUE)
Forma pereche testează media diferențelor zilnice în loc de diferența dintre două medii. Elimină variația la nivel de magazin comună ambilor vectori și, prin urmare, are o putere statistică mai mare.
Cum se verifică ipotezele testului T în R
O valoare p a testului t este semnificativă doar atunci când ipotezele sale sunt valabile. Fiecare dintre ele are o verificare directă.
1. Normalitate. Testele cu o singură probă și cu două probe presupun că valorile sunt aproximativ normale; testul pereche presupune că diferenţele sunt. Inspectați un grafic QQ și confirmați cu testul Shapiro-Wilk:
qqnorm(sugar_cookie); qqline(sugar_cookie)
shapiro.test(sugar_cookie)
# for a paired design, test the differences
shapiro.test(sales_after - sales_before)
O valoare p Shapiro-Wilk peste 0.05 înseamnă că normalitatea nu poate fi respinsă. Cu mai mult de aproximativ 30 de observații per grup, teorema limitei centrale face ca testul t să fie robust până la o asimetrie moderată oricum.
2. Varianță egală. Doar testul cu două eșantioane grupate necesită acest lucru. Testați-l cu un test F:
var.test(line_a, line_b)
O valoare p peste 0.05 susține varianțe egale, ceea ce justifică var.equal = TRUE.
3. Independență. Acest lucru rezultă din designul studiului și nu poate fi testat ulterior. Dacă același subiect contribuie la ambii vectori, testul independent este pur și simplu instrumentul greșit și aveți nevoie de pereche = ADEVĂRAT.
Când o presupunere eșuează. Pentru date în mod clar nenormale cu eșantioane mici, utilizați alternativele bazate pe rang: wilcox.test(x, y) înlocuiește testul t pentru două eșantioane, iar wilcox.test(x, y, paired = TRUE) înlocuiește versiunea pereche. Niciuna nu necesită normalitate, deși ambele au o mică putere atunci când datele sunt de fapt normale.
Testul T în R: Concluzii cheie și referințe la teste
- Inferența statistică este arta de a genera concluzii despre distribuția datelor.
- Testul T aparține familiei de statistici inferențiale. Este folosit în mod obișnuit pentru a afla dacă există o diferență statistică între mediile a două grupuri.
- Testul t cu o singură mostră, sau testul Student, compară media unui vector cu o medie teoretică.
- Testul t pentru eșantioane pereche sau testul t pentru eșantioane dependente se aplică atunci când același grup este măsurat de două ori.
Tabelul de mai jos prezintă pe scurt fiecare test menționat mai sus:
| Testare | Ipoteza de testat | Valoarea p | Code | Argument opțional |
|---|---|---|---|---|
| test t cu o probă | Media unui vector este diferită de media teoretică | 0.05 |
t.test(x, mu = mean)
|
|
| test t eșantion pereche | Media A este diferită de media B pentru aceiași subiecți | 0.05 |
t.test(A, B, paired = TRUE) |
var.equal = TRUE
|
Dacă doriți să presupuneți varianțe egale într-un test independent cu două eșantioane, setați var.equal = TRUE. Lăsați-l la valoarea implicită FALSE pentru a rula corecția Welch mai sigură.




