Aşağıdakiler yüzünden kafam karıştı ve başka bir yerde cevabı bulamadım.
Bazı istatistikleri yaparken R'yi öğrenmeye çalışıyorum ve bir egzersiz olarak, R'deki gibi 'elle' de yaparak yerleşik R işlevlerinin sonuçlarını iki kez kontrol etmeye çalışıyorum. , Kruskal-Wallis testi için farklı sonuçlar almaya devam ediyorum ve nedenini anlayamıyorum.
Örneğin, bir alıştırmada verilen aşağıdaki verilere bakıyorum
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)
Etkinliği grup bazında analiz etmek istiyorum. Önce yerleşik R işlevini kullanarak bir Kruskal-Wallis testi yapıyorum
kruskal.test(activity ~ group, data = data.raw)
Hangi döndürür .
Tekrar kontrol etmek için, R'de aynı 'elle' yapmaya çalışıyorum, aşağıdaki (şüphesiz çaresiz) kodla
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
Bu, aşağıdaki formülü yansıtmak içindir:
Burada toplam gözlem sayısı, gruplarının sayısı, gözlem sayısı i inci grubu ve r_i saflarına toplamıdır i inci grup.
Ve şimdi elde , ki bu da benim karışıklığımı ekleyerek, söz konusu egzersiz için verilen cevaptır. Bunu birkaç farklı veri kümesi için denedim ve yerleşik işlevi kullanarak için biraz daha yüksek bir değer elde etme eğilimindeyim .
Neyi yanlış yaptığımı veya anlayamadığımı anlamaya çalıştım, ama boşuna. Herkes dahili kruskal.test
fonksiyonun neden bir şeyleri heceleyerek elde ettiğim değerden farklı bir değer döndürdüğünü anlamama yardımcı olabilir mi?