Ders kitabın karıştı. Çok az insan veya yazılım çeyrekleri bu şekilde tanımlamaktadır. (İlk çeyreği çok küçük ve üçüncü çeyreği çok büyük yapma eğilimindedir.)
quantileİşlev Ruygular dokuz hesaplama quantiles farklı yolları! Bunlardan hangisinin, eğer varsa, bu yönteme karşılık geldiğini görmek için, uygulamaya başlayalım. Tanımdan önce bir matematik algoritmasını yazabiliriz, önce matematiksel olarak, sonra R:
x1≤ x2≤ ⋯ ≤ xn
Herhangi bir veri kümesi için, tek sayıda değer olduğunda medyan orta değeridir; Aksi halde, eşit sayıda değer olduğunda iki orta değerin ortalamasıdır. R'nin medianişlevi bunu hesaplar.
m = ( n + 1 ) / 2( xl+ xu) / 2lummxml = m - 1u = m + 1lu
xbeni ≤ l( xben)i ≥ u
İşte bir uygulama. Alıştırmalarınızı bu ders kitabında yapmanıza yardımcı olabilir.
quart <- function(x) {
x <- sort(x)
n <- length(x)
m <- (n+1)/2
if (floor(m) != m) {
l <- m-1/2; u <- m+1/2
} else {
l <- m-1; u <- m+1
}
c(Q1=median(x[1:l]), Q3=median(x[u:n]))
}
Örneğin, çıktı quart(c(6,7,8,9,10,15,16,16,20,20,23,33,50,58,104))metni ile aynı fikirdedir:
Q1 Q3
9 33
Hadi on metodun hepsini kullanarak bazı küçük veri kümeleri için çeyrek değerler hesaplayalım: Dokuz giriş Rve ders kitabı:
y <- matrix(NA, 2, 10)
rownames(y) <- c("Q1", "Q3")
colnames(y) <- c(1:9, "Quart")
for (n in 3:5) {
j <- 1
for (i in 1:9) {
y[, i] <- quantile(1:n, probs=c(1/4, 3/4), type=i)
}
y[, 10] <- quart(1:n)
cat("\n", n, ":\n")
print(y, digits=2)
}
Bunu çalıştırdığınızda ve kontrol ettiğinizde , ders kitabı değerlerinin üç örneklemin tamamı için çıktıların hiçbiriyle aynı fikirde olmadığınıR göreceksiniz . (Uyuşmazlık paterni, 3. periyotta devam eder, bu da örneğin ne kadar büyük olursa olsun sorunun devam ettiğini gösterir.)
9.528
quantile1, 2 ve 6 türleri bu boyuttaki bir veri kümesi için onları çoğaltacaktır . Yok aitRmetotlarla ders kitaplarında karşılık gelir. (Bir kişi bu metnin kalitesi hakkında merak ediyor ...)