Hướng dẫn dùng chi distribution python

Cập nhật: như đã lưu ý, chisqprob () không được dùng cho phiên bản scipy 0.17.0 trở đi. Giá trị chi-square có độ chính xác cao hiện có thể được lấy qua scipy.stats.distributions.chi2.sf (), ví dụ:

>>>from scipy.stats.distributions import chi2 >>>chi2.sf(3.84,1) 0.050043521248705189 >>>chi2.sf(1424,1) 1.2799986253099803e-311

Mặc dù stats.chisqprob () và 1-stats.chi2.cdf () xuất hiện có thể so sánh được đối với các giá trị chi-square nhỏ, đối với các giá trị chi-square lớn thì ưu tiên hơn. Giá trị thứ hai không thể cung cấp giá trị p nhỏ hơn epsilon máy và sẽ đưa ra các câu trả lời rất không chính xác gần với epsilon máy. Như được trình bày bởi những người khác, các giá trị có thể so sánh cho kết quả là các giá trị chi bình phương nhỏ bằng hai phương pháp:

>>>from scipy.stats import chisqprob, chi2 >>>chisqprob(3.84,1) 0.050043521248705189 >>>1 - chi2.cdf(3.84,1) 0.050043521248705147

Sử dụng 1-chi2.cdf () được chia nhỏ tại đây:

>>>1 - chi2.cdf(67,1) 2.2204460492503131e-16 >>>1 - chi2.cdf(68,1) 1.1102230246251565e-16 >>>1 - chi2.cdf(69,1) 1.1102230246251565e-16 >>>1 - chi2.cdf(70,1) 0.0

Trong khi chisqprob () cung cấp cho bạn kết quả chính xác cho một phạm vi giá trị chi-square lớn hơn nhiều, tạo ra giá trị p gần bằng giá trị float nhỏ nhất lớn hơn 0, cho đến khi nó quá chảy:

>>>chisqprob(67,1) 2.7150713219425247e-16 >>>chisqprob(68,1) 1.6349553217245471e-16 >>>chisqprob(69,1) 9.8463440314253303e-17 >>>chisqprob(70,1) 5.9304458500824782e-17 >>>chisqprob(500,1) 9.505397766554137e-111 >>>chisqprob(1000,1) 1.7958327848007363e-219 >>>chisqprob(1424,1) 1.2799986253099803e-311 >>>chisqprob(1425,1) 0.0

22 hữu ích 3 bình luận chia sẻ