Utføre en T-test i Python

Utføre en T-test i Python

Kilde node: 1902069

Utføre en T-test i Python
Bilde av redaktør

Nøkkelfunksjoner

  • T-testen er en statistisk test som kan brukes til å bestemme om det er en signifikant forskjell mellom middelverdiene til to uavhengige utvalg av data.
  • Vi illustrerer hvordan en t-test kan brukes ved å bruke iris-datasettet og Pythons Scipy-bibliotek.

T-testen er en statistisk test som kan brukes til å bestemme om det er en signifikant forskjell mellom middelverdiene til to uavhengige utvalg av data. I denne opplæringen illustrerer vi den mest grunnleggende versjonen av t-testen, hvor vi vil anta at de to prøvene har like varianser. Andre avanserte versjoner av t-testen inkluderer Welchs t-test, som er en tilpasning av t-testen, og er mer pålitelig når de to prøvene har ulik varians og muligens ulik prøvestørrelse.

t-statistikken eller t-verdien beregnes som følger:

 

Utføre en T-test i Python
 

hvor Ligning

Ligning er gjennomsnittet av prøve 1, Ligning er gjennomsnittet av prøve 2, Ligning er variansen til prøve 1, Ligning er variansen til prøve 2, Ligning er prøvestørrelsen til prøve 1, og Ligning er prøvestørrelsen til prøve 2.

For å illustrere bruken av t-testen vil vi vise et enkelt eksempel ved bruk av iris-datasettet. Anta at vi observerer to uavhengige prøver, f.eks. blomsterbegerbladlengder, og vi vurderer om de to prøvene ble tatt fra samme populasjon (f.eks. samme blomsterart eller to arter med lignende begerbladkarakteristikker) eller to forskjellige populasjoner.

T-testen kvantifiserer forskjellen mellom de aritmetiske gjennomsnittene til de to prøvene. P-verdien kvantifiserer sannsynligheten for å oppnå de observerte resultatene, forutsatt at nullhypotesen (at prøvene er trukket fra populasjoner med samme populasjonsmiddelverdi) er sann. En p-verdi større enn en valgt terskel (f.eks. 5 % eller 0.05) indikerer at vår observasjon ikke er så usannsynlig at den har skjedd ved en tilfeldighet. Derfor aksepterer vi nullhypotesen om like populasjonsmidler. Hvis p-verdien er mindre enn terskelen vår, så har vi bevis mot nullhypotesen om like populasjonsmidler.

T-testinngang

Inndataene eller parameterne som er nødvendige for å utføre en t-test er:

  • To matriser a og b som inneholder dataene for prøve 1 og prøve 2

T-test utganger

T-testen returnerer følgende:

  • Den beregnede t-statistikken
  • P-verdien

Importer nødvendige biblioteker

import numpy as np
from scipy import stats import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split

 

Last inn Iris-datasett

from sklearn import datasets
iris = datasets.load_iris()
sep_length = iris.data[:,0]
a_1, a_2 = train_test_split(sep_length, test_size=0.4, random_state=0)
b_1, b_2 = train_test_split(sep_length, test_size=0.4, random_state=1)

 

Beregn utvalgets gjennomsnitt og utvalgets varians

mu1 = np.mean(a_1) mu2 = np.mean(b_1) np.std(a_1) np.std(b_1)

 

Gjennomfør t-test

stats.ttest_ind(a_1, b_1, equal_var = False)

 

Produksjon 

Ttest_indResult(statistic=0.830066093774641, pvalue=0.4076270841218671)

 

stats.ttest_ind(b_1, a_1, equal_var=False)

 

Produksjon 

Ttest_indResult(statistic=-0.830066093774641, pvalue=0.4076270841218671)

 

stats.ttest_ind(a_1, b_1, equal_var=True)

 

Produksjon

Ttest_indResult(statistic=0.830066093774641, pvalue=0.4076132965045395)

Observasjoner

Vi observerer at bruken av "true" eller "false" for parameteren "equal-var" ikke endrer t-testresultatene så mye. Vi observerer også at utveksling av rekkefølgen til prøvematrisene a_1 og b_1 gir en negativ t-testverdi, men endrer ikke størrelsen på t-testverdien, som forventet. Siden den beregnede p-verdien er mye større enn terskelverdien på 0.05, kan vi forkaste nullhypotesen om at forskjellen mellom gjennomsnittet av prøve 1 og prøve 2 er signifikant. Dette viser at begerbladlengdene for prøve 1 og prøve 2 ble trukket fra samme populasjonsdata.

a_1, a_2 = train_test_split(sep_length, test_size=0.4, random_state=0)
b_1, b_2 = train_test_split(sep_length, test_size=0.5, random_state=1)

 

Beregn utvalgets gjennomsnitt og utvalgets varians

mu1 = np.mean(a_1) mu2 = np.mean(b_1) np.std(a_1) np.std(b_1)

 

Gjennomfør t-test

stats.ttest_ind(a_1, b_1, equal_var = False)

 

Produksjon

stats.ttest_ind(a_1, b_1, equal_var = False)

Observasjoner

Vi observerer at bruk av prøver med ulik størrelse ikke endrer t-statistikken og p-verdien signifikant. 
 

Utføre en T-test i Python

 

Oppsummert har vi vist hvordan en enkel t-test kan implementeres ved å bruke scipy-biblioteket i python.
 
 
Benjamin O. Tayo er fysiker, datavitenskapspedagog og forfatter, samt eier av DataScienceHub. Tidligere underviste Benjamin i ingeniørfag og fysikk ved U. of Central Oklahoma, Grand Canyon U., og Pittsburgh State U.
 

Tidstempel:

Mer fra KDnuggets