나는 다음과 같이 혼란스러워서 다른 곳에서 답을 찾을 수 없었습니다.
나는 통계를하는 동안 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
함수가 왜 철자를 써서 얻는 것과 다른 값을 반환 하는지 이해 하는 사람이 있습니까?