나는 다음과 같이 혼란스러워서 다른 곳에서 답을 찾을 수 없었습니다.
나는 통계를하는 동안 R을 배우려고 노력하고 있으며 연습으로 내장 R 함수의 결과를 R에서와 같이 '손으로'수행하여 다시 확인하려고합니다. , Kruskal-Wallis 테스트의 경우 계속 다른 결과가 나오며 이유를 알 수 없습니다.
예를 들어, 연습에서 전달 된 다음 데이터를보고 있습니다
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)
그리고 그룹별로 활동을 분석하고 싶습니다. 먼저 내장 R 함수를 사용하여 Kruskal-Wallis 테스트를 실행합니다
kruskal.test(activity ~ group, data = data.raw)
반환합니다 .
다시 확인하기 위해 R에서 다음과 같은 코드를 사용하여 동일한 '손으로'작업을 시도합니다.
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
다음 공식을 반영합니다.
여기서 은 총 관측치 수, 는 그룹 수, 는 번째 그룹 의 관측치 수 , 는 번째 그룹 의 순위의 합입니다 .
그리고 이제 얻 습니다. 혼란에 더해 문제의 운동에 대한 해답이기도합니다. 몇 가지 다른 데이터 세트에 대해이 작업을 시도 했으며 내장 기능을 사용하여 대해 약간 높은 값을 얻는 경향이 있습니다.
내가 잘못하고 있거나 이해하지 못하는 것을 알아 내려고 노력했지만 아무 소용이 없습니다. 내장 kruskal.test함수가 왜 철자를 써서 얻는 것과 다른 값을 반환 하는지 이해 하는 사람이 있습니까?