Efectuarea unui T-Test în Python

Efectuarea unui T-Test în Python

Nodul sursă: 1902069

Efectuarea unui T-Test în Python
Imagine de editor

Intrebari cu cheie

  • Testul t este un test statistic care poate fi utilizat pentru a determina dacă există o diferență semnificativă între mediile a două eșantioane independente de date.
  • Ilustram cum poate fi aplicat un test t folosind setul de date iris și biblioteca Scipy a lui Python.

Testul t este un test statistic care poate fi utilizat pentru a determina dacă există o diferență semnificativă între mediile a două eșantioane independente de date. În acest tutorial, ilustrăm cea mai simplă versiune a testului t, pentru care vom presupune că cele două eșantioane au varianțe egale. Alte versiuni avansate ale testului t includ testul t al lui Welch, care este o adaptare a testului t și este mai fiabil atunci când cele două eșantioane au varianțe inegale și posibil dimensiuni inegale ale eșantionului.

Statistica t sau valoarea t se calculează după cum urmează:

 

Efectuarea unui T-Test în Python
 

Unde Ecuație

Ecuație este media eșantionului 1, Ecuație este media eșantionului 2, Ecuație este varianța eșantionului 1, Ecuație este varianța eșantionului 2, Ecuație este dimensiunea eșantionului 1 și Ecuație este dimensiunea eșantionului din eșantionul 2.

Pentru a ilustra utilizarea testului t, vom arăta un exemplu simplu folosind setul de date iris. Să presupunem că observăm două eșantioane independente, de exemplu lungimi de sepale de flori, și luăm în considerare dacă cele două probe au fost extrase din aceeași populație (de exemplu, aceeași specie de flori sau două specii cu caracteristici similare de sepale) sau două populații diferite.

Testul t cuantifică diferența dintre mediile aritmetice ale celor două eșantioane. Valoarea p cuantifică probabilitatea de a obține rezultatele observate, presupunând că ipoteza nulă (că eșantioanele sunt prelevate din populații cu aceleași medii populaționale) este adevărată. O valoare p mai mare decât un prag ales (de exemplu, 5% sau 0.05) indică faptul că observația noastră nu este atât de puțin probabil să fi avut loc întâmplător. Prin urmare, acceptăm ipoteza nulă a mijloacelor populației egale. Dacă valoarea p este mai mică decât pragul nostru, atunci avem dovezi împotriva ipotezei nule a mediilor populației egale.

Intrare T-Test

Intrările sau parametrii necesari pentru efectuarea unui test t sunt:

  • Două matrice a și b care conțin datele pentru eșantionul 1 și eșantionul 2

Ieșiri T-Test

Testul t returnează următoarele:

  • Statisticile t calculate
  • Valoarea p

Importați bibliotecile necesare

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

 

Încărcați setul de date Iris

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)

 

Calculați mediile eșantionului și variațiile eșantionului

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

 

Implementați testul t

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

 

producție 

Ttest_indResult(statistic=0.830066093774641, pvalue=0.4076270841218671)

 

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

 

producție 

Ttest_indResult(statistic=-0.830066093774641, pvalue=0.4076270841218671)

 

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

 

producție

Ttest_indResult(statistic=0.830066093774641, pvalue=0.4076132965045395)

Observatii

Observăm că utilizarea „adevărat” sau „fals” pentru parametrul „equal-var” nu modifică atât de mult rezultatele testului t. De asemenea, observăm că schimbarea ordinii matricelor de eșantion a_1 și b_1 produce o valoare negativă a testului t, dar nu modifică mărimea valorii testului t, așa cum era de așteptat. Deoarece valoarea p calculată este mult mai mare decât valoarea pragului de 0.05, putem respinge ipoteza nulă că diferența dintre mediile eșantionului 1 și eșantionului 2 este semnificativă. Aceasta arată că lungimile sepalului pentru eșantionul 1 și eșantionul 2 au fost extrase din aceleași date populației.

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)

 

Calculați mediile eșantionului și variațiile eșantionului

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

 

Implementați testul t

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

 

producție

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

Observatii

Observăm că utilizarea eșantioanelor cu dimensiuni inegale nu modifică semnificativ statisticile t și valoarea p. 
 

Efectuarea unui T-Test în Python

 

În rezumat, am arătat cum ar putea fi implementat un test t simplu folosind biblioteca scipy în python.
 
 
Benjamin O. Tayo este fizician, educator în știința datelor și scriitor, precum și proprietar al DataScienceHub. Anterior, Benjamin a predat Inginerie și Fizică la U. of Central Oklahoma, Grand Canyon U. și Pittsburgh State U.
 

Timestamp-ul:

Mai mult de la KDnuggets