Tôi bối rối bởi những điều sau đây, và tôi đã không thể tìm ra câu trả lời ở nơi khác.
Tôi đang cố gắng học R trong khi thực hiện một số thống kê và, như một bài tập, tôi cố gắng kiểm tra kỹ kết quả của các hàm R tích hợp bằng cách thực hiện những điều này 'bằng tay', như đã từng, trong R. Tuy nhiên , đối với thử nghiệm Kruskal-Wallis, tôi tiếp tục nhận được các kết quả khác nhau và tôi không thể hiểu tại sao.
Ví dụ: tôi đang xem các dữ liệu sau đây được đưa ra trong một bài tập
activity <- c(2, 4, 3, 2, 3, 3, 4, 0, 4, 3, 4, 0, 0, 1, 3, 1, 2, 0, 3, 1, 0, 3, 4, 0, 1, 2, 2, 2, 3, 2)
group <- c(rep("A", 11), rep("B", 10), rep("C", 9))
group <- factor(group)
data.raw <- data.frame(activity, group)
Và tôi muốn phân tích hoạt động theo nhóm. Đầu tiên tôi chạy thử nghiệm Kruskal-Wallis bằng hàm R dựng sẵn
kruskal.test(activity ~ group, data = data.raw)
Mà trả về .
Để kiểm tra kỹ, tôi thử thực hiện cùng một cách 'bằng tay' trong R, với mã sau (không nghi ngờ gì là bất lực)
rank <- rank(activity)
data.rank <- data.frame(rank, group)
rank.sum <- aggregate(rank ~ group, data = data.rank, sum)
x <- rank.sum[1,2]^2 / 11 + rank.sum[2,2]^2 / 10 + rank.sum[3,2]^2 / 9
H <- (12 / (length(activity) * (length(activity) + 1))) * x - 3 * (length(activity) + 1)
H
Điều này có nghĩa là để phản ánh công thức sau đây:
Trong đó là tổng số quan sát, là số lượng nhóm, là số lượng quan sát trong nhóm thứ và là tổng các cấp bậc của nhóm thứ .g n i i R i i
Và bây giờ tôi nhận được , trong đó, thêm vào sự nhầm lẫn của tôi, cũng là câu trả lời được đưa ra cho bài tập được đề cập. Tôi đã thử điều này cho một vài bộ dữ liệu khác nhau và tôi có xu hướng nhận được giá trị cao hơn một chút cho bằng cách sử dụng hàm dựng sẵn.H
Tôi đã cố gắng tìm kiếm để tìm ra những gì tôi đang làm sai hoặc không hiểu, nhưng không có kết quả. Bất cứ ai có thể giúp tôi hiểu tại sao kruskal.test
hàm inbuilt trả về một giá trị khác với giá trị tôi nhận được bằng cách đánh vần mọi thứ?