T-test i R-programmering: Ett exempel och ett parat exempel

โšก Smart sammanfattning

T-test i R jรคmfรถr medelvรคrden med hjรคlp av funktionen t.test(), dรคr ett urval tรคcks mot ett fast mรฅl, tvรฅ oberoende grupper och parade upprepade mรคtningar. Denna genomgรฅng kรถr varje variant, lรคser p-vรคrdet korrekt och verifierar de underliggande antagandena.

  • ๐Ÿ“ Kรคrnstatistik: T-vรคrdet dividerar den observerade medelskillnaden med dess standardfel, sรฅ stรถrre magnituder talar emot nollhypotesen.
  • ๐Ÿงช Ett provtest: t.test(x, mu = 10) kontrollerar en enskild vektor mot ett teoretiskt vรคrde, sรฅsom en receptspecifikation.
  • ๐Ÿ‘ฅ Tvรฅprovstest: t.test(x, y) jรคmfรถr tvรฅ oberoende grupper och anvรคnder som standard Welch-korrigeringen fรถr ojรคmn varians.
  • ๐Ÿ”— Parat test: Addering av parat = SANT testar medelvรคrdet av skillnaderna inom individen och tar bort delad variation.
  • โœ… Antagandekontroller: Anvรคnd shapiro.test() fรถr normalitet och var.test() fรถr lika varians innan du rapporterar nรฅgot p-vรคrde.
  • ๐Ÿ“Š Beslutsregel: Ett p-vรคrde under 0.05 fรถrkastar nollhypotesen, men bevisar aldrig att alternativhypotesen รคr sann.

T-test i R Ett parat prov

Vad รคr statistisk slutledning?

Statistisk inferens รคr konsten att generera slutsatser om datafรถrdelningen. En dataforskare stรคlls ofta infรถr frรฅgor som bara kan besvaras vetenskapligt. Dรคrfรถr รคr statistisk inferens en strategi fรถr att testa om en hypotes รคr sann, dvs. validerad av data.

En vanlig strategi fรถr att bedรถma en hypotes รคr t-testet, som visar om tvรฅ medelvรคrden รคr lika. Det รคr ocksรฅ kรคnt som StudenttestEtt t-test kan berรคknas fรถr:

  1. En enda vektor mot ett fast vรคrde (ett-sampel t-test)
  2. Tvรฅ vektorer frรฅn tvรฅ separata grupper (oberoende tvรฅ-sampel t-test)
  3. Tvรฅ vektorer mรคtta pรฅ samma fรถrsรถkspersoner (parat t-test)

Varje t-test antar att data รคr slumpmรคssigt urvalade och att vรคrdena (eller, fรถr ett parat test, skillnaderna) kommer frรฅn en approximativt normalfรถrdelad population. Den oberoende versionen med tvรฅ urval antar dessutom att de tvรฅ grupperna รคr oberoende av varandra, och den klassiska formen antar att deras varianser รคr lika.

Vad รคr T-Test i R-programmering?

Grundidรฉn bakom ett T-test รคr att anvรคnda statistik fรถr att utvรคrdera tvรฅ motsatta hypoteser:

  • H0nollhypotesen, att populationsmedelvรคrdet รคr lika med det vรคrde som testas
  • H1: den alternativa hypotesen, att populationsmedelvรคrdet skiljer sig frรฅn det vรคrdet

T-testet รคr utformat fรถr smรฅ stickprovsstorlekar, dรคr normalapproximationen รคr otillfรถrlitlig. Det krรคver att data รคr approximativt normalfรถrdelade.

T-testsyntax i R

Den grundlรคggande syntaxen fรถr t.test() i R รคr:

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

Innan du kรถr nรฅgot, matcha din datalayout med rรคtt variant av testet.

Typer av T-test i R

Att vรคlja fel variant รคr det vanligaste misstaget vid t-test, sรฅ bรถrja med att matcha din datalayout med rรคtt anrop.

Typ Anvรคnd den nรคr R-samtal
Ett prov En grupp jรคmfรถrdes med ett kรคnt mรฅlvรคrde t.test(x, mu = vรคrde)
Oberoende tvรฅprov (Welch) Tvรฅ separata grupper, varianser mรถjligen ojรคmna t.test(x, y)
Oberoende tvรฅprov (poolat) Tvรฅ separata grupper med lika varians t.test(x, y, var.equal = TRUE)
parat Samma fรถrsรถkspersoner mรคttes tvรฅ gรฅnger t.test(x, y, parat = SANT)
Ensidig Du bryr dig bara om skillnaden i en riktning t.test(x, mu = vรคrde, alternativ = "stรถrre")

Utรถver tre grupper รคr ett t-test inte lรคngre lรคmpligt. Vรคxla till ANOVA test, vilket hรฅller den totala felfrekvensen pรฅ 5 procent istรคllet fรถr att blรฅsa upp den รถver upprepade parvisa jรคmfรถrelser.

Ett prov T-test i R

One Sample t-testet, eller studenttestet, jรคmfรถr medelvรคrdet av en vektor med ett teoretiskt medelvรคrde, Ett prov T-test i R. Formeln som anvรคnds fรถr att berรคkna t-testet รคr:

Ett prov T-test i R

Hรคr,

  • Ett prov T-test i R hรคnvisar till medelvรคrdet
  • Ett prov T-test i R till det teoretiska medelvรคrdet
  • s รคr standardavvikelsen
  • n antalet observationer.

Fรถr att utvรคrdera den statistiska signifikansen fรถr t-testet mรฅste du berรคkna p-vรคrde. De p-vรคrde strรคcker sig frรฅn 0 till 1 och tolkas enligt fรถljande:

  • Ett p-vรคrde lรคgre รคn 0.05 innebรคr att du kan fรถrkasta nollhypotesen. Observera att att fรถrkasta H0 inte รคr samma sak som att bevisa att H1 รคr sann, det betyder bara att data รคr osannolika under H0.
  • Ett p-vรคrde hรถgre รคn 0.05 indikerar att du inte har tillrรคckligt med bevis fรถr att fรถrkasta nollhypotesen.

Du kan konstruera p-vรคrdet genom att titta pรฅ motsvarande absoluta vรคrde fรถr t-testet i Studentfรถrdelningen med en frihetsgrader lika med Ett prov T-test i R

Till exempel, med 5 observationer jรคmfรถr du ditt t-vรคrde mot Studentfรถrdelningen med 4 frihetsgrader vid 95 procents konfidensnivรฅ. Fรถr att fรถrkasta nollhypotesen i ett tvรฅsidigt test mรฅste det absoluta t-vรคrdet รถverstiga 2.776.

Se tabellen nedan:

Ett prov T-test i R

Ett exempel pรฅ T-test i R

Anta att du รคr ett fรถretag som producerar cookies. Varje kaka ska innehรฅlla 10 gram socker. Kakorna tillverkas av en maskin som tillsรคtter sockret i en skรฅl innan allt blandas. Du tror att maskinen inte tillsรคtter 10 gram socker fรถr varje kaka. Om ditt antagande รคr sant mรฅste maskinen fixas. Du lagrade sockernivรฅn fรถr trettio kakor.

Anmรคrkningar: Du kan skapa en randomiserad vektor med funktionen rnorm(). Denna funktion genererar normalfรถrdelade vรคrden. Den grundlรคggande syntaxen รคr:

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

Du kan skapa en fรถrdelning med 30 observationer med ett medelvรคrde pรฅ 9.99 och en standardavvikelse pรฅ 0.04.

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

Produktion:

## [1]  9.967581  9.980793 10.052348  9.992820  9.995172 10.058603

Du kan anvรคnda ett t-test med ett prov fรถr att kontrollera om sockernivรฅn skiljer sig frรฅn receptet. Du kan rita ett hypotestest:

  • H0: Den genomsnittliga nivรฅn av socker รคr lika med 10
  • H1: Den genomsnittliga nivรฅn av socker รคr annorlunda รคn 10

Du anvรคnder en signifikansnivรฅ pรฅ 0.05.

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

Hรคr รคr utgรฅngen:

Ett exempel pรฅ T-test i R

P-vรคrdet fรถr t-testet med ett stickprov รคr 0.1079, vilket รคr รถver trรถskelvรคrdet pรฅ 0.05. 95-procentigt konfidensintervall fรถr medelvรคrdet gรฅr frรฅn 9.973 till 10.002 gram, och det innehรฅller mรฅlvรคrdet 10. Du kan dรคrfรถr inte fรถrkasta H0: det finns inte tillrรคckligt med bevis fรถr att maskinen avviker frรฅn receptet.

Oberoende tvรฅ-sampel T-test i R

Det oberoende t-testet med tvรฅ stickprov รคr den vanligaste varianten, och det gรคller nรคr de tvรฅ uppsรคttningarna mรคtningar kommer frรฅn olika fรถrsรถkspersoner: tvรฅ verkstรคder, tvรฅ maskiner, tvรฅ behandlingsarmar.

Anta att en fabrik har tvรฅ produktionslinjer och du vill veta om de fyller burkar till samma vikt.

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)

Lรคs utdata i fyra steg.

  1. t รคr den standardiserade storleken pรฅ gapet mellan de tvรฅ medelvรคrdena. Dess tecken รฅterspeglar endast den ordning i vilken du skickade vektorerna.
  2. df รคr frihetsgraderna. Welch producerar ett brรฅkvรคrde; det poolade testet ger ett heltal lika med n1 + n2 โ€“ 2.
  3. p-vรคrde รคr sannolikheten att se ett sรฅ stort gap om de verkliga medelvรคrdena var identiska.
  4. Konfidensintervall begrรคnsar den sanna skillnaden. Nรคr den innehรฅller noll รคr skillnaden inte signifikant pรฅ den nivรฅn.

Om dina data finns i en enda dataram med en kolumn med vรคrden och en faktorkolumn, anvรคnd formelgrรคnssnittet istรคllet, vilket รคr lรคttare att lรคsa och undviker att dela upp data manuellt:

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

Vilken version ska anvรคndas. Lรคmna var.equals standardvรคrde pรฅ FALSE om du inte har testat och bekrรคftat lika varianser. Welchs korrigering kostar nรคstan ingenting i kraft nรคr varianserna rรฅkar matcha, och den skyddar dig nรคr de inte gรถr det.

Parat T-test i R

Parat t-test, รคven kallat beroende stickprovs-t-test, anvรคnds nรคr samma grupp mรคts tvรฅ gรฅnger. Typiska tillรคmpningar รคr:

  • A / B-test: Jรคmfรถr tvรฅ varianter
  • Fallkontrollstudierfรถre och efter en behandling pรฅ samma fรถrsรถkspersoner

Parat T-testexempel i R

Ett dryckesfรถretag รคr intresserade av att veta resultatet av ett rabattprogram pรฅ fรถrsรคljningen. Fรถretaget bestรคmde sig fรถr att fรถlja den dagliga fรถrsรคljningen i en av sina butiker dรคr programmet marknadsfรถrs. I slutet av programmet vill fรถretaget veta om det finns en statistisk skillnad mellan den genomsnittliga fรถrsรคljningen i butiken fรถre och efter programmet.

  • Fรถretaget tracKรถrde fรถrsรคljningen varje dag innan programmet startade. Detta รคr vรฅr fรถrsta vektor.
  • Programmet marknadsfรถrs under en vecka och fรถrsรคljningen registreras varje dag. Detta รคr vรฅr andra vektor.
  • Du kommer att utfรถra t-testet fรถr att bedรถma programmets effektivitet. Detta kallas ett parat t-test eftersom vรคrdena fรถr bรฅda vektorerna kommer frรฅn samma distribution (dvs samma butik).

Hypotestestningen รคr:

  • H0: Ingen skillnad i medelvรคrde
  • H1: De tvรฅ sรคtten รคr olika

Kom ihรฅg att det klassiska t-testet antar en okรคnd men lika stor varians i bรฅda grupperna. Verkliga data uppfyller sรคllan detta exakt, och att ignorera skillnaden kan fรถrvrรคnga resultatet.

Lรถsningen รคr Welchs t-test, vilket minskar antagandet om lika varians. R tillรคmpar det som standard eftersom var.equal รคr FALSE om du inte anger nรฅgot annat. I denna datauppsรคttning genererades bรฅda vektorerna med samma standardavvikelse, sรฅ du kan sรคkert sรคtta var.equal = TRUE.

Du skapar tvรฅ slumpmรคssiga vektorer frรฅn en gaussisk fรถrdelning med ett hรถgre medelvรคrde fรถr fรถrsรคljningen efter programmet.

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)

Parat T-testexempel i R

P-vรคrdet รคr 0.04606, strax under trรถskelvรคrdet 0.05, sรฅ du fรถrkastar H0 och drar slutsatsen att de tvรฅ medelvรคrdena skiljer sig signifikant. Rabattprogrammet verkar ha รถkat fรถrsรคljningen.

โš ๏ธ Viktigt: anropet ovan jรคmfรถr de tvรฅ vektorerna som oberoende prover. Eftersom bรฅda serierna รคr mรคtningar pรฅ samma verkstad, adderar det statistiskt korrekta anropet parat = SANT:

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

Den parade formen testar medelvรคrdet av dag-fรถr-dag-skillnaderna istรคllet fรถr skillnaden mellan tvรฅ medelvรคrden. Den tar bort variationen pรฅ verkstadsnivรฅ som delas av bรฅda vektorerna och har dรคrfรถr stรถrre statistisk styrka.

Hur man kontrollerar T-testantaganden i R

Ett t-tests p-vรคrde รคr bara meningsfullt nรคr dess antaganden gรคller. Var och en har en direkt kontroll.

1. Normalitet. En- och tvรฅ-stickprovstesterna antar att vรคrdena รคr ungefรคr normala; det parade testet antar att skillnader Inspektera ett QQ-diagram och bekrรคfta med Shapiro-Wilk-testet:

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

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

Ett Shapiro-Wilk p-vรคrde รถver 0.05 innebรคr att normaliteten inte kan fรถrkastas. Med mer รคn cirka 30 observationer per grupp gรถr den centrala grรคnsvรคrdessatsen t-testet robust till mรฅttlig skevhet รคndรฅ.

2. Lika varians. Endast det poolade tvรฅ-stickprovstestet behรถver detta. Testa det med ett F-test:

var.test(line_a, line_b)

Ett p-vรคrde รถver 0.05 stรถder lika varianser, vilket motiverar att var.equal = TRUE.

3. Oberoende. Detta fรถljer av studiedesignen och kan inte testas i efterhand. Om samma fรถrsรถksperson bidrar till bรฅda vektorerna รคr det oberoende testet helt enkelt fel verktyg och du behรถver parat = SANT.

Nรคr ett antagande fallerar. Fรถr tydligt icke-normala data med smรฅ stickprov, anvรคnd de rangbaserade alternativen: wilcox.test(x, y) ersรคtter t-testet med tvรฅ stickprov och wilcox.test(x, y, paired = TRUE) ersรคtter den parade versionen. Ingen av dem krรคver normalitet, รคven om bรฅda utbyter lite makt nรคr data faktiskt รคr normala.

T-test i R: Viktiga slutsatser och testreferenser

  • Statistisk slutledning รคr konsten att dra slutsatser om fรถrdelningen av data.
  • T-testet tillhรถr familjen av slutsatsstatistik. Det anvรคnds ofta fรถr att ta reda pรฅ om det finns en statistisk skillnad mellan medelvรคrdena fรถr tvรฅ grupper.
  • Ett-sample t-test, eller Students test, jรคmfรถr medelvรคrdet av en vektor med ett teoretiskt medelvรคrde.
  • Det parade t-testet, eller det beroende stickprovets t-test, tillรคmpas nรคr samma grupp mรคts tvรฅ gรฅnger.

Tabellen nedan sammanfattar varje test som behandlats ovan:

Testa Hypotes att testa p-vรคrde Code Valfritt argument
ett-prov t-test Medelvรคrdet fรถr en vektor skiljer sig frรฅn det teoretiska medelvรคrdet 0.05
t.test(x, mu = mean)
parat prov t-test Medelvรคrde A skiljer sig frรฅn medelvรคrde B fรถr samma fรถrsรถkspersoner 0.05
t.test(A, B, paired = TRUE)
var.equal = TRUE

Om du รคr villig att anta lika varianser i ett oberoende tvรฅprovstest, sรคtt var.equal = TRUE. Lรฅt standardvรคrdet vara FALSE fรถr att kรถra den sรคkrare Welch-korrigeringen.

Vanliga frรฅgor

Ett parat test analyserar skillnader inom individer nรคr samma individer mรคts tvรฅ gรฅnger. Ett oberoende test jรคmfรถr tvรฅ separata grupper. Att anvรคnda det oberoende testet pรฅ parade data fรถrkastar information och minskar den statistiska styrkan.

Anvรคnd Welch nรคr du inte har bekrรคftat lika varianser, vilket รคr anledningen till att R anvรคnder det som standard. Det kostar nรคstan ingen energi nรคr varianserna matchar och skyddar felfrekvensen nรคr de inte gรถr det.

Fรถr smรฅ stickprov, byt till Wilcoxons ranksumtest eller signed-ranktest med wilcox.test(). Fรถr stรถrre stickprov gรถr den centrala grรคnsvรคrdessatsen att t-testet รคr tillfรถrlitligt trots mรฅttliga avvikelser frรฅn normalitet.

Team anvรคnder parade t-tester fรถr att jรคmfรถra tvรฅ modeller รถver identiska korsvalideringsvikningar och fรถr att bedรถma om ett A/B-experimentresultat รคr verkligt. Den parade designen tar bort variationer mellan olika vikningar frรฅn jรคmfรถrelsen.

Ja. AI-assistenter kan fรถrklara frihetsgrader, รถversรคtta konfidensintervall till enkelt sprรฅk och varna nรคr fel variant har valts. Bekrรคfta varje avlรคsning med dina egna shapiro.test()- och var.test()-resultat.

Sammanfatta detta inlรคgg med: