Chi-vuông Python

Kiểm định Chi bình phương về tính độc lập (còn được gọi là Kiểm định Chi bình phương Pearson) là một phương pháp phi tham số được sử dụng để so sánh mối quan hệ giữa hai biến phân loại (danh nghĩa) trong một bảng dự phòng

Ví dụ, để xác định liệu phương pháp điều trị có liên quan đến kết quả điều trị hay không, người ta có thể sử dụng kiểm định chi bình phương để xác định tính độc lập của hai biến số, chẳng hạn như phương pháp điều trị (được điều trị hoặc không được điều trị) và kết quả (khỏi bệnh hoặc không khỏi bệnh). Bảng dự phòng 2x2 của ví dụ này sẽ trông như thế này,

Chi-vuông Python

Các giả thuyết cho phép kiểm định Chi bình phương về tính độc lập

Kiểm định chi bình phương cho tính độc lập phân tích giả thuyết khống rằng không có mối liên hệ nào giữa hai biến phân loại so với giả thuyết thay thế rằng có mối liên hệ giữa hai biến phân loại

Thống kê kiểm tra Chi bình phương được đưa ra là,

Pearson Chi-squared Formula

Bạn có thể đọc bài viết của tôi để hiểu cách thực hiện và diễn giải thử nghiệm giả thuyết

Phép thử Chi bình phương dựa trên phép tính gần đúng (cho giá trị p gần đúng) và do đó yêu cầu cỡ mẫu lớn hơn. Số lượng tần số dự kiến ​​không được <5 cho hơn 20% ô. Nếu cỡ mẫu nhỏ, phép kiểm chi bình phương không chính xác và bạn nên sử dụng phép kiểm chính xác của Fisher

Giả định kiểm tra chi bình phương

  • Hai biến là phân loại (danh nghĩa) và dữ liệu được lấy mẫu ngẫu nhiên
  • Các mức độ của các biến là loại trừ lẫn nhau
  • Số lượng tần suất dự kiến ​​cho ít nhất 80% ô trong bảng dự phòng ít nhất là 5. Thử nghiệm chính xác của Fisher phù hợp với số lượng tần số nhỏ
  • Số lượng tần suất dự kiến ​​​​không được nhỏ hơn 1
  • Các quan sát phải độc lập với nhau
  • Dữ liệu quan sát phải là số lượng tần suất chứ không phải tỷ lệ phần trăm, tỷ lệ hoặc dữ liệu được chuyển đổi

Tính toán kiểm tra chi bình phương cho tính độc lập trong Python

  • Chúng tôi sẽ sử dụng bioinfokit v0. 9. 5 trở lên và các gói python scipy
  • Kiểm tra tài liệu bioinfokit để cài đặt và tài liệu
  • Tải xuống tập dữ liệu giả định cho kiểm định chi bình phương về tính độc lập

Ghi chú. Nếu bạn có tập dữ liệu của riêng mình, bạn nên nhập nó dưới dạng pandas dataframe. Tìm hiểu cách nhập dữ liệu bằng pandas

kiểm tra độc lập chi bình phương bằng cách sử dụng bioinfokit,

from bioinfokit.analys import stat, get_data
# load example dataset
df = get_data('drugdata').data
df.head()
# output
   treatments  cured  noncured
0     treated     60        10
1  nontreated     30        25
# set treatments column as index
df = df.set_index('treatments')
# output
df.head()
            cured  noncured
treatments
treated        60        10
nontreated     30        25

# run chi-square test for independence
res = stat()
res.chisq(df=df)

# output
print(res.summary)
# corrected for the Yates’ continuity
Chi-squared test for independence

Test              Df    Chi-square      P-value
--------------  ----  ------------  -----------
Pearson            1       13.3365  0.000260291
Log-likelihood     1       13.4687  0.000242574

print(res.expected_df)

Expected frequency counts

      cured    noncured
--  -------  ----------
 0     50.4        19.6
 1     39.6        15.4

kiểm tra chi-square về tính độc lập bằng cách sử dụng hàm chi2_contingency từ gói scipy,

import numpy as np
from scipy.stats import chi2_contingency 
# using Pearson’s chi-squared statistic
# corrected for the Yates’ continuity
observed = np.array([[60, 10], [30, 25]])
chi_val, p_val, dof, expected =  chi2_contingency(observed)
chi_val, p_val, dof, expected
# output 
(13.3364898989899, 0.0002602911116400899, 1, array([[50.4, 19.6],
       [39.6, 15.4]]))

# without Yates’ correction for continuity
chi_val, p_val, dof, expected =  chi2_contingency(observed, correction=False)
chi_val, p_val, dof, expected
# output 
(14.842300556586274, 0.00011688424010613195, 1, array([[50.4, 19.6],
       [39.6, 15.4]]))
       
# for log-likelihood method run command as below
chi_val, p_val, dof, expected =  chi2_contingency(observed, lambda_="log-likelihood")

Hiệu chỉnh của Yates cho tính liên tục

  • Trong thử nghiệm χ2, xác suất rời rạc của số đếm được quan sát có thể được xấp xỉ bằng phân phối xác suất chi bình phương liên tục. Điều này có thể gây ra lỗi và cần được sửa bằng hiệu chỉnh liên tục
  • Hiệu chỉnh tính liên tục của Yates sửa đổi bảng dự phòng 2x2 và điều chỉnh sự khác biệt giữa số lượng được quan sát và số lượng dự kiến ​​bằng cách trừ đi giá trị của 0. 5 (xem công thức)
  • Hiệu chỉnh tính liên tục của Yates làm tăng giá trị p bằng cách giảm giá trị χ2. Giá trị p đã hiệu chỉnh gần với các kiểm định chính xác như kiểm định chính xác Fisher. Đôi khi, hiệu chỉnh của Yates có thể cho giá trị p bị hiệu chỉnh quá mức
  • χ2 và χ2 đã hiệu chỉnh của Yates tạo ra kết quả tương tự trên các mẫu lớn, nhưng χ2 đã hiệu chỉnh của Yates có thể bảo toàn trên các mẫu nhỏ hơn và cho giá trị p cao hơn

Diễn dịch

Giá trị p thu được từ kiểm định chi bình phương về tính độc lập là đáng kể (p < 0. 05), và do đó, chúng tôi kết luận rằng có một mối liên quan đáng kể giữa các phương pháp điều trị (được điều trị và không được điều trị) với kết quả điều trị (khỏi bệnh và không khỏi bệnh)

Tại sao là chi

Thử nghiệm này được sử dụng để xác định xem hai biến phân loại có độc lập hay trên thực tế chúng có liên quan với nhau hay không . Nếu hai biến phân loại là độc lập thì giá trị của biến này không làm thay đổi phân bố xác suất của biến kia.

thế nào là chi

Để tính chi bình phương, chúng ta lấy bình phương của chênh lệch giữa giá trị quan sát được (o) và giá trị mong đợi (e) rồi chia cho giá trị mong đợi. Depending on the number of categories of data, we may end up with two or more values. Chi square is the sum of those values.

Kiểm tra chi vuông tốt nhất để làm gì?

Kiểm tra chi bình phương được sử dụng để giúp xác định xem kết quả quan sát được có phù hợp với kết quả mong đợi hay không và để loại trừ các quan sát ngẫu nhiên. A chi-square test is appropriate for this when the data being analyzed are from a random sample, and when the variable in question is a categorical variable.