Trouver des quartiles en R

33

Je travaille sur un manuel de statistiques tout en apprenant R et je suis tombé sur une pierre d'achoppement sur l'exemple suivant:

entrez la description de l'image ici

Après avoir regardé, ?quantilej'ai essayé de recréer ceci dans R avec ce qui suit:

> nuclear <- c(7, 20, 16, 6, 58, 9, 20, 50, 23, 33, 8, 10, 15, 16, 104)
> quantile(nuclear)
   0%   25%   50%   75%  100% 
  6.0   9.5  16.0  28.0 104.0 

Étant donné que le texte et R ont des résultats différents, je suppose que R utilise la médiane dans le calcul des premier et troisième quartiles.

Question:

Devrais-je inclure la médiane dans le calcul des premier et troisième quartiles?

Plus précisément, le manuel ou R a-t-il cela correct? Si le manuel a cela correct, y a-t-il un moyen de le réaliser correctement dans R?

Merci d'avance.


la source
6
Quelques discussions traitent ici des nombreuses façons dont les quantiles peuvent être calculés ou estimés. En voici une avec une réponse faisant autorité , mais d’autres sont disponibles en effectuant une recherche sur notre site. En résumé, votre manuel semble présenter une méthode non standard de calcul des quartiles, mais les quantiletypes 1, 2 et 6 les reproduiront pour un jeu de données de cette taille . Aucune des Rméthodes ne correspond à votre manuel. (On s'interroge sur la qualité de ce texte ...)
whuber
@whuber Merci pour ce commentaire, cela m'a beaucoup aidé, car je crains de ne pas encore avoir les connaissances techniques pour distinguer exactement ce que font les différents types quantile.
@whuber: c'est clairement non standard (ce qui est probablement mentionné quelque part dans le livre), mais ce n'est pas anodin. Pensez-vous que c'est mathématiquement faux?
Michael M
6
n
whuber
1
R utilise neuf définitions différentes de quantiles (par défaut, il utilise la définition 7). See?quantile
Glen_b -Reinstate Monica

Réponses:

43

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:

  1. x1x2xn

  2. 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=m1u=m+1lu

  3. xiil(xi)iu

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

whuber
la source
3
Un grand merci pour cette réponse détaillée et pour me fournir les outils nécessaires pour travailler seul et évaluer les différentes méthodes. Je vais les renvoyer maintenant et examiner les choses plus en détail.
2

Dans le domaine des statistiques (que j'enseigne, mais dans lequel je ne suis pas chercheur), les calculs par quartile sont particulièrement ambigus (d'une manière qui n'est pas nécessairement vraie pour les quantiles, plus généralement). Cela a beaucoup d’histoire derrière, en partie à cause de l’utilisation (et peut-être même de l’abus) de la fourchette inter-quartile (IQR), insensible aux valeurs aberrantes, comme moyen de contrôle ou comme alternative à l’écart type. Il reste un concours ouvert, avec trois méthodes distinctes pour calculer Q1 et Q3 étant co-canoniques.

Comme souvent, l'article de Wikipedia contient un résumé raisonnable: https://en.m.wikipedia.org/wiki/Quartile Le texte de Larson et Farber, comme la plupart des textes de statistiques élémentaires, utilise ce qui est décrit dans l'article de Wikipedia: " Méthode 1. " Si je suis les descriptions ci-dessus, r utilise la "Méthode 3". Vous devrez décider vous-même ce qui est canoniquement approprié dans votre propre domaine.

James Klock
la source
Vous faites de bons points (+1). Mais étant donné que les références pour "Méthode 1" sont la calculatrice TI-83 et Excel (dont le manque de crédibilité est bien connu), que cette méthode est manifestement biaisée et qu’elle n’est pas plus difficile à calculer que les articulations de Tukey, elle semble difficile de justifier ou de recommander son utilisation.
whuber