Hướng dẫn chi-square test dataframe python - Python kiểm tra khung dữ liệu chi-square

Chúng tôi sẽ cung cấp một ví dụ thực tế về cách chúng tôi có thể chạy một bài kiểm tra chi bình phương trong Python. Giả sử rằng chúng tôi muốn kiểm tra xem có sự khác biệt có ý nghĩa thống kê về dân số giới tính (M, F) giữa những người hút thuốc và người không hút thuốc. Hãy để tạo ra một số dữ liệu mẫu để làm việc trên nó.Genders (M, F) population between Smokers and Non-Smokers. Let’s generate some sample data to work on it.

Nội phân Chính showShow

  • Dữ liệu mẫu
  • Bảng dữ liệu thống kê
  • Kiểm định chi bình phương
  • Ví dụ về bài kiểm tra chi bình phương trong Python
  • Dữ liệu mẫu
  • Bảng dữ liệu thống kê
  • Kiểm định chi bình phương
  • Ví dụ về bài kiểm tra chi bình phương trong Python
  • Bài kiểm tra độc lập chi-vuông
  • Giả định chi bình phương
  • Kiểm tra chi bình phương bằng scipy.stats.chi2_contingency
  • Bài kiểm tra bài đăng bài kiểm tra
  • Kiểm tra chi bình phương về tính độc lập bằng cách sử dụng chức năng tùy chỉnh
  • So sánh scipy.stats.chi2_contingency () với hàm chi2_table () tùy chỉnh ()

Làm thế nào để bạn chạy một chi

  • Dữ liệu mẫu
  • Bảng dữ liệu thống kê
  • Kiểm định chi bình phương
  • Ví dụ về bài kiểm tra chi bình phương trong Python
  • Dữ liệu mẫu
  • Bảng dữ liệu thống kê
  • Kiểm định chi bình phương
  • Ví dụ về bài kiểm tra chi bình phương trong Python
  • Bài kiểm tra độc lập chi-vuông
  • Giả định chi bình phương
  • Kiểm tra chi bình phương bằng scipy.stats.chi2_contingency
  • Bài kiểm tra bài đăng bài kiểm tra
  • Kiểm tra chi bình phương về tính độc lập bằng cách sử dụng chức năng tùy chỉnh
  • So sánh scipy.stats.chi2_contingency () với hàm chi2_table () tùy chỉnh ()

Dữ liệu mẫu

import pandas as pd
import numpy as np
from scipy.stats import chi2_contingency

import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline 
 
df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
	Gender	isSmoker
0	M	Smoker
1	M	Smoker
2	M	Non-Smpoker
3	F	Non-Smpoker
4	F	Smoker
 

Bảng dữ liệu thống kê

Làm thế nào để bạn chạy một chi

Chi2 trong Python là gì?
Tôi có thể sử dụng chi khôngNon-SmpokerNội phân chính
Để chạy thử nghiệm Chi-vuông, cách dễ nhất là chuyển đổi dữ liệu thành bảng dự phòng với tần số. Chúng tôi sẽ sử dụng lệnh
	Gender	isSmoker
0	M	Smoker
1	M	Smoker
2	M	Non-Smpoker
3	F	Non-Smpoker
4	F	Smoker
 
6 từ
	Gender	isSmoker
0	M	Smoker
1	M	Smoker
2	M	Non-Smpoker
3	F	Non-Smpoker
4	F	Smoker
 
7.
contigency= pd.crosstab(df['Gender'], df['isSmoker'])
contigency
 
10 10
người phát hành10 20

Người hút thuốc

Giới tính
Tôi có thể sử dụng chi khôngNon-SmpokerNội phân chính
Để chạy thử nghiệm Chi-vuông, cách dễ nhất là chuyển đổi dữ liệu thành bảng dự phòng với tần số. Chúng tôi sẽ sử dụng lệnh
	Gender	isSmoker
0	M	Smoker
1	M	Smoker
2	M	Non-Smpoker
3	F	Non-Smpoker
4	F	Smoker
 
6 từ
	Gender	isSmoker
0	M	Smoker
1	M	Smoker
2	M	Non-Smpoker
3	F	Non-Smpoker
4	F	Smoker
 
7.
contigency= pd.crosstab(df['Gender'], df['isSmoker'])
contigency
 
0.500000 0.500000
người phát hành0.333333 0.666667

Người hút thuốc normalize=’column’ and if we want the total percentage then we should write normalize=’all’


Giới tính

F

plt.figure(figsize=(12,8))
sns.heatmap(contigency, annot=True, cmap="YlGnBu")
 

Hướng dẫn chi-square test dataframe python - Python kiểm tra khung dữ liệu chi-square


Kiểm định chi bình phương

M

  • Hãy nói rằng chúng tôi muốn có được tỷ lệ phần trăm theo giới tính (hàng) The test statistic
  • contigency_pct = pd.crosstab(df['Gender'], df['isSmoker'], normalize='index')
    contigency_pct
     
    
    The p-value of the test
  • Nếu chúng ta muốn tỷ lệ phần trăm theo cột, thì chúng ta nên viết bình thường hóa = cột cột và nếu chúng ta muốn tổng tỷ lệ phần trăm thì chúng ta nên viết bình thường = Degrees of freedom
  • Bản đồ nhiệt The expected frequencies, based on the marginal sums of the table

# Chi-square test of independence.
c, p, dof, expected = chi2_contingency(contigency)
p
 
0.3767591178115821

Một cách dễ dàng để xem trực quan các bảng dự phòng là các bản đồ nhiệt.

Bây giờ chúng tôi đã xây dựng bảng dự phòng, chúng tôi có thể chuyển nó đến

	Gender	isSmoker
0	M	Smoker
1	M	Smoker
2	M	Non-Smpoker
3	F	Non-Smpoker
4	F	Smoker
 
8Function từ gói
	Gender	isSmoker
0	M	Smoker
1	M	Smoker
2	M	Non-Smpoker
3	F	Non-Smpoker
4	F	Smoker
 
9 trả về:2×2. We could have applied z-test for proportions instead of Chi-Square test. Notice that the Chi-Square test can be extended to m x n contingency tables.

Ví dụ về bài kiểm tra chi bình phương trong Python

Chi2: Thống kê kiểm tra

Chúng tôi sẽ cung cấp một ví dụ thực tế về cách chúng tôi có thể chạy một bài kiểm tra chi bình phương trong Python. Giả sử rằng chúng tôi muốn kiểm tra xem có sự khác biệt có ý nghĩa thống kê về dân số giới tính (M, F) giữa những người hút thuốc và người không hút thuốc. Hãy để tạo ra một số dữ liệu mẫu để làm việc trên nó.Genders (M, F) population between Smokers and Non-Smokers. Let’s generate some sample data to work on it.

Dữ liệu mẫu

P: Giá trị p của bài kiểm tra

  • DOF: mức độ tự do
  • Dự kiến: Các tần số dự kiến, dựa trên các tổng biên của bảng
  • Sự suy luận
  • Giá trị p là 37,67%, điều đó có nghĩa là chúng tôi không bác bỏ giả thuyết khống ở mức độ tin cậy 95%. Giả thuyết khống là
    contigency= pd.crosstab(df['Gender'], df['isSmoker'])
    contigency
     
    
    0 và
    contigency= pd.crosstab(df['Gender'], df['isSmoker'])
    contigency
     
    
    1 là độc lập. Trong ví dụ này, bảng dự phòng là 2 × 2. Chúng tôi có thể đã áp dụng thử nghiệm Z cho tỷ lệ thay vì kiểm tra chi bình phương. Lưu ý rằng bài kiểm tra chi bình phương có thể được mở rộng cho các bảng dự phòng M x N.
  • Hình ảnh của hack dự đoán
  • Giả định chi bình phương
    • Kiểm tra chi bình phương bằng scipy.stats.chi2_contingency

Bảng dữ liệu thống kê

Kiểm định chi bình phương

Ví dụ về bài kiểm tra chi bình phương trong Python There is no relationship between variable one and variable two.

Bài kiểm tra độc lập chi-vuông There is a relationship between variable 1 and variable 2.

Giả định chi bình phương

Kiểm định chi bình phương

Ví dụ về bài kiểm tra chi bình phương trong Python

  • Bài kiểm tra độc lập chi-vuông
  • Các cấp độ (danh mục) của các biến đang được kiểm tra là loại trừ lẫn nhau
  • Mỗi người tham gia chỉ đóng góp cho một ô trong bảng chi bình phương
  • Các nhóm đang được kiểm tra phải độc lập
  • Giá trị của các tế bào dự kiến ​​phải lớn hơn 5

Nếu tất cả các giả định này được đáp ứng, thì Chi-vuông là thử nghiệm chính xác để sử dụng.

Trang này sẽ đi qua cách thực hiện một bài kiểm tra độc lập Chi-vuông bằng Python, cách diễn giải kết quả và sẽ cung cấp một chức năng tùy chỉnh được Python phát triển cho Khoa học dữ liệu, LLC để bạn sử dụng! Nó làm sạch đầu ra, khả năng tính tỷ lệ phần trăm hàng/cột và có khả năng xuất kết quả sang tệp CSV.

Đầu tiên chúng ta cần nhập số liệu thống kê gấu trúc và SCIPY!

import pandas as pd
from scipy import stats
Dữ liệu được sử dụng cho ví dụ này

Dữ liệu được sử dụng trong ví dụ này là từ kaggle.com từ việc tìm nguồn cung cấp tâm thần, Ltd. Bộ dữ liệu là từ cuộc khảo sát về sức khỏe tâm thần OSMI trong Khảo sát công nghệ năm 2016 nhằm mục đích đo lường thái độ đối với sức khỏe tâm thần tại nơi làm việc công nghệ và kiểm tra tần suất rối loạn sức khỏe tâm thần của các nhân viên công nghệ. Liên kết đến nguồn Kaggle của bộ dữ liệu ở đây.

Ví dụ này, chúng tôi sẽ kiểm tra xem có mối liên hệ giữa sự sẵn sàng thảo luận về các vấn đề sức khỏe tâm thần với người giám sát trực tiếp và hiện đang bị rối loạn sức khỏe tâm thần. Trong tập dữ liệu, đây là những biến số mà bạn có sẵn sàng thảo luận về một vấn đề sức khỏe tâm thần với (các) người giám sát trực tiếp của bạn không? Và "hiện tại bạn có bị rối loạn sức khỏe tâm thần không?" tương ứng. Hãy cùng xem dữ liệu!

df['Do you currently have a mental health disorder?'].value_counts()
LoạiĐếm
Đúng575
Không531
Có lẽ327
df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
0
LoạiĐếm
Đúng654
Không416
Có lẽ101
df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
0
93

Một số nhà tuyển dụng trước đây của tôi

Không, không có nhà tuyển dụng trước đây của tôi
LoạiĐếm
Đúng575
Không531
Có lẽ
LoạiĐếm
Đúng654
Không416
Có lẽ101
df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
0
93

Một số nhà tuyển dụng trước đây của tôi

Không, không có nhà tuyển dụng trước đây của tôi
current_mental_disorder KhôngĐúng
willing_discuss_mh_supervisor
Có lẽ51 29
Không119 194
Đúng237 267
df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
0
51 24

Một số nhà tuyển dụng trước đây của tôi

Không, không có nhà tuyển dụng trước đây của tôi

df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
5

Tôi không biết

Có, tại tất cả các nhà tuyển dụng trước đây của tôi

df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
6

Đối với biến số này hiện tại bạn có bị rối loạn sức khỏe tâm thần không? Để làm điều này, chúng ta cần sử dụng một chức năng để lấy lại dữ liệu. Ngoài ra, các biến sẽ được đổi tên để rút ngắn chúng.
4.2928597930482389e-07,
3,
array([[ 37.69547325, 42.30452675],
[ 147.48353909, 165.51646091],
[ 237.48148148, 266.51851852],
[ 35.33950617, 39.66049383]]))

df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
1
df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
2

df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
3

Nếu bạn không thích đầu ra của bài kiểm tra chi bình phương, hãy xem phần Kiểm tra chi bình phương về tính độc lập bằng cách sử dụng chức năng tùy chỉnh. Phần cung cấp mã của một hàm tiến hành kiểm tra chi bình phương giống như chúng ta đã làm, nhưng đầu ra được trả về trong một bảng với định dạng dễ đọc, trình bày các giá trị, làm tròn dữ liệu, có thể tính toán tỷ lệ phần trăm hàng/cột và có khả năng xuất kết quả trực tiếp vào tệp CSV.

Bài kiểm tra bài đăng bài kiểm tra

Bây giờ chúng tôi biết bài kiểm tra độc lập Chi-vuông của chúng tôi là rất quan trọng, chúng tôi muốn kiểm tra mối quan hệ nằm giữa các cấp độ của các biến. Để làm điều này, chúng ta cần tiến hành nhiều thử nghiệm Chi-Square 2 × 2 bằng cách sử dụng giá trị P được điều chỉnh bởi Bonferroni.

Một số bạn có thể hỏi tại sao? Bằng cách so sánh nhiều cấp độ (loại) với nhau, tỷ lệ lỗi của một hợp chất dương tính giả với mỗi thử nghiệm. Có nghĩa là, thử nghiệm đầu tiên của chúng tôi ở cấp 0,05 là 5% cơ hội dương tính giả; Bài kiểm tra sau đó sẽ là 10% cơ hội dương tính giả, v.v. Với mỗi bài kiểm tra tiếp theo, người ta sẽ tăng tỷ lệ lỗi thêm 5%. Nếu chúng tôi tiến hành tất cả các so sánh 6 cặp có thể có, thử nghiệm chi bình phương 2 × 2 cuối cùng của chúng tôi sẽ có tỷ lệ lỗi là 30%! Có nghĩa là giá trị p của chúng tôi đang được kiểm tra tại sẽ bằng 0,30, điều này không được chấp nhận ở bất kỳ cấp độ nào.

Để tránh điều này, phương pháp điều chỉnh Bonferroni điều chỉnh giá trị p bằng cách so sánh cặp theo kế hoạch đang được tiến hành. Công thức là P/N, trong đó, p p p Trong ví dụ của chúng tôi, nếu chúng tôi dự định tiến hành tất cả các so sánh theo cặp có thể thì công thức sẽ là 0,05/6 = 0,008. Có nghĩa là, một bài kiểm tra chi bình phương Post Hoc 2 × 2 sẽ phải có giá trị p nhỏ hơn 0,008 để có ý nghĩa. Tuy nhiên, chúng tôi không quan tâm đến danh mục của tôi, tôi không biết về biến số của Sẵn sàng_Discuss_MH_Supervisor. Do đó tạo ra công thức là 0,05/3, bằng 0,017. Vì vậy, đối với các so sánh theo kế hoạch của chúng tôi là đáng kể, giá trị p phải nhỏ hơn 0,017.
In our example, if we were planning on conducting all possible pairwise comparisons then the formula would be 0.05/6 = 0.008. Meaning, a post hoc 2×2 Chi-square test would have to have a p-value less than 0.008 to be significant. However, we are not interested in the “I don’t know” category of the “willing_discuss_mh_supervisor” variable. Thus making the formula be 0.05/3, which equals 0.017. So for our planned pairwise comparisons to be significant, the p-value must be less than 0.017.

Để thực hiện nhiều bài kiểm tra chi bình phương 2 × 2, người ta cần tập hợp lại các biến cho mỗi thử nghiệm đến nơi nó là một loại so với phần còn lại. Đối với chúng tôi, nó sẽ là:

  • Không, không có nhà tuyển dụng trước đây của tôi so với phần còn lại
  • Một số nhà tuyển dụng trước đây của tôi và phần còn lại
  • Có, tại tất cả các nhà tuyển dụng trước của tôi so với phần còn lại

Python làm cho nhiệm vụ này dễ dàng! Có một phương thức pd.get_dummies () tạo ra các biến giả trong đó mỗi biến mới chỉ là một loại của biến ban đầu và bằng với 1 1 nếu chúng thuộc thể loại đó và là 0 0 nếu chúng không. Chúng tôi sẽ gán các biến giả cho khung dữ liệu Python mới.

df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
7
Không, không có nhà tuyển dụng trước đây của tôiMột số nhà tuyển dụng trước đây của tôiCó, tại tất cả các nhà tuyển dụng trước đây của tôi
0 1 0
0 1 0
0 0 0
0 1 0
0 1 0

Bây giờ chúng tôi đã đặt các biến giả của chúng tôi, chúng tôi có thể tiến hành các so sánh bài hoc theo kế hoạch của chúng tôi. Điều này sẽ dễ dàng sử dụng một vòng lặp. Sẽ có thêm một chút mã trong vòng lặp để làm sạch đầu ra.

df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
8
current_mental_disorder KhôngĐúng
Không, không có nhà tuyển dụng trước đây của tôi
0 411 380
1 119 194

Một số nhà tuyển dụng trước đây của tôi
p-value= 3.927228826835633e-05
Degrees of freedom= 1

current_mental_disorder KhôngĐúng
Một số nhà tuyển dụng trước đây của tôi
0 294 308
1 236 266

Có, tại tất cả các nhà tuyển dụng trước đây của tôi
p-value= 0.5864643795737425
Degrees of freedom= 1

current_mental_disorder KhôngĐúng
Có, tại tất cả các nhà tuyển dụng trước đây của tôi
0 479 550
1 51 24

Bây giờ chúng tôi đã đặt các biến giả của chúng tôi, chúng tôi có thể tiến hành các so sánh bài hoc theo kế hoạch của chúng tôi. Điều này sẽ dễ dàng sử dụng một vòng lặp. Sẽ có thêm một chút mã trong vòng lặp để làm sạch đầu ra.
p-value= 0.0005205028333059755
Degrees of freedom= 1

df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
8

  • Không
  • Đúng

Giá trị chi2 = 16.9062390539159 p-value = 3.927228826835633e-05 độ tự do = 1

Giá trị chi2 = 0,29589978434689185 P-value = 0.5864643795737425 độ tự do = 1

Chức năng này làm gì là tiến hành thử nghiệm độc lập chi bình phương bằng phương pháp scipy chi2_conting (nhưng nó làm sạch định dạng của kết quả, cho phép người ta dễ dàng tính toán tỷ lệ hàng hoặc cột (tỷ lệ phần trăm) nếu muốn và cho phép một Xuất kết quả sang tệp CSV nếu muốn. Tỷ lệ phần trăm được làm tròn đến 2 chữ số thập phân trong khi giá trị chi bình phương và giá trị p là vòng tròn đến 4 thập phân.

Các ví dụ sẽ được cung cấp ở dưới cùng của mã. Vì vậy, đây là! Chỉ cần sao chép và dán vào tệp bạn đang làm việc hoặc lưu chức năng vào một tệp .py riêng biệt và nhập nó từ đó.

df = pd.DataFrame({'Gender' : ['M', 'M', 'M', 'F', 'F'] * 10,
                   'isSmoker' : ['Smoker', 'Smoker', 'Non-Smpoker', 'Non-Smpoker', 'Smoker'] * 10
                  })
df.head()
 
9

Bây giờ để xem chức năng trong hành động. Một số ví dụ dưới đây!

So sánh scipy.stats.chi2_contingency () với hàm chi2_table () tùy chỉnh ()

Tôi sẽ sử dụng ví dụ từ phía trên để dữ liệu sẽ quen thuộc.

	Gender	isSmoker
0	M	Smoker
1	M	Smoker
2	M	Non-Smpoker
3	F	Non-Smpoker
4	F	Smoker
 
0

.
4.2928597930482389e-07,
3,
array([[ 37.69547325, 42.30452675],
[ 147.48353909, 165.51646091],
[ 237.48148148, 266.51851852],
[ 35.33950617, 39.66049383]]))

Bây giờ xem phân tích tương tự được thực hiện với hàm chi2_table () tùy chỉnh.

	Gender	isSmoker
0	M	Smoker
1	M	Smoker
2	M	Non-Smpoker
3	F	Non-Smpoker
4	F	Smoker
 
1
Bài kiểm tra chi bình phương giữa Sẵn sàng_Discuss_MH_Supervisor và current_mental_disorder
current_mental_disorder KhôngĐúngTất cả các
willing_discuss_mh_supervisor
Tôi không biết51 29 80
Không, không có nhà tuyển dụng trước đây của tôi119 194 313
Một số nhà tuyển dụng trước đây của tôi237 267 504
Có, tại tất cả các nhà tuyển dụng trước đây của tôi51 24 75
Tất cả các458 514 972
Tôi không biết

Không, không có nhà tuyển dụng trước đây của tôi

	Gender	isSmoker
0	M	Smoker
1	M	Smoker
2	M	Non-Smpoker
3	F	Non-Smpoker
4	F	Smoker
 
2

Một số nhà tuyển dụng trước đây của tôi

Có, tại tất cả các nhà tuyển dụng trước đây của tôi

Pearson Chi2 (3) = 32.4082 P-Value = 0,0000

Hàm cũng có thể xử lý có một danh sách hoặc nhiều danh sách được thông qua. Điều này xuất hiện trong tay nếu bạn muốn tiến hành nhiều bài kiểm tra chi bình phương trên nhiều biến. Nó sẽ tiến hành tất cả các so sánh kiểm tra chi bình phương. Nếu chỉ có một danh sách duy nhất được thông qua, nó phải được thông qua trong mục đầu tiên.

Nếu xuất sang tệp CSV, tệp sẽ được đặt tên theo biến cột (mục nhập chuỗi thứ hai). Trong ví dụ trên, tên tệp sẽ là hiện tại_ental_disorder.csv, và tên của biến trong list_2 tương ứng.
Bài kiểm tra chi bình phương giữa Sẵn sàng_Discuss_MH_Supervisor và current_mental_disorder
current_mental_disorder KhôngĐúngTất cả các
willing_discuss_mh_supervisor
Tôi không biết63.75 36.25 100
Không, không có nhà tuyển dụng trước đây của tôi38.02 61.98 100
Một số nhà tuyển dụng trước đây của tôi47.02 52.98 100
Có, tại tất cả các nhà tuyển dụng trước đây của tôi68.00 32.00 100
Tất cả các47.12 52.88 100
Tôi không biết

Không, không có nhà tuyển dụng trước đây của tôi

Một số nhà tuyển dụng trước đây của tôi
Bài kiểm tra chi bình phương giữa Sẵn sàng_Discuss_MH_Supervisor và current_mental_disorder
current_mental_disorder KhôngĐúngTất cả các
willing_discuss_mh_supervisor
Tôi không biết11.14 5.64 8.23
Không, không có nhà tuyển dụng trước đây của tôi25.98 37.74 32.30
Một số nhà tuyển dụng trước đây của tôi51.75 51.95 51.85
Có, tại tất cả các nhà tuyển dụng trước đây của tôi11.14 4.67 7.72
Tất cả các100 100 100
Tôi không biết

Không, không có nhà tuyển dụng trước đây của tôi

Một số nhà tuyển dụng trước đây của tôi

	Gender	isSmoker
0	M	Smoker
1	M	Smoker
2	M	Non-Smpoker
3	F	Non-Smpoker
4	F	Smoker
 
5

Có, tại tất cả các nhà tuyển dụng trước đây của tôi

Pearson Chi2 (3) = 32.4082 P-Value = 0,0000.

Hàm cũng có thể xử lý có một danh sách hoặc nhiều danh sách được thông qua. Điều này xuất hiện trong tay nếu bạn muốn tiến hành nhiều bài kiểm tra chi bình phương trên nhiều biến. Nó sẽ tiến hành tất cả các so sánh kiểm tra chi bình phương. Nếu chỉ có một danh sách duy nhất được thông qua, nó phải được thông qua trong mục đầu tiên.

Nếu xuất sang tệp CSV, tệp sẽ được đặt tên theo biến cột (mục nhập chuỗi thứ hai). Trong ví dụ trên, tên tệp sẽ là hiện tại_ental_disorder.csv, và tên của biến trong list_2 tương ứng.

Nhận tỷ lệ hàng/cột (tỷ lệ phần trăm)

Để có tỷ lệ được trả về trong crosstab, hãy chuyển ’hàng, hoặc’ col, vào đối số prop prop =. Dữ liệu được kiểm tra bằng cách sử dụng dữ liệu đếm, vì vậy chúng tôi không vi phạm các giả định của bài kiểm tra, nhưng sau đó trả về dữ liệu tỷ lệ.

Để có được tỷ lệ hàng, hãy chuyển ‘hàng, vào đối số prop prop = cho chức năng.

	Gender	isSmoker
0	M	Smoker
1	M	Smoker
2	M	Non-Smpoker
3	F	Non-Smpoker
4	F	Smoker
 
3a non-parametric (distribution-free) method used to compare the relationship between the two categorical (nominal) variables in a contingency table.

Để có được tỷ lệ cột, hãy chuyển ’col, vào đối số prop prop =, cho chức năng.

	Gender	isSmoker
0	M	Smoker
1	M	Smoker
2	M	Non-Smpoker
3	F	Non-Smpoker
4	F	Smoker
 
4. However, a correlation is used when you have two quantitative variables and a chi-square test of independence is used when you have two categorical variables.