Votre manuel est confus. Très peu de personnes ou de logiciels définissent les quartiles de cette manière. (Cela a tendance à rendre le premier quartile trop petit et le troisième quartile trop grand.)
La quantilefonction Rimplémente neuf façons différentes de calculer les quantiles! Pour voir laquelle d’entre elles, le cas échéant, correspond à cette méthode, commençons par l’implémenter. À partir de la description, nous pouvons écrire un algorithme, d'abord mathématiquement, puis dans R:
x1≤x2≤⋯≤xn
Pour tout ensemble de données, la médiane est sa valeur moyenne lorsqu'il existe un nombre impair de valeurs; sinon, il s'agit de la moyenne des deux valeurs centrales lorsqu'il existe un nombre pair de valeurs. RLa medianfonction de calcule ceci.
m=(n+1)/2(xl+xu)/2lummxml=m−1u=m+1lu
xii≤l(xi)i≥u
Voici une implémentation. Cela peut vous aider à faire vos exercices dans ce manuel.
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]))
}
Par exemple, la sortie de quart(c(6,7,8,9,10,15,16,16,20,20,23,33,50,58,104))correspond au texte:
Q1 Q3
9 33
Calculons les quartiles de petits ensembles de données en utilisant les dix méthodes: le neuf Ret le manuel:
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)
}
Lorsque vous exécutez ceci et vérifiez, vous constaterez que les valeurs de manuel ne sont pas en accord avec aucun des Rrésultats pour les trois tailles d'échantillon. (La tendance des désaccords se poursuit au cours des cycles de la période trois, montrant que le problème persiste, quelle que soit la taille de l'échantillon.)
9.528
quantiletypes 1, 2 et 6 les reproduiront pour un jeu de données de cette taille . Aucune desRméthodes ne correspond à votre manuel. (On s'interroge sur la qualité de ce texte ...)