Khi bạn thực hiện một bài kiểm tra chi bình phương, kết quả là bạn sẽ nhận được một thống kê kiểm tra. Để xác định xem kết quả của bài kiểm tra chi bình phương có ý nghĩa thống kê hay không, bạn có thể so sánh thống kê kiểm tra với một bình phương & nbsp; giá trị quan trọng. Nếu thống kê kiểm tra lớn hơn giá trị tới hạn chi bình phương, thì kết quả của bài kiểm tra có ý nghĩa thống kê.Chi-Square critical value. If the test statistic is greater than the Chi-Square critical value, then the results of the test are statistically significant.
Giá trị quan trọng chi bình phương có thể được tìm thấy bằng cách sử dụng bảng phân phối chi bình phương & nbsp; hoặc bằng cách sử dụng phần mềm thống kê. a Chi-Square distribution table or by using statistical software.
Để tìm giá trị quan trọng chi bình phương, bạn cần:
- Mức ý nghĩa [các lựa chọn chung là 0,01, 0,05 và 0,10]
- Mức độ tự do
Sử dụng hai giá trị này, bạn có thể xác định giá trị chi bình phương được so sánh với thống kê kiểm tra.
Cách tìm giá trị quan trọng chi bình phương trong Python
Để tìm giá trị tới hạn chi bình phương trong Python, bạn có thể sử dụng & nbsp; scipy.stats.chi2.ppf [] & nbsp; hàm, sử dụng cú pháp sau:
Scipy.stats.chi2.ppf [Q, DF]
where:
- Q: & NBSP; mức độ quan trọng để sử dụngThe significance level to use
- DF: Mức độ tự do: The degrees of freedom
Hàm này trả về giá trị tới hạn từ phân phối chi bình phương dựa trên mức độ ý nghĩa và mức độ tự do được cung cấp.
Ví dụ, giả sử chúng ta muốn tìm ra giá trị quan trọng Chi-vuông cho mức ý nghĩa là 0,05 và mức độ tự do = 11.
import scipy.stats #find Chi-Square critical value scipy.stats.chi2.ppf[1-.05, df=11] 19.67514
Giá trị quan trọng chi bình phương cho mức ý nghĩa là 0,05 và mức độ tự do = 11 là & NBSP; 19.67514.19.67514.
Do đó, nếu chúng tôi tiến hành một số loại thử nghiệm chi bình phương thì chúng tôi có thể so sánh thống kê kiểm tra chi bình phương với & NBSP; 19.67514. & NBSP; Nếu thống kê kiểm tra lớn hơn 19.67514, thì kết quả của bài kiểm tra có ý nghĩa thống kê.19.67514. If the test statistic is greater than 19.67514, then the results of the test are statistically significant.
Lưu ý rằng các giá trị nhỏ hơn của alpha sẽ dẫn đến các giá trị quan trọng chi bình phương lớn hơn. Ví dụ, hãy xem xét giá trị quan trọng chi bình phương cho & nbsp; mức ý nghĩa là 0,01 và mức độ tự do = 11. & nbsp;0.01, and degrees of freedom = 11.
scipy.stats.chi2.ppf[1-.01, df=11] 24.72497
Và xem xét giá trị quan trọng chi bình phương với cùng một mức độ tự do, nhưng với mức độ ý nghĩa của & nbsp; 0,005:0.005:
scipy.stats.chi2.ppf[1-.005 df=11] 26.75685
Tham khảo tài liệu SCIPY để biết chi tiết chính xác của hàm chi2.ppf [].
Tôi muốn tính toán ước tính khoảng của độ lệch chuẩn dân số, vì điều này tôi cần các giá trị quan trọng chi bình phương cho giới hạn dưới và trên. Công thức cần tính là thế này -
Để tính toán nó, tôi đã làm điều này -
# variance
var = halloween['Dollars Spent'].var[]
# [n-1] degrees of freedom
deg_fred = [halloween.shape[0] - 1]
lower_bound = np.sqrt[[deg_fred*var]/ 27.488]
upper_bound = np.sqrt[[deg_fred*var]/ 6.262]
[lower_bound, upper_bound]
[17.37, 36.40]
Các giá trị tới hạn của phân phối chi bình phương cho giới hạn dưới và trên là
scipy.stats.chi2.ppf[1-.01, df=11] 24.724972 và
scipy.stats.chi2.ppf[1-.01, df=11] 24.724973. Tôi tìm thấy các giá trị này bằng cách sử dụng bảng phân phối chi bình phương. Làm thế nào tôi có thể tính toán các giá trị này trong Python thay vì tính toán nó từ một bảng không cung cấp cho chúng ta các giá trị chính xác mọi lúc và nó không hữu ích nếu tôi muốn viết một hàm để tính toán nó.
hỏi ngày 6 tháng 2 năm 2021 lúc 6:29Feb 6, 2021 at 6:29
Sử dụng phương thức isf []isf[] method
import scipy as sp
sp.stats.chi2.isf[0.1, 20, loc=0, scale=1] # P=10%, df=20
# donne 28.412... as in books table
Đã trả lời ngày 11 tháng 2 năm 2021 lúc 0:56Feb 11, 2021 at 0:56
ce.teufce.teufce.teuf
7216 Huy hiệu bạc13 Huy hiệu đồng6 silver badges13 bronze badges
Tính toán một bài kiểm tra chi bình phương một chiều.
Các thử nghiệm chi bình phương kiểm tra giả thuyết null rằng dữ liệu phân loại có tần số đã cho.
Parametersf_obsarray_likef_obsarray_likeTần số quan sát trong mỗi loại.
f_exparray_like, tùy chọnarray_like, optionalTần số dự kiến trong mỗi loại. Theo mặc định, các danh mục được cho là có khả năng như nhau.
ddofint, tùy chọnint, optionalĐộ tự do của Delta Delta: Điều chỉnh mức độ tự do cho giá trị p. Giá trị p được tính toán bằng cách sử dụng phân phối chi bình phương với
scipy.stats.chi2.ppf[1-.01, df=11] 24.724974 độ tự do, trong đó K là số lượng tần số quan sát được. Giá trị mặc định của DDOF là 0.trục hoặc không, tùy chọnint or None, optional
Trục của kết quả phát sóng của f_obs và f_exp cùng với việc áp dụng bài kiểm tra. Nếu trục không có, tất cả các giá trị trong f_obs được coi là một tập dữ liệu duy nhất. Mặc định là 0.
ReturnSchisqfloat hoặc ndarraychisqfloat or ndarrayThống kê kiểm tra chi bình phương. Giá trị là một chiếc phao nếu trục không có hoặc f_obs và f_exp là 1-D.
pfloat hoặc ndarrayfloat or ndarrayGiá trị p của bài kiểm tra. Giá trị là một chiếc phao nếu DDOF và giá trị trả về Chisq là vô hướng.
Ghi chú
Thử nghiệm này không hợp lệ khi tần số quan sát hoặc dự kiến trong mỗi loại quá nhỏ. Một quy tắc điển hình là tất cả các tần số được quan sát và dự kiến sẽ ít nhất là 5. Theo [3], tổng số mẫu được khuyến nghị lớn hơn 13, nếu không thì các thử nghiệm chính xác [như thử nghiệm chính xác của Barnard] nên được sử dụng Bởi vì họ không quá nhiều.
Ngoài ra, tổng của các tần số quan sát và dự kiến phải giống nhau để thử nghiệm có hiệu lực;
scipy.stats.chi2.ppf[1-.01, df=11] 24.724975 nêu lỗi nếu các khoản tiền không đồng ý trong phạm vi dung sai tương đối là
scipy.stats.chi2.ppf[1-.01, df=11] 24.724976.
Mức độ tự do mặc định, K-1, dành cho trường hợp khi không có tham số nào của phân phối được ước tính. Nếu các tham số P được ước tính bởi khả năng tối đa hiệu quả thì mức độ tự do chính xác là K-1-P. Nếu các tham số được ước tính theo một cách khác, thì DOF có thể nằm giữa K-1-P và K-1. Tuy nhiên, cũng có thể phân phối tiệm cận không phải là chi bình phương, trong trường hợp đó, thử nghiệm này không phù hợp.
Người giới thiệu
1Lowry, Richard. Các khái niệm và ứng dụng của thống kê suy luận. Chương 8. //web.archive.org/web/20171022032306///vassarstats.net:80/textbook/ch8pt1.html
Test Chi-Squared Test, //en.wikipedia.org/wiki/chi-squared_test
3Pearson, Karl. Về tiêu chí mà một hệ thống sai lệch nhất định so với có thể xảy ra trong trường hợp của một hệ thống các biến tương quan là nó có thể được cho là hợp lý phát sinh từ việc lấy mẫu ngẫu nhiên, tạp chí triết học. Sê-ri 5. 50 [1900], trang 157-175.
Ví dụ
Khi chỉ f_obs được đưa ra, người ta cho rằng các tần số dự kiến là đồng đều và được đưa ra bởi giá trị trung bình của các tần số quan sát được.
>>> from scipy.stats import chisquare >>> chisquare[[16, 18, 16, 14, 12, 12]] [2.0, 0.84914503608460956]
Với f_exp, các tần số dự kiến có thể được đưa ra.
>>> chisquare[[16, 18, 16, 14, 12, 12], f_exp=[16, 16, 16, 16, 16, 8]] [3.5, 0.62338762774958223]
Khi f_obs là 2-D, theo mặc định, thử nghiệm được áp dụng cho mỗi cột.
>>> obs = np.array[[[16, 18, 16, 14, 12, 12], [32, 24, 16, 28, 20, 24]]].T >>> obs.shape [6, 2] >>> chisquare[obs] [array[[ 2. , 6.66666667]], array[[ 0.84914504, 0.24663415]]]
Bằng cách cài đặt
scipy.stats.chi2.ppf[1-.01, df=11] 24.724977, thử nghiệm được áp dụng cho tất cả dữ liệu trong mảng, tương đương với việc áp dụng thử nghiệm cho mảng phẳng.
>>> chisquare[obs, axis=None] [23.31034482758621, 0.015975692534127565] >>> chisquare[obs.ravel[]] [23.31034482758621, 0.015975692534127565]
DDOF là sự thay đổi để thực hiện theo mức độ tự do mặc định.
>>> chisquare[[16, 18, 16, 14, 12, 12], ddof=1] [2.0, 0.73575888234288467]
Việc tính toán giá trị p được thực hiện bằng cách phát sóng thống kê chi bình phương với DDOF.
scipy.stats.chi2.ppf[1-.01, df=11] 24.724970
f_obs và f_exp cũng được phát sóng. Sau đây, f_obs có hình dạng [6,] và f_exp có hình dạng [2, 6], do đó, kết quả của việc phát sóng f_obs và f_exp có hình dạng [2, 6]. Để tính toán các số liệu thống kê chi bình phương mong muốn, chúng tôi sử dụng
scipy.stats.chi2.ppf[1-.01, df=11] 24.724978:
scipy.stats.chi2.ppf[1-.01, df=11] 24.724971