Trong bài học thống kê cho khoa học dữ liệu hôm nay, chúng ta sẽ cùng nhau tìm hiểu về một tương quan khá phổ biến trong thống kê, đó là tương quan xếp hạng Kendall.
Mục lục bài viết
- 1 Tương quan xếp hạng Kendall là gì?
- 2 Khác biệt giữa tương quan Kendall và các tương quan khác trong thống kê cho khoa học dữ liệu
- 3 Công thức tính tương quan Kendall trong thống kê cho khoa học dữ liệu
- 4 Code tính tương quan Kendall trong thống kê cho khoa học dữ liệu
- 5 Video bài 7 thống kê cho khoa học dữ liệu
Tương quan xếp hạng Kendall là gì?
Tương quan xếp hạng Kendall (gọi tắt là tương quan Kendall, hay Kendall tau, tiếng anh là Kendall rank correlation coefficient). Cũng giống như tương quan Spearman, tương quan Kendall giúp đánh giá sự tương quan của hai tập dữ liệu dựa vào xếp hạng của chúng.
Khác biệt giữa tương quan Kendall và các tương quan khác trong thống kê cho khoa học dữ liệu
So với tương quan Pearson
Trong thống kê cho khoa học dữ liệu, khác với tương quan Pearson, tương quan Kendall được sử dụng trong kiểm định phi tham số (non-parametric).
Kiểm định có tham số chẳng hạng như: T-test, ANOVA
Kiểm định phi tham số như: Mann-Whitney U-Test hay là Wilcoxon-Test.
Những vấn đề về kiểm định sẽ được làm rõ trong phần 2 của series thống kê cho khoa học dữ liệu này nhé.
Và vì thế, khi tính toán tương quan Kendall-tau, dữ liệu không được phép có phân bố chuẩn và kiểu dữ liệu phải là ordinal (dữ liệu có thể xếp hạng được) (xem lại bài 2 của series này nhé!)
So với tương quan Spearman
Kiểm định phi tham số của tương quan Kendall-tau hoàn toàn tương tự như tương quan Spearman.
Tuy nhiên, khi bạn gặp một dữ liệu có rất ít số liệu và có nhiều phần tử đồng hạng với nhau (tied rank), thì tương quan Kendall sẽ được ưu tiên sử dụng hơn.
Công thức tính tương quan Kendall trong thống kê cho khoa học dữ liệu
Tới phần mệt mỏi nhất trong thống kê, đó chính là công thức tính toán 😵😵.
Nhưng đừng lo, bạn không cần phải nhớ công thức làm gì, chỉ cần hiểu, còn công thức nếu lỡ quên có thể ghé đây xem lại 🤣🤣🤣
Có tới ba cách tính tương quan Kendall, đó là Kendall tau-a, tau-b, và tau-c.
Kendall tau-a
Cơ bản nhất là trong trường hợp không có phần tử đồng hạng (tied rank), chúng ta có thể đơn giản tính toán tương quan Kendall như sau:
[math]\tau=\frac{n_c-n_d}{n_c+n_d}[/math]
hoặc có thể tính theo công thức khác:
[math]\tau=\frac{n_c-n_d}{n_0}[/math]
Trong đó:
[math]n_c[/math]: số lượng cặp concordant (đồng biến)
[math]n_d[/math]: số lượng cặp discordant (nghịch biến)
[math]n_0=\frac{n(n-1)}{2}[/math], với [math]n[/math] là tổng số phần tử cần kiểm tra
Để dễ hiểu thì chúng ta sẽ xét một ví dụ sau:
Giả sử trong một bệnh viện, có 6 bệnh nhân đến khám sức khỏe và có 2 bác sĩ đều khám sức khỏe cho tất cả 6 bệnh nhân này. Khi đó, 2 vị bác sĩ này sẽ xếp loại sức khỏe của các bệnh nhân theo tứ tự từ cao xuống thấp như sau:
Một trong hai bảng xếp hạng của các bác sĩ (ở đây là bác sĩ nữ) sẽ được sử dụng làm đối chứng hay tham khảo để so sánh với người còn lại. Lúc này, xếp loại sức khỏe của các bệnh nhân sẽ được phân loại từ 1-6 theo như tham khảo (hình A).
Và khi đó, chúng ta có thể so sánh sự khác nhau giữa xếp hạng của cả hai vị bác sĩ (hình B).
Trong thống kê cho khoa học dữ liệu, chúng ta có thể biết được liệu cả hai xếp hạng này có sự liên hệ nào với nhau không bằng cách sử dụng Kendall tau. Để làm được thì chúng ta chỉ cần xếp hạng phía bên tay phải là được (nghĩa là của bác sĩ nam trên hình).
>>>> Xem thêm: Bí quyết giúp bạn trở thành bất kỳ ai, thật sự!
Bây giờ, việc cần làm là so sánh những thứ hạng ở dưới với thứ hạng đầu tiên. Nếu nó nhỏ hơn thì là dấu trừ (-), nếu lớn hơn thì là dấu (+).
Quay lại ví dụ ở trên, thứ hạng đầu tiên của vị bác sĩ nam là, dưới nó là 1, 1<3 nên xếp hạng của nó là (-), tiếp theo, dưới nữa là 4, 4>3 nên nó sẽ là (+), và cứ như thế cho đến thứ hạng cuối cùng.
Chúng ta sẽ làm tương tự cho những thứ hạng bên dưới, cho đến thứ hạng cuối cùng.
Bây giờ chúng ta sẽ đếm xem có bao nhiêu dấu (+) và bao nhiêu dấu (-). Mỗi dấu (+) đại diện cho giá trị concordant, tức là giá trị mà bên tham khảo lớn hơn giá trị so sánh thì bên cần tính cũng sẽ lớn hơn. Và ngược lại, mỗi dấu (-) đại diện cho giá trị discordant, tức là giá trị đang so sánh nhỏ hơn so với giá trị tham khảo.
Và khi đó, ta sẽ tính được tương quan Kendall-tau theo công thức ở trên. Trong trường hợp này chính là:
[math]\tau=\frac{11-4}{11+4}=\frac{7}{15}=0.47[/math]
Khi đó ta có thể kết luận rằng không có sự tương quan trong kết quả chuẩn đoán của hai vị bác sĩ về tình trạng sức khỏe của các bệnh nhân trên.
Kendall tau-b
Phương pháp Kendall tau-a được sử dụng khi không có những thứ hạng trùng nhau (tied rank). Trường hợp có tied rank, chúng ta sẽ sử dụng phương pháp kendall tau-b với công thức như sau:
[math]\tau=\frac{n_c-n_d}{\sqrt{(n_0-n_1)(n_0-n_2)}}[/math]
Trong đó:
[math]n_c[/math]: số lượng cặp concordant (đồng biến)
[math]n_d[/math]: số lượng cặp discordant (nghịch biến)
[math]n_0=\frac{n(n-1)}{2}[/math], với [math]n[/math] là tổng số phần tử cần kiểm tra
[math]n_1=\displaystyle\sum_{i} t_i(t_i-1)/2[/math] là số lượng giá trị tied rank ở vị trí thứ [math]i[/math] của nhóm đầu tiên (nhóm tham khảo)
[math]n_2=\displaystyle\sum_{j} u_i(u_j-1)/2[/math] là số lượng giá trị tied rank ở vị trí thứ [math]j[/math] của nhóm thứ hai
Nhìn phức tạp vậy thôi chứ thật ra nó phức tạp thiệt 🤣🤣🤣 Chúng ta không cần phải nhớ làm gì, vì sau này chỉ cần vài dòng code sẽ tính được ngay thôi! Cảm ơn phép màu của công nghệ!
>>>> Xem thêm: ánh sáng xanh có phải là thủ phạm gây ra chứng mất ngủ của bạn?
Kendall tau-c
Trong thống kê cho khoa học dữ liệu, nếu Kendall tau-b dùng để tính toán các giá trị tied rank, vậy thì Kendall tau-c để làm gì?
chúng ta dùng tau-c trong trường hợp bảng giá trị không vuông (?!) nghĩa là số lượng các giá trị ghi nhận được không đồng bộ với nhau (các bạn có thể tham khảo link bên dưới).
https://en.wikipedia.org/wiki/Contingency_table
Kendall tau-c hay còn gọi là Stuart-Kendall-tau-c (cái tên dài thật sự), dùng để kiểm tra khi số lượng các giá trị cần so sánh không đồng đều nhau. Chẳng hạn như, hai vị bác sĩ ở trên, một vị kiểm tra sức khỏe cho 6 người, vị còn lại kiểm tra cho 10 người. Khi đó chúng ta có số lượng không đồng bộ với nhau, lúc này tau-c sẽ phát huy tác dụng. Công thức tính Kendall tau-c như sau:
[math]\tau=\frac{2(n_c-n_d)}{n^2\frac{m-1}{m}}[/math]
Trong đó:
[math]n_c[/math]: số lượng cặp concordant (đồng biến)
[math]n_d[/math]: số lượng cặp discordant (nghịch biến)
[math]n[/math] là tổng số phần tử cần kiểm tra
[math]m=min(n_1,n_2)[/math] là giá trị nhỏ nhất của số lượng giá trị của 2 nhóm cần so sánh
Code tính tương quan Kendall trong thống kê cho khoa học dữ liệu
Chúng ta có thể dễ dàng tính toán tương quan Kendall bằng các phần mềm phục vụ cho data science như R hay python.
Sử dụng R để tính toán
> bs_nu=c(1,2,3,4,5,6)
> bs_nam=c(3,1,4,2,6,5)
> res=cor.test(bs_nu,bs_nam, method = "kendall")
> res
//______________kết quả_________________//
Kendall's rank correlation tau
data: bs_nu and bs_nam
T = 11, p-value = 0.2722
alternative hypothesis: true tau is not equal to 0
sample estimates:
tau
0.4666667
Lưu ý, phương pháp này không tính được Kendall tau-c.
Sử dụng python để tính toán
# nạp thư viện tính toán
from scipy.stats import kendalltau
# nạp dữ liệu
bs_nu = [1, 2, 3, 4, 5, 6]
bs_nam = [3, 1, 4, 2, 6, 5]
# Tính toán tương quan Kendall
corr, _ = kendalltau(bs_nu, bs_nam)
print('Kendall Rank correlation: %.5f' % corr)
#______________kết quả_________________#
Kendall Rank correlation: 0.46667
Với code python có thể tính được Kendall tau-b nhưng tau-c thì lại là một câu chuyện khác 🤐🤐🤐
Video bài 7 thống kê cho khoa học dữ liệu
Đang cập nhật…
Vừa rồi là bài giới thiệu về hệ số tương quan Kendall tau. Cảm ơn các bạn đã quan tâm đọc hết bài. Chúc các bạn một ngày tuyệt vời!