Hướng dẫn chi-square test compare two distributions python - kiểm tra chi bình phương so sánh hai bản phân phối python

Giả sử tôi có một dân số bao gồm các mặt hàng A, BC. Tôi không biết phân phối các mặt hàng trong dân số. Tôi lấy mẫu từ dân số này 15 lần (ví dụ, gần hơn 400 trong dữ liệu thực tế của tôi) và đếm số lần tôi nhận được mỗi mục, cho tôi một cái gì đó như thế này:

df = pd.DataFrame({'type': ['A', 'B', 'C'], 'count': [7,4,4]})

  type  count
0    A      7
1    B      4
2    C      4

Tôi lặp lại điều này để lấy mẫu thứ hai:

df2 = pd.DataFrame({'type': ['A', 'B', 'C'], 'count': [4,10,1]})

  type  count
0    A      4
1    B     10
2    C      1

Tôi muốn kiểm tra xem 2 mẫu này đến từ cùng một dân số, hoặc liệu phân phối tần số của chúng có giống nhau hay không. Có những bài viết về lý thuyết đằng sau điều này (ví dụ: kiểm tra sự khác biệt giữa 2 phân phối riêng biệt theo kinh nghiệm), nhưng tôi quan tâm đến việc thực hiện trong Python

Nếu tôi muốn làm một bài kiểm tra Chi Square, liệu nó có đơn giản như sau không?

import scipy.stats
scipy.stats.chisquare(df['count'], df2['count'])

Các tài liệu cho hàm

df2 = pd.DataFrame({'type': ['A', 'B', 'C'], 'count': [4,10,1]})

  type  count
0    A      4
1    B     10
2    C      1
0 cho biết đối số thứ hai nên được dự kiến ​​tần số của từng loại. Trong tâm trí của tôi, điều này có nghĩa là sự phân phối trong dân số mà tôi không biết. Có ổn không khi sử dụng một bộ tần số quan sát khác nếu tôi muốn so sánh 2 mẫu?

Tôi có hai loại danh sách dữ liệu, dữ liệu lịch sử và dữ liệu mô phỏng mà tôi muốn so sánh với nhau để xem chúng có cùng phân phối không. Mã của tôi như sau:

import scipy.stats as stats

data_hist = [164, 157, 145, 113, 127, 192, 214, 193, 107, 95, 60, 55, 30, 19, 22, 22, 19, 20]
date_sim1 = [160, 174, 142, 121, 122, 192, 198, 179, 119, 107, 63, 50, 26, 17, 16, 22, 23, 23] 
date_sim2 = [181, 130, 152, 114, 122, 198, 183, 192, 105, 100, 85, 42, 37, 26, 25, 30, 17, 15] 
print(stats.chisquare(date_sim1, f_exp=data_hist))
print(stats.chisquare(date_sim2, f_exp=data_hist))

Mã cung cấp đầu ra sau:

Power_divergenceResult(statistic=12.11387994054504, pvalue=0.79319278886052769)
Power_divergenceResult(statistic=34.413397609752003, pvalue=0.0074220617004927226)

Tôi đã so sánh cùng một danh sách dữ liệu với nhau bằng cách sử dụng F-Test trong Excel và có giá trị p lần lượt là 0,939 và 0,849.

Bây giờ câu hỏi của tôi là tôi đang sử dụng hàm chi bình phương chính xác để tính toán giá trị p và làm thế nào để tôi giải thích nó để biết liệu tôi có nên từ chối giả thuyết null hay không. Tại sao có một sự khác biệt lớn trong giá trị p khi sử dụng các phương thức khác nhau.

Giới thiệu

Kiểm tra chi bình phương hai mẫu kiểm tra xem hai biến phân loại có độc lập hay không. Cụ thể, chúng tôi có 2 bảng dự phòng, một bảng tương ứng với các tần số quan sát và một bảng khác tương ứng với các tần số dự kiến ​​(theo giả thuyết độc lập). Những gì chúng tôi làm là so sánh 2 bảng dự phòng và xác định xem sự khác biệt có ý nghĩa thống kê hay không. Don Tiết lo lắng, chúng tôi sẽ nói về bảng dự phòng sau.whether two categorical variables are independent. In particular, we have 2 contingency tables, one corresponds to observed frequencies and another corresponds to expected frequencies (under the independence hypothesis). What we do is comparing the 2 contingency tables and determine whether the difference is statistically significant. Don’t worry we’ll talk about contingency table later.

Ví dụ, chúng tôi ngẫu nhiên hỏi 200 khách hàng trong một siêu thị về thương hiệu sữa yêu thích của họ và chúng tôi cung cấp cho họ 4 lựa chọn. Hơn nữa, trong số những người được hỏi, 100 là nam, 100 là nữ và chúng tôi ghi lại giới tính của họ. Do đó, chúng tôi có 2 biến phân loại, giới tính và sở thích và chúng tôi muốn biết liệu giới tính có độc lập với sở thích sữa giữa các khách hàng của chúng tôi hay không. Điều quan trọng, chúng tôi chỉ có dữ liệu mẫu vì một siêu thị có hơn 200 khách hàng.gender and preference, and we want to know whether gender is independent of milk preferences among our customers. Importantly, we only have sample data since a supermarket has a lot more than 200 customers.

Giả định

Đối với bài kiểm tra chi bình phương hai mẫu, có 4 giả định.

  1. Dữ liệu cần phải phân loại vì chúng tôi sử dụng tần số để kiểm tra xem hai biến phân loại có độc lập hay không.categorical since we use the frequencies to examine whether two categorical variables are independent.
  2. Các loại là độc lập và loại trừ lẫn nhau. Từ ví dụ trên, 4 thương hiệu sữa phải độc lập và người trả lời chỉ có thể có một thương hiệu yêu thích. categories are independent and mutually exclusive. From the example above, the 4 milk brands have to be independent and a respondent can only have ONE favorite brand.
  3. Các đối tượng là độc lập. Từ ví dụ trên, 200 khách hàng mà chúng tôi yêu cầu phải được chọn ngẫu nhiên và không bị ảnh hưởng bởi ý kiến ​​của người khác.subjects are independent. From the example above, the 200 customers we ask have to be randomly selected and not affected by others’ opinion.
  4. Đa số (> 80%) tần số dự kiến ​​lớn hơn 5. Cỡ mẫu tương đối lớn có thể giúp kiểm tra chi bình phương tạo ra kết quả đáng tin cậy hơn. Rốt cuộc, nó không thực tế khi sử dụng một vài mẫu để ước tính phân phối dân số.larger than 5. A relatively large sample size can help chi-square test generate a more reliable result. After all, it’s unrealistic to use a few samples to estimate the population distribution.

5 là ngưỡng thông thường, nhưng kiểm tra chi bình phương vẫn có thể cho kết quả không chính xác với các tần số dự kiến ​​nhỏ như vậy. Do đó, một cỡ mẫu cao hơn nhiều (tần số dự kiến) được ưu tiên.

Thí dụ

Theo ví dụ mà chúng tôi đã nói, chúng tôi muốn biết liệu giới tính có độc lập với sở thích sữa giữa các khách hàng của chúng tôi thông qua 200 người trả lời được chọn ngẫu nhiên với mức độ quan trọng 0,05 hay không.whether gender is independent of milk preferences among our customers through 200 randomly selected respondents given the significance level 0.05.

Cụ thể, giả thuyết null của chúng tôi là khách hàng ưu tiên cho 4 thương hiệu sữa độc lập với giới tính, và giả thuyết thay thế là khách hàng ưu tiên cho 4 thương hiệu sữa không phụ thuộc vào giới tính.independent of gender”, and the alternative hypothesis is “The customers’ preference for 4 milk brands is NOT independent of gender”.

Hơn nữa, bảng dự phòng được sử dụng để thực hiện phân tích. Bảng dự phòng ghi lại tần số kết hợp các giá trị trong hai biến phân loại. Trong ví dụ này, bảng dự phòng được quan sát của chúng tôi trông giống như thế này và bạn có thể đọc 10 trong hộp màu đỏ vì có 20 trong số 100 nam giới chọn một thương hiệu sữa yêu thích của họ. frequencies for combinations of values in two categorical variables. For this example, our observed contingency table looks like this, and you can read the 10 in the red box as “There are 20 out of 100 males selecting A as their favorite milk brand.”.

Bảng dự phòng của dữ liệu được quan sát

Tuy nhiên, chúng tôi đã giành chiến thắng vào toán học về giá trị chi bình phương vì hàm

df2 = pd.DataFrame({'type': ['A', 'B', 'C'], 'count': [4,10,1]})

  type  count
0    A      4
1    B     10
2    C      1
1 trong gói
df2 = pd.DataFrame({'type': ['A', 'B', 'C'], 'count': [4,10,1]})

  type  count
0    A      4
1    B     10
2    C      1
2 khá nhiều công việc cho chúng tôi. Giả sử chúng tôi lưu trữ dữ liệu quan sát được về tần số trong một mảng có tên
df2 = pd.DataFrame({'type': ['A', 'B', 'C'], 'count': [4,10,1]})

  type  count
0    A      4
1    B     10
2    C      1
3, chúng tôi chỉ cần truyền dữ liệu vào
df2 = pd.DataFrame({'type': ['A', 'B', 'C'], 'count': [4,10,1]})

  type  count
0    A      4
1    B     10
2    C      1
1.

result = chi2_contingency(observed)

Điều này trả về một tuple trong đó phần tử thứ hai là giá trị p, phần tử FOUT là bảng dự kiến ​​dự kiến ​​theo giả thuyết độc lập. Để hoàn thành bài kiểm tra, chúng ta chỉ cần xem giá trị p.p-value, the forth element is the expected contingency table under the independence hypothesis. To complete the test, we only need to see p-value.

result[1]

Giá trị p là 0,002, do đó giả thuyết null của chúng tôi bị từ chối với mức ý nghĩa 0,05 (xem cách diễn giải giá trị p). Tóm lại, dựa trên bằng chứng Bộ dữ liệu mẫu của chúng tôi cung cấp, chúng tôi kết luận rằng khách hàng ưu tiên cho 4 thương hiệu sữa không độc lập với giới tính. Nói cách khác, nam và nữ (giới tính) có sở thích khác nhau trong các thương hiệu sữa.based on the evidence our sample dataset provides, we conclude that the customers’ preference for 4 milk brands is NOT independent of gender. In other words, male and female (gender) have different preferences in milk brands.

Mã hóa

Người giới thiệu

  1. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3900058/
  2. https://www.statistics.com/glossary/contingency-table/
  3. https://www.geeksforgeeks.org/python-pearsons-chi-square-test/

Làm thế nào để bạn so sánh hai nhóm trong Chi

Vì vậy, một bình phương 2 x 2 ("hai-hai") được sử dụng khi có hai cấp độ của biến độc lập và hai cấp độ của biến phụ thuộc. Điều này có thể được gọi là một bài kiểm tra về tính homegeneity vì chúng tôi đang kiểm tra xem hai nhóm có giống nhau hay không. ....

Làm thế nào để bạn so sánh hai bản phân phối?

Cách đơn giản nhất để so sánh hai bản phân phối là thông qua thử nghiệm Z.Lỗi trong giá trị trung bình được tính bằng cách chia độ phân tán cho căn bậc hai của số lượng điểm dữ liệu.Trong sơ đồ trên, có một số dân số có nghĩa là giá trị trung bình nội tại thực sự cho dân số đó.via the Z-test. The error in the mean is calculated by dividing the dispersion by the square root of the number of data points. In the above diagram, there is some population mean that is the true intrinsic mean value for that population.

Cách tốt nhất để so sánh trực quan hai phân phối là gì?

Cách thông thường để so sánh phân phối dữ liệu là sử dụng biểu đồ.Một kỹ thuật là hiển thị một bảng biểu đồ, được gọi là biểu đồ so sánh.use histograms. One technique is to display a panel of histograms, which are known as comparative histograms.

Làm thế nào để bạn so sánh Chi

Bạn có thể lấy giá trị chi bình phương tính toán của mình và so sánh nó với một giá trị quan trọng từ một bảng chi bình phương.Nếu giá trị chi bình phương nhiều hơn giá trị tới hạn, thì có một sự khác biệt đáng kể.Bạn cũng có thể sử dụng giá trị p.Đầu tiên nêu giả thuyết null và giả thuyết thay thế.take your calculated chi-square value and compare it to a critical value from a chi-square table. If the chi-square value is more than the critical value, then there is a significant difference. You could also use a p-value. First state the null hypothesis and the alternate hypothesis.