Thực hiện T-Test trong Python

Thực hiện T-Test trong Python

Nút nguồn: 1902069

Thực hiện T-Test trong Python
Hình ảnh của Editor

Chìa khóa chính

  • Kiểm định t là một kiểm định thống kê có thể được sử dụng để xác định xem liệu có sự khác biệt đáng kể giữa giá trị trung bình của hai mẫu dữ liệu độc lập hay không.
  • Chúng tôi minh họa cách áp dụng t-test bằng cách sử dụng bộ dữ liệu iris và thư viện Scipy của Python.

Kiểm định t là một kiểm định thống kê có thể được sử dụng để xác định xem liệu có sự khác biệt đáng kể giữa giá trị trung bình của hai mẫu dữ liệu độc lập hay không. Trong hướng dẫn này, chúng tôi minh họa phiên bản cơ bản nhất của thử nghiệm t, trong đó chúng tôi sẽ giả định rằng hai mẫu có phương sai bằng nhau. Các phiên bản nâng cao khác của thử nghiệm t bao gồm thử nghiệm t của Welch, là một phiên bản phỏng theo thử nghiệm t và đáng tin cậy hơn khi hai mẫu có phương sai không bằng nhau và có thể cỡ mẫu không bằng nhau.

Thống kê t hoặc giá trị t được tính như sau:

 

Thực hiện T-Test trong Python
 

Ở đâu Phương trình

Phương trình là giá trị trung bình của mẫu 1, Phương trình là giá trị trung bình của mẫu 2, Phương trình là phương sai của mẫu 1, Phương trình là phương sai của mẫu 2, Phương trình là cỡ mẫu của mẫu 1, và Phương trình là cỡ mẫu của mẫu 2.

Để minh họa việc sử dụng t-test, chúng tôi sẽ trình bày một ví dụ đơn giản sử dụng tập dữ liệu mống mắt. Giả sử chúng ta quan sát hai mẫu độc lập, ví dụ như chiều dài đài hoa và chúng ta đang xem xét liệu hai mẫu đó có được lấy từ cùng một quần thể hay không (ví dụ: cùng một loài hoa hoặc hai loài có đặc điểm đài hoa giống nhau) hay hai quần thể khác nhau.

Kiểm định t định lượng sự khác biệt giữa giá trị trung bình số học của hai mẫu. Giá trị p định lượng xác suất thu được các kết quả quan sát được, giả sử giả thuyết khống (rằng các mẫu được lấy từ các quần thể có cùng phương tiện tổng thể) là đúng. Giá trị p lớn hơn ngưỡng đã chọn (ví dụ 5% hoặc 0.05) cho thấy rằng quan sát của chúng tôi không có khả năng xảy ra một cách tình cờ. Vì vậy, chúng tôi chấp nhận giả thuyết không về ý nghĩa dân số bằng nhau. Nếu giá trị p nhỏ hơn ngưỡng của chúng tôi thì chúng tôi có bằng chứng chống lại giả thuyết khống về phương tiện dân số bằng nhau.

Đầu vào thử nghiệm T

Các đầu vào hoặc tham số cần thiết để thực hiện kiểm tra t là:

  • Hai mảng a b chứa dữ liệu cho mẫu 1 và mẫu 2

Đầu ra T-Test

Kiểm tra t trả về kết quả sau:

  • Thống kê t được tính toán
  • Giá trị p

Nhập các thư viện cần thiết

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

 

Tải bộ dữ liệu 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)

 

Tính giá trị trung bình mẫu và phương sai mẫu

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

 

Thực hiện t-test

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

 

Đầu ra 

Ttest_indResult(statistic=0.830066093774641, pvalue=0.4076270841218671)

 

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

 

Đầu ra 

Ttest_indResult(statistic=-0.830066093774641, pvalue=0.4076270841218671)

 

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

 

Đầu ra

Ttest_indResult(statistic=0.830066093774641, pvalue=0.4076132965045395)

Các quan sát

Chúng tôi nhận thấy rằng việc sử dụng “true” hoặc “false” cho tham số “equal-var” không làm thay đổi nhiều kết quả kiểm tra t. Chúng tôi cũng quan sát thấy rằng việc hoán đổi thứ tự của các mảng mẫu a_1 và b_1 mang lại giá trị t-test âm, nhưng không làm thay đổi độ lớn của giá trị t-test như mong đợi. Vì giá trị p được tính toán lớn hơn nhiều so với giá trị ngưỡng 0.05 nên chúng ta có thể bác bỏ giả thuyết khống rằng sự khác biệt giữa giá trị trung bình của mẫu 1 và mẫu 2 là đáng kể. Điều này cho thấy độ dài đài hoa của mẫu 1 và mẫu 2 được rút ra từ cùng một dữ liệu quần thể.

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)

 

Tính giá trị trung bình mẫu và phương sai mẫu

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

 

Thực hiện t-test

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

 

Đầu ra

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

Các quan sát

Chúng tôi nhận thấy rằng việc sử dụng các mẫu có kích thước không đồng đều không làm thay đổi đáng kể thống kê t và giá trị p. 
 

Thực hiện T-Test trong Python

 

Tóm lại, chúng tôi đã chỉ ra cách có thể triển khai một bài kiểm tra t đơn giản bằng thư viện scipy trong python.
 
 
Benjamin O. Tayo là Nhà vật lý, Nhà giáo dục Khoa học Dữ liệu và Nhà văn, đồng thời là Chủ sở hữu của DataScienceHub. Trước đây, Benjamin đang dạy Kỹ thuật và Vật lý tại U. of Central Oklahoma, Grand Canyon U. và Pittsburgh State U.
 

Dấu thời gian:

Thêm từ Xe đẩy