Je suis confus par ce qui suit, et je n'ai pas pu trouver la réponse ailleurs.
J'essaie d'apprendre R tout en faisant quelques statistiques, et, comme exercice, j'essaie de revérifier les résultats des fonctions R intégrées en les faisant également `` à la main '', pour ainsi dire, dans R. Cependant , pour le test de Kruskal-Wallis, je continue d'obtenir des résultats différents, et je ne peux pas comprendre pourquoi.
Par exemple, je regarde les données suivantes distribuées dans un exercice
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)
Et je veux analyser l'activité par groupe. Je lance d'abord un test de Kruskal-Wallis en utilisant la fonction R intégrée
kruskal.test(activity ~ group, data = data.raw)
Ce qui renvoie .
Pour revérifier, j'essaie de faire la même chose «à la main» dans R, avec le code (sans doute sans défense) suivant
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
Ce qui est censé refléter la formule suivante:
J'ai essayé de chercher à comprendre ce que je fais mal ou ne comprends pas, mais en vain. Quelqu'un peut-il m'aider à comprendre pourquoi la kruskal.test
fonction intégrée renvoie une valeur différente de celle que j'obtiens en énonçant les choses?