Seuraava artikkeli auttaa sinua: Aloittelijan opas opiskelijan t-testiin pythonissa tyhjästä
Tietojen kanssa käytetään erilaisia tilastollisia testejä, joista jokaisella saadaan erilainen käsitys. Kun meillä on dataa ryhmiin ja meidän on selvitettävä niistä muutama ominaisuus, käytetään tässä tapauksessa Studentin t-testiä. Tätä testiä käytetään yleensä vertaamaan yhtäläisyyksiä ja eroja kahden ryhmän välillä. Tässä artikkelissa käsittelemme Studentin t-testiä yksityiskohtaisesti alkaen sen perusteista. Oppiaksemme kuinka se voidaan toteuttaa käytännössä, otamme satunnaista dataa ja teemme testit pythonilla, joten yritämme oppia tämän konseptin tyhjästä. Tärkeimmät tässä artikkelissa käsiteltävät kohdat on lueteltu alla.
Sisällysluettelo
- Mikä on opiskelijan T-testi?
- T-testin tyypit
- Missä ja miten käytämme T-testiä?
- T-testin toteuttaminen pythonilla
Aloitetaan lyhyellä esittelyllä opiskelijan t-testiin.
Mikä on opiskelijan T-testi?
T-testi on riippumattomuustesti, jolla testataan kahden ryhmän välistä suhdetta, joille on tallennettu jatkuvaa tietoa keskiarvon ja keskihajonnan avulla ja joilla on tiettyjä yhteisiä piirteitä. Yleensä se testaa, kuuluvatko kaksi näytettä samaan populaatioon tarkastelemalla nollahypoteesia, jonka mukaan niiden keskiarvot ovat samat. Tämä on tilastollinen hypoteesin testi, jossa testitilasto seuraa Studentin t-jakaumaa nollahypoteesin alla.
T-testin tyypit?
T-testiä on kolmenlaisia:
- Yksi esimerkki t-testistä: Käytämme tätä testiä, kun on yksi otos ja tarvitsemme vertailun perusjoukon ja otoksen välillä testataksemme, kuuluuko otos annettuun populaatioon.
- Kaksi esimerkkiä t-testistä: Kun näytteitä on kaksi ryhmää ja haluamme verrata niitä selvittääksemme, kuuluvatko ne samaan populaatioon, tämä testi toteutetaan.
- Parillinen t-testi: Sitä käytetään, kun näytteet on yhdistetty. Kokeilemme esimerkiksi uutta ihmisharjoitusta ja otimme näytteitä harjoituksen jälki- ja ennen vaikutuksista. Nyt haluamme selvittää, onko tästä harjoituksesta hyötyä vai ei. Käytämme parillisia t-testejä erojen selvittämiseen, koska näytteet ovat yhteydessä toisiinsa.
Yhden näytteen t-testin matemaattinen kaava annetaan seuraavasti:
t = ( x̄ – μ) / (s / √n)
Missä,
t = Opiskelijan t-testi
m = näytteen keskiarvo
μ = populaation teoreettinen keskiarvo
s = näytteen keskihajonta
n = näytteen koko
Kuten edellä todettiin, kaavassa on kahdenlaisia keskiarvoja: väestö tarkoittaa ja näyte tarkoittaa. Ymmärrämme niiden merkityksen.
- Väestön keskiarvo on perusjoukon keskiarvo eli data, josta näytteet otetaan.
- Esimerkki keskiarvo on keskiarvo näytteestä, jolla testi suoritetaan.
Kahden näytteen testissä käytetään seuraavaa kaavaa:
t = ( x̄1– x̄2) / √ [(s12 / n1) + (s22 / n2)]
Missä,
x̄1 = 1.Samplen havaittu keskiarvo
x̄2 = 2. näytteen havaittu keskiarvo
s1 = 1stSamplen keskihajonta
s2 = 2. näytteen keskihajonta
n1 = 1stSamplen koko
n2 = 2. näytteen koko
Missä ja miten käytämme T-testiä?
Koska t-testi on parametrinen erotesti, käytämme sitä silloin, kun meidän on tarkistettava jatkuvan datan ryhmän välinen korrelaatio. Sitä voidaan käyttää vain kahdelle tietoryhmälle. Jos haluat verrata useampaa kuin kahta dataryhmää, käytä ANOVA-testiä tai post-hoc-testiä. Ennen kuin siirrymme käyttämään sitä, keskustelemme ensin joistakin oletuksista.
Koska kyseessä on parametrinen testi, oletukset olisivat samat kuin muut parametriset testit. T-testi olettaa tietosi:
- Ovat itsenäisiä,
- Niillä on normaalijakauma (noin) ja
- Varianssi on homogeeninen (varianssin määrä on sama tiedoissa)
Kuinka t-testiä käytetään?
Koska t-testi on hypoteesin tilastollinen testi, meidän on määriteltävä tämä hypoteesi. Nolla (H0) ja vaihtoehtoinen (H1) hypoteesi, joka vaihtelee t-testin tyypin mukaan.
- Hypoteesi yhden näytteen t-testille:
Ongelma: Vertaa populaation keskiarvoa ja otoksen keskiarvoa.
- H : Populaation ja otoksen keskiarvon välillä ei ole merkittävää eroa (μ = x).
- H1 : Populaation ja otoksen keskiarvon välillä on merkittävä ero (μ != x).
- Kahden otoksen t-testin hypoteesi:
Ongelma: Vertaa kahden ryhmän keskiarvoa.
- H: Ryhmien välillä ei ole merkittävää keskimääräistä eroa (μ1 = μ2)
- H1: Ryhmien välillä on merkittävä keskimääräinen ero (μ1!= μ2)
- Hypoteesi parinäytteen t-testille:
Ongelma: Vertaa kahden ryhmän keskiarvoja.
- H: Kahden näytteen keskiarvon välillä ei ole merkittävää eroa (x̄1= x̄2)
- H1: Kahden otoksen keskiarvon välillä on merkittävä ero (x̄1!= x̄2)
Toteutus pythonissa
Tämän osion tavoitteena on näyttää, miten erityyppisiä t-testejä voidaan toteuttaa. Kuten tiedämme, on olemassa kolmenlaisia t-testejä, joten aloitetaan nämä testit yksitellen.
- Yksi näyte t-testistä
Määritä hypoteesi
- H : populaation keskiarvo on suurempi tai yhtä suuri kuin otoksen keskiarvo (μ> = x)
- H1 : väestön keskiarvo on pienempi kuin otoksen keskiarvo (μ< x)
Tuomme kirjastoja, joita käytetään.
tuonti numpy as np from scipy import stats
Seuraavaksi luomme satunnaisen näytteen tai voimme lukea sen tietokehyksestä.
näyte = [183, 152, 178, 157, 194, 163, 144, 114, 178, 152, 118, 158, 172, 138]
pop_mean = 165
Olen luonut muuttujaan tallennetun satunnaisen näytteen näyte ja määritteli populaation keskiarvon muuttujassa pop_mean. Lasketaan näytteen keskiarvo ja näytteen keskivirhe.
keskiarvo = np.mean(sample) std_error = np.std(sample) / np.sqrt(len(sample)) näytteen keskiarvo: 157,21428571428572 standardivirhe: 6,034914208534632
Kaavan mukaan tarvitsemme näytekeskiarvon ja keskivirheen. Vakiovirheen kaava on:
vakiovirhe = (s / √n)
Missä,
s = näytteen keskihajonta
n = näytteen koko
np.std() käytetään keskihajonnan laskemiseen
np.sqrt(len()) käytetään otoskoon neliöjuuren laskemiseen
Lasketaan vertailun t-staattinen, t-kriittinen ja p-arvo.
# laskea t-tilastot t = abs(keskiarvo – pop_keskiarvo) / std_error print(‘t static:’,t) # kaksisuuntainen kriittinen arvo alfa = 0.05 t_crit = stats.t.ppf(q=0.975, df=13) print(“Kriittinen arvo t kaksipyrstölle:”,t_crit) # yksisuuntainen kriittinen arvo alfa = 0.05 t_crit = stats.t.ppf(q=0.95, df=13) print(“Kriittinen arvo t one tailed: “,t_crit) # saada kaksisuuntainen p-arvo p_arvo = 2*(1-stats.t.cdf(x=t, df=13)) print(“p-arvo:”,p_arvo)
t staattinen: 1,2901118419717794
Kriittinen arvo t kaksipyrstölle: 2,1603686564610127
Kriittinen arvo t one tailed: 1,7709333959867988
p-arvo: 0,21948866305060344Yllä oleva
Joten yllä olevan koodirivin avulla saimme t-staattisen, t-kriittisen ja p-arvon arvon. Koska p-arvo on suurempi kuin alfa-arvo, tuemme nollahypoteesia. Siksi populaation keskiarvo on suurempi kuin otoksen keskiarvo.
- Kaksi näytettä t-testiä
Ensin täsmennetään hypoteesi:
- H : Merkittävää keskimääräistä eroa ei ole (μ1 = μ2)
- H1 : Keskimääräinen ero on merkittävä (μ1!= μ2)
Tuomme kirjastoja, joita käytetään.
tuonti numpy as np from scipy import stats
Luodaan satunnainen näyte tai voimme lukea sen tietokehyksestä.
näyte_1=[13.4,10.9,11.2,11.8,14,15.3,14.2,12.6,17,16.2,16.5,15.7]
näyte_2=[12,11.7,10.7,11.2,14.8,14.4,13.9,13.7,16.9,16,15.6,16]
Olen luonut kaksi satunnaista näytettä, jotka sisältävät luettelon satunnaisista float-luvuista. Laske keskiarvo otokselle ja varianssi molemmille varianssille
näyte1_palkki, näyte2_palkki = np.keskiarvo(näyte_1), np.keskiarvo(näyte_2) n1, n2 = len(näyte_1), len(näyte_2) var_näyte1, var_näyte2= np.var(näyte_1, ddof=1), ample_np. , ddof=1) # yhdistetty otosvarianssi var = ( ((n1-1)*muut_sample1) + ((n2-1)*var_sample2) ) / (n1+n2-2) # vakiovirhe std_error = np.sqrt(var * (1.0 / n1 + 1.0 / n2)) print(“näyte_1 keskiarvo:”,np.round(näyte1_bar,4)) print(“näyte_2 keskiarvo:”,np.round(näyte2_bar,4)) print(“varianssi sample_1:”,np.round(var_sample1,4)) print(“näytteen_2:”,np.round(var_sample2,4)) print(“yhdistetty näytevarianssi:”,var) print(“vakiovirhe:”, std_error)
näyte_1 keskiarvo: 14.0667
näyte_2 keskiarvo: 13.9083
näytteen_1 varianssi: 4,4788
näytteen_2 varianssi: 4,3445
yhdistetyn näytteen varianssi: 4,411628787878788
vakiovirhe: 0.8574797167551339
Yllä olevalla koodirivillä olemme laskeneet kahden otoksen keskiarvon ja varianssin kaavan mukaan. Tulosteessa näemme, että kahden näytteen varianssissa on pieni ero, joten meidän on yhdistettävä näytteen varianssi ja laskettava sitten keskivirhe.
Lasketaan vertailun t-staattinen, t-kriittinen ja p-arvo.
# laskea t-tilastot t = abs(näyte1_bar – näyte2_bar) / std_error print(‘t static:’,t) # kaksisuuntainen kriittinen arvo alfa = 0,05 t_c = stats.t.ppf(q=0,975, df=12) print(“Kriittinen arvo t kaksisuuntaiselle:”,t_c) # yksisuuntainen kriittinen arvo alfa = 0,05 t_c = stats.t.ppf(q = 0,95, df = 12) print(“Kriittinen arvo t yksisuuntaiselle: “,t_c) # hanki kaksisuuntainen p-arvo p_two = 2*(1-stats.t.cdf(x=t, df=12)) print(“p-arvo kahdelle pyrstölle:”,p_two) # hanki yksi -pyrstö p-arvo p_one = 1-stats.t.cdf(x=t, df=12) print(“p-arvo yhdelle tailed:”,p_one)
t staattinen: 0,02623621941624538
Kriittinen arvo t kaksipyrstölle: 2,1788128296634177
Kriittinen arvo t one tailed: 1,782287555649159
p-arvo kaksisuuntaiselle: 0,9795001856247858
p-arvo yhden pyrstön kohdalla: 0,4897500928123929
Kuten ulostulossa havaittiin, p-arvo on suurempi kuin alfa-arvo, jonka tuemme nollahypoteesia. Siksi näiden kahden näytteen välillä ei ole merkittävää keskimääräistä eroa.
- Parillinen t-testi
Ensin täsmennetään hypoteesi:
- H : Ei muutosta opetuksen jälkeen (x̄1= x̄2)
- H1 : Opetusmaksun jälkeen tapahtuu muutos (x̄1!= x̄2)
Luodaan satunnainen näyte tai voimme lukea sen tietokehyksestä.
tulos_1 = [23, 20, 19, 21, 18, 20, 18, 17, 23, 16, 19]
tulos_2=[ 24, 19, 22, 18, 20, 22, 20, 20, 23, 20, 18]
Yllä oleva esimerkki on opiskelijoiden arvosanat ennen opetusta ja sen jälkeen. Laske keskiarvo, keskivirhe, statiikka, t-kriittinen ja p-arvo
keskiarvo1, keskiarvo2 = np.keskiarvo(tulos_1), np.keskiarvo(tulos_2) n = len(tulos_1) # havaintojen välinen summan neliöero d1 = summa([(result_1[i]-tulos_2[i])**2 i:lle alueella(n)]) # havaintojen välinen summaero d2 = summa([result_1[i]-tulos_2[i] i:lle alueella(n)]) std_dev = np.sqrt((d1 – (d2**2 / n)) / (n – 1)) # keskiarvon erotuksen standardivirhe se = std_dev / np.sqrt (n) t_stat = (keskiarvo1 – keskiarvo2) / se df = n – 1 # laske kriittinen arvo kriittinen =stats.t.ppf(1.0 – alpha, df) p = (1.0 – stats.t.cdf(abs(t_stat) ), df)) * 2.0 print(t_stat,kriittinen,p)
-1,7073311796734205 1,8124611228107335 0,11856467647601066
Tässä olemme laskeneet otoksen keskiarvon ja sitten löytäneet erojen neliösumman. Lopulta löysimme keskihajonnan ja keskivirheen sekä t-staattisen, t-kriittisen ja p-arvon. P-arvon (0.11) > alfa(0.05) perusteista kannatamme nollahypoteesia. Tästä syystä voimme päätellä, että tuloksessa ei ole muutosta opetuksen jälkeen.
Johtopäätös
Tämän artikkelin avulla voisimme oppia Studentin t-testin perusteista. Meillä oli myös reilu käsitys erilaisista t-testeistä niiden kaavoineen ja olettamuksineen. Näiden ohella meillä oli hyvä ymmärrys erityyppisten t-testien toteuttamisesta pythonissa alusta alkaen.
Viitteet
- Linkki yllä olevaan koodiin
- Scipy-dokumentaatio