Sono confuso da quanto segue e non sono stato in grado di trovare la risposta altrove.
Sto cercando di imparare R mentre faccio alcune statistiche e, come esercizio, provo a ricontrollare i risultati delle funzioni R incorporate facendo anche queste "manualmente", per così dire, in R. Tuttavia , per il test Kruskal-Wallis continuo a ottenere risultati diversi e non riesco a capire perché.
Ad esempio, sto esaminando i seguenti dati forniti in un esercizio
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)
E voglio analizzare l'attività per gruppo. Per prima cosa eseguo un test Kruskal-Wallis usando la funzione R integrata
kruskal.test(activity ~ group, data = data.raw)
Che restituisce .
Per ricontrollare, provo a fare lo stesso "a mano" in R, con il seguente codice (senza dubbio impotente)
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
Che vuole riflettere la seguente formula:
Dove è il numero totale di osservazioni, g è il numero di gruppi, n_i è il numero di osservazioni nel primo gruppo e R_i è la somma dei ranghi del primo gruppo.
E ora ottengo , che, aggiungendo alla mia confusione, è anche la risposta data per l'esercizio in questione. Ho provato questo per un paio di set di dati diversi e tendo a ottenere un valore leggermente più alto per usando la funzione integrata.
Ho provato a cercare di capire cosa sto sbagliando o non riuscendo a capire, ma senza risultati. Qualcuno può aiutarmi a capire perché la kruskal.test
funzione integrata restituisce un valore diverso da quello che ottengo spiegando le cose?