Kruskal-Wallis thử nghiệm python DataFrame

Tôi không quen thuộc với bất kỳ yêu cầu đặc biệt nào của bài kiểm tra Kruskal-Wallis, nhưng bạn có thể truy cập các mảng được nhóm này bằng cách đưa chúng vào từ điển theo cách này

groupednumbers = {}
for grp in df['group'].unique(): 
    groupednumbers[grp] = df['numbers'][df['group']==grp].values

print(groupednumbers)
*** {'c': array([2, 5, 8]), 'b': array([1, 4, 7]), 'a': array([0, 3, 6])}

Nghĩa là, bạn sẽ nhận được các vectơ của mình bằng cách gọi rõ ràng groupednumbers['a'], v.v. , hoặc thông qua một danh sách

args = groupednumbers.values()

hoặc nếu bạn cần chúng theo thứ tự

args = [groupednumbers[grp] for grp in sorted(df['group'].unique())]

Và sau đó gọi

stats.kruskal(*args)

Hoặc nếu bạn cần danh sách thực tế, bạn có thể làm list(df['numbers'][...].values. )

Tìm hiểu những gì tôi nghĩ là hai bài kiểm tra cần thiết nhất cho các nhà nghiên cứu trong lĩnh vực khoa học xã hội

Nguồn. Pexels (Miễn phí sử dụng)Giới thiệu

Có hàng trăm bài kiểm tra thống kê giúp chúng tôi kiểm tra các giả thuyết và xác thực các giả định. Thậm chí còn có một cuốn sách gọi là 100 bài kiểm tra thống kê mà tôi khuyên bạn nên có như một bách khoa toàn thư về các bài kiểm tra thống kê. Trong số tất cả các bài kiểm tra này, cá nhân tôi nghĩ bài kiểm tra Phân tích phương sai (ANOVA) và bài kiểm tra Kruskal-Wallis là hai bài kiểm tra quan trọng nhất mà các nhà nghiên cứu và nghiên cứu sinh trong lĩnh vực Khoa học xã hội phải biết và học. Tại sao tôi lại nghĩ như vậy?

Đó là bởi vì so sánh các giá trị số giữa các tập hợp con hoặc nhóm khác nhau là một trong những phép so sánh được thực hiện thường xuyên nhất trong nghiên cứu khoa học xã hội. Nghĩ về bài báo khoa học xã hội gần đây nhất mà bạn đọc. Hãy suy nghĩ về bất kỳ bài báo phân tích hoặc xã luận. Họ làm gì? . g. ủng hộ Đảng Dân chủ, ủng hộ Đảng Cộng hòa, Trung lập), chúng ta cần sử dụng kiểm định ANOVA. Nếu chúng tôi quan tâm đến việc trẻ em từ các nhóm thu nhập hộ gia đình khác nhau khác nhau như thế nào về trình độ học vấn được đo bằng một số định dạng số, chúng tôi sử dụng bài kiểm tra ANOVA. Như những ví dụ này minh họa, ANOVA và phiên bản phi tham số của kiểm định ANOVA, kiểm định Kruskal-Wallis, là những gì các học giả sử dụng và cân nhắc sử dụng mọi lúc trong nghiên cứu của họ

Trong bài viết này, tôi giới thiệu với các bạn ANOVA test là gì, nó làm gì, có những loại nào, các giả định cần đạt và một số ví dụ bằng code. Hãy để chúng tôi đi sâu vào nó

Thử nghiệm ANOVA là gì?

Thử nghiệm ANOVA là phiên bản mở rộng của thử nghiệm t nhằm mục đích so sánh giá trị trung bình của hai nhóm và xem sự khác biệt có ý nghĩa thống kê hay không. Tuy nhiên, kiểm tra T không thể được thực hiện cho ba nhóm trở lên và đây là lúc kiểm tra ANOVA phát huy tác dụng. Một số người có thể nói rằng chúng ta có thể thực hiện kiểm tra t riêng cho từng cặp nhóm nhưng có một nhược điểm đối với cách tiếp cận này. Tiến hành nhiều thử nghiệm t có thể làm tăng khả năng dương tính giả

Các giả thuyết thay thế và vô hiệu của ANOVA như sau

H0(Không). phương tiện của các mẫu bằng nhau

H1(Thay thế). một hoặc nhiều phương tiện của các mẫu không bằng nhau

Có nhiều loại kiểm tra ANOVA nhưng trước tiên tôi sẽ giới thiệu kiểm tra ANOVA một chiều, đây là loại kiểm tra ANOVA được sử dụng thường xuyên nhất. Các loại khác sẽ được nêu trong một phần riêng ở cuối bài

Một số giả định cần phải được đáp ứng là gì?

Thật không may, thử nghiệm ANOVA không thể chạy trong bất kỳ tình huống nào. Đây là một bài kiểm tra tham số, có nghĩa là nó được điều chỉnh bởi một tập hợp các tham số và giả định. Chúng ta hãy xem xét một số giả định cần phải được đáp ứng

  • Biến phụ thuộc cần phải liên tục. cái này khá đơn giản. Nhớ lại rằng kiểm tra ANOVA là một phần mở rộng của kiểm tra t so sánh các giá trị trung bình, giá trị số vốn có, giữa các nhóm khác nhau
  • Phương sai cần phải bằng nhau giữa các nhóm. Chúng tôi gọi đây là giả định “Tính đồng nhất của phương sai”. Về mặt toán học, nó có thể được biểu thị như sau. σ₁² = σ₂² = σ₃² = … = σ𝒸²
  • Các mẫu được chọn ngẫu nhiên từ các quần thể và được chỉ định ngẫu nhiên cho từng nhóm, cho phép mỗi trường hợp được lấy mẫu độc lập với nhau
  • Phần dư xấp xỉ tuân theo phân phối chuẩn

Các phương pháp về cách xác thực các giả định này sẽ được giải thích trong các ví dụ về mã

phép thử ANOVA. Mã số

Hãy để chúng tôi tạo một tập dữ liệu giả cho mục đích minh họa ví dụ này. Chúng tôi tạo ba biến, mỗi biến sẽ tương ứng với một nhóm khác nhau. Mỗi biến sẽ chứa các số nguyên ngẫu nhiên có phạm vi được chỉ định bởi mỗi np. ngẫu nhiên. hàm randint()

Nguồn. từ tác giả

Một vài hàng đầu tiên của tập dữ liệu trông giống như sau

Nguồn. từ tác giả

Chúng tôi cũng tạo phiên bản tan chảy của dữ liệu này vì các loại trực quan hóa và kiểm tra thống kê khác nhau yêu cầu các định dạng khác nhau

# Pandas melt function, as the name suggests, melts the specified columns into two variables where one stores the unique categories of those column labels and the other stores the values that were in each of the column associated with that labeldf_melt = pd.melt(df, value_vars=['A', 'B', 'C'])
df_melt.rename(columns={'variable':'group'}, inplace=True)
df_melt.head()

Nguồn. từ tác giả

Chúng tôi thực hiện một số khám phá dữ liệu đơn giản thông qua một số hình ảnh trực quan

import matplotlib.pyplot as plt
import seaborn as sns
# seaborn's boxenplot is similar to box pot but differs in that it displays more granular quantiles than a box plot.ax = sns.boxenplot(x='group', y='value', data=df_melt, color='#99c2a2')plt.show()

Nguồn. từ tác giả

Chúng tôi cũng xem xét liệu phân phối của từng nhóm có được phân phối bình thường thông qua các lô QQ hay không

import numpy as np 
import scipy.stats as stats
import matplotlib.pyplot as plt
for g in df_melt['group'].unique():
stats.probplot(df_melt[df_melt['group'] == g]['value'], dist="norm", plot=plt)
plt.title("Probability Plot - " + g)
plt.show()

Nguồn. từ tác giả

Nguồn. từ tác giả

Ba lô QQ tương ứng dường như không tuân theo phân phối bình thường. Đừng nhầm lẫn mặc dù. Chúng tôi không xác thực giả định về tính quy tắc cho thử nghiệm ANOVA tại đây. Giả định đó là về “phần dư”, chứ không phải bản thân việc phân phối dữ liệu. Ở đây, chúng tôi chỉ xem xét các khía cạnh khác nhau của dữ liệu trong mỗi nhóm nhằm mục đích khám phá và hiểu rõ hơn về chúng

Có ba bốn cách khác nhau để thực hiện kiểm tra ANOVA bằng Python

Phương pháp 1. scipy. số liệu thống kê

Nguồn. từ tác giả

Phương pháp 2. mô hình thống kê

Trong phương pháp này, bạn cần sử dụng mô hình Bình phương nhỏ nhất thông thường và cú pháp của nó giống với cú pháp của R dành cho những người quen thuộc với R hơn Python

Phương pháp 3. chim cánh cụt

Có một gói gọi là pingouin chứa các phép toán và kiểm tra thống kê khác nhau. Nó có một phiên bản ANOVA một chiều rất cụ thể được gọi là “ANOVA của Welch”. Điều này khác với thử nghiệm ANOVA cổ điển như thế nào? . Trong trường hợp này, ANOVA của Welch thường sẽ có tỷ lệ lỗi loại I thấp hơn so với ANOVA cổ điển. Nếu tất cả các giả định cho ANOVA cổ điển được đáp ứng, sẽ an toàn hơn nếu chỉ sử dụng ANOVA cổ điển hơn là ANOVA của Welch. Hãy xem bài viết này để biết thêm thông tin về bài kiểm tra ANOVA của Welch

Nguồn. từ tác giả

Phương pháp 4. bộ thông tin sinh học

Tương tự như pingouin, gói bioinfokit có lớp “phân tích” có nhiều chức năng kiểm tra thống kê khác nhau

Nguồn. từ tác giả

Bất kể bạn chọn phương pháp nào, thống kê F và giá trị p thu được sẽ giống nhau. Trong ví dụ này, giá trị p từ phân tích ANOVA có ý nghĩa thống kê (p < 0. 05), và do đó, chúng ta có thể kết luận rằng có sự khác biệt đáng kể về giá trị giữa các nhóm

Kiểm tra giả định

Chúng ta có thể kết luận như trên và tiếp tục không? . Chúng tôi cần đảm bảo rằng thử nghiệm ANOVA mà chúng tôi đã thực hiện được tiến hành theo các giả định chính xác

Tính bình thường của phần dư

Nếu bạn đã sử dụng phương pháp 4 (gói bioinfokit) ở trên để chạy thử nghiệm ANOVA, thì bạn chỉ cần lấy phần dư từ thử nghiệm ANOVA và vẽ cả biểu đồ QQ và biểu đồ

## QQ-plot of residuals
import statsmodels.api as sm
import matplotlib.pyplot as plt
sm.qqplot(res.anova_std_residuals, line='45')
plt.xlabel("Quantiles")
plt.ylabel("Std Residuals")
plt.show()
## Histogram of residuals
plt.hist(res.anova_model_out.resid, bins='auto', histtype='bar', ec='k')
plt.xlabel("Residuals")
plt.ylabel('Frequency')
plt.show()

Nếu các hình dung ở trên không đủ rõ ràng để cho chúng ta biết liệu giả định về tính quy tắc có được đáp ứng hay không, thì chúng ta có thể tiếp tục sử dụng một bài kiểm tra thống kê để kiểm tra tính quy tắc, bài kiểm tra Shapiro Wilk

Nguồn. từ tác giả

Biến “mô hình” trong thử nghiệm Shapiro Wilk ở trên là mô hình OLS từ phương pháp 2 sử dụng gói mô hình thống kê để chạy thử nghiệm ANOVA. Giá trị p nhỏ hơn 0. 05 và vì vậy chúng tôi bác bỏ giả thuyết khống và giả định về tính quy phạm không đúng

Tính đồng nhất của phương sai

Kiểm định Bartlett là một kiểm định cho phép chúng ta kiểm tra giả định về tính đồng nhất của phương sai. Nó là một phần của lớp thống kê gói scipy

Nguồn. từ tác giả

Giá trị P là khoảng 0. 82 lớn hơn 0. 05 và vì vậy chúng tôi không bác bỏ giả thuyết khống. Chúng tôi giả định rằng các nhóm khác nhau có phương sai bằng nhau

Có một phép thử khác gọi là phép thử Levene cho phép chúng ta kiểm tra tính đồng nhất của phương sai khi dữ liệu không vượt qua phép thử chuẩn ở phần trước. Thử nghiệm này được cung cấp bởi gói bioinfokit và bạn có thể tìm thêm thông tin từ đây

Thử nghiệm Kruskal-Wallis

Vì không phải tất cả các giả định cần thiết cho thử nghiệm ANOVA đều được thỏa mãn, nên chúng tôi chú ý đến thử nghiệm Kruskal-Wallis, đây là phiên bản phi tham số của thử nghiệm ANOVA một chiều. Thuật ngữ phi tham số có nghĩa là phương pháp không bị ràng buộc bởi các tham số và các giả định cơ bản

Các giả thuyết không và thay thế của thử nghiệm này là

Giả thuyết khống (H0). Trung bình là bằng nhau trên tất cả các nhóm

Giả thuyết thay thế (Ha). Trung bình không bằng nhau giữa tất cả các nhóm

Nguồn. từ tác giả

Giá trị p nhỏ hơn 0. 05 và vì vậy chúng tôi bác bỏ giả thuyết không. Ta nói rằng tồn tại một số khác biệt có ý nghĩa thống kê về trung vị giữa một số cặp. Cũng giống như kiểm định ANOVA, nó không cho chúng ta biết cặp nào có sự khác biệt có ý nghĩa thống kê về trung vị. Do đó, chúng tôi cần thực hiện bài kiểm tra hậu kiểm tra trong đó chúng tôi thực hiện so sánh theo cặp để xác định cặp nào gây ra kết quả này trong phân tích ANOVA của chúng tôi. Thử nghiệm của Tukey là một thử nghiệm thống kê mà chúng tôi sử dụng để thực hiện các so sánh theo cặp này. Đọc thêm về bài kiểm tra này trong bài viết này

Sự kết luận

Trong bài viết này, tôi đã giới thiệu với các bạn kiểm định ANOVA và kiểm định Kruskal-Wallis. Chúng là hai bài kiểm tra thống kê hữu ích cho phép chúng ta so sánh giá trị trung bình hoặc giá trị trung bình giữa các nhóm khác nhau và xem liệu sự khác biệt có ý nghĩa thống kê hay không. Lần tới khi bạn đọc một bài báo học thuật, bạn sẽ không sợ hãi với phần phương pháp luận, phần này thường bao gồm các bài kiểm tra thống kê này cho các phân tích của tác giả

Nếu bạn thấy bài đăng này hữu ích, hãy cân nhắc hỗ trợ tôi bằng cách đăng ký trên phương tiện thông qua liên kết sau. )

johnjuny. vừa phải. com

Bạn sẽ có quyền truy cập vào rất nhiều bài báo và bài viết hữu ích và thú vị không chỉ của tôi mà còn của các tác giả khác

Thông tin về các Tác giả

Nhà khoa học dữ liệu. Nghiên cứu sinh năm thứ nhất ngành Tin học tại UC Irvine

Cựu chuyên gia lĩnh vực nghiên cứu tại phòng thí nghiệm kinh tế của Hệ thống Hồ sơ Hành chính Tư pháp Hình sự (CJARS) tại Đại học Michigan, làm việc về tạo báo cáo thống kê, đánh giá chất lượng dữ liệu tự động, xây dựng đường ống dữ liệu và chuẩn hóa & hài hòa dữ liệu. Cựu thực tập sinh khoa học dữ liệu tại Spotify. tập đoàn. (NYC)

Anh ấy thích thể thao, tập thể dục, nấu những món ăn ngon của châu Á, xem phim truyền hình và sáng tác/biểu diễn âm nhạc và quan trọng nhất là thờ phượng Chúa Giê Su Ky Tô, Chúa của chúng ta. Kiểm tra trang web của anh ấy

Bạn có thể sử dụng Kruskal

Là ANOVA một chiều tương đương phi tham số, thử nghiệm Kruskal-Wallis được gọi là ANOVA một chiều theo cấp bậc. Không giống như ANOVA một chiều tương tự, thử nghiệm Kruskal-Wallis phi tham số không giả định phân phối chuẩn của dữ liệu cơ bản . Do đó, thử nghiệm Kruskal-Wallis phù hợp hơn để phân tích dữ liệu microbiome.

Bảng nào được sử dụng cho Kruskal

Bảng Kruskal–Wallis được sử dụng cho các bài kiểm tra phi tham số sử dụng cấp bậc và đặc biệt cho các bài kiểm tra có cùng tên. Khi số lượng mẫu i lớn hơn 3, chúng ta có thể xấp xỉ giá trị của bảng Kruskal–Wallis bằng bảng chi-square với \( { k - 1 } \) bậc tự do.

Có thể Kruskal

Do đó, kiểm định Kruskal-Wallis có thể được sử dụng cho cả biến phụ thuộc cấp độ liên tục và cấp độ thứ tự .

Có bài kiểm tra sau đại học cho Kruskal không

Các bài kiểm tra hậu đại học phổ biến nhất sau bài kiểm tra Kruskal-Wallis quan trọng là. Thử nghiệm Dunn . Thử nghiệm chuyển đổi . Thử nghiệm Nemenyi .