Expliquer la fonction quantile () dans R

J’ai été mystifié par la fonction quantile R toute la journée.

J’ai une notion intuitive de la façon dont fonctionnent les quantiles, et une MS dans les statistiques, mais bon sang, la documentation pour moi est confuse.

De la documentation:

Q [i] (p) = (1 – gamma) x [j] + gamma x [j + 1],

Je suis avec ça jusqu’ici. Pour un quantile de type i , c’est une interpolation entre x [j] et x [j + 1], basée sur un gamma constant et mystérieux.

où 1 <= i <= 9, (jm) / n <= p <(j-m + 1) / n, x [j] est la statistique d'ordre j, n est la taille de l'échantillon et m est une constante déterminée par le type d'échantillon quantile. Ici, gamma dépend de la partie fractionnaire de g = np + mj.

Alors, comment calculer j? m?

Pour les types de quantiles d’échantillons continus (4 à 9), les quantiles d’échantillons peuvent être obtenus par interpolation linéaire entre la statistique du kième ordre et p (k):

p (k) = (k – alpha) / (n – alpha – beta + 1), où α et β sont des constantes déterminées par le type. En outre, m = alpha + p (1-alpha-bêta) et gamma = g.

Maintenant je suis vraiment perdu. p, qui était une constante auparavant, est maintenant apparemment une fonction.

Donc, pour les quantiles de type 7, la valeur par défaut …

Type 7

p (k) = (k – 1) / (n – 1). Dans ce cas, p (k) = mode [F (x [k])]. Ceci est utilisé par S.

Quelqu’un veut-il m’aider? En particulier, je suis confus par la notation de p étant une fonction et une constante, ce qui est mal, et maintenant pour calculer j pour un p particulier.

J’espère que, sur la base des réponses apscopes ici, nous pourrons soumettre une documentation révisée qui explique mieux ce qui se passe ici.

code source ou type quantile.R: quantile.default

Vous êtes naturellement confus. Cette documentation est terrible. Je devais revenir au papier sur lequel il est basé (Hyndman, RJ; Fan, Y. (novembre 1996). “Quantiles d’échantillons dans des paquets statistiques”. Statisticien américain 50 (4): 361–365. Doi: 10.2307 / 2684934 ) pour comprendre Commençons par le premier problème.

où 1 <= i <= 9, (jm) / n <= p <(j-m + 1) / n, x [j] est la statistique d'ordre j, n est la taille de l'échantillon et m est une constante déterminée par le type d'échantillon quantile. Ici, gamma dépend de la partie fractionnaire de g = np + mj.

La première partie vient directement de l’article, mais ce que les auteurs de la documentation ont omis était que j = int(pn+m) . Cela signifie que Q[i](p) ne dépend que des statistiques de deux ordres les plus proches de la fraction p des observations (sortingées). (Pour ceux qui, comme moi, ne connaissent pas le terme, les «statistiques d’ordre» d’une série d’observations sont les séries sortingées.)

En outre, cette dernière phrase est tout simplement erronée. Il devrait lire

Ici, gamma dépend de la partie fractionnaire de np + m, g = np + mj

Quant à m c’est simple. m dépend de lequel des 9 algorithmes a été choisi. Donc, tout comme Q[i] est la fonction quantile, m devrait être considéré m[i] . Pour les algorithmes 1 et 2, m vaut 0, pour 3, m vaut -1/2, et pour les autres, c’est dans la partie suivante.

Pour les types de quantiles d’échantillons continus (4 à 9), les quantiles d’échantillons peuvent être obtenus par interpolation linéaire entre la statistique du kième ordre et p (k):

p (k) = (k – alpha) / (n – alpha – beta + 1), où α et β sont des constantes déterminées par le type. En outre, m = alpha + p (1-alpha-bêta) et gamma = g.

C’est vraiment déroutant. Ce que la documentation appelle p(k) n’est pas le même que le p précédent. p(k) est la position de tracé . Dans l’article, les auteurs l’écrivent comme p k , ce qui aide. Surtout que dans l ‘expression pour m , le p est le p original et le m = alpha + p * (1 - alpha - beta) . Conceptuellement, pour les algorithmes 4-9, les points ( p k , x[k] ) sont interpolés pour obtenir la solution ( p , Q[i](p) ). Chaque algorithme ne diffère que dans l’algorithme de p k .

En ce qui concerne le dernier bit, R indique simplement ce que S utilise.

Le document original donne une liste de 6 «propriétés souhaitables pour une fonction de quantile d’échantillon», et indique une préférence pour le # 8 qui satisfait tout par 1. # 5 les satisfait tous, mais ils ne l’aiment pas pour d’autres raisons (c’est le cas). plus phénoménologique que dérivé des principes). # 2 est ce que les geeks non-stat comme moi pourraient considérer les quantiles et c’est ce qui est décrit dans wikipedia.

BTW, en réponse à dreeves répondre , Mathematica fait les choses de manière très différente. Je pense que je comprends la cartographie. Bien que Mathematica soit plus facile à comprendre, (a) il est plus facile de se photographier dans le pied avec des parameters absurdes, et (b) il ne peut pas fonctionner avec l’algorithme R # 2. (Voici la page Quantile de Mathworld , qui indique que Mathematica ne peut pas faire # 2, mais donne une généralisation plus simple de tous les autres algorithmes en termes de quatre parameters.)

Il existe différentes manières de calculer les quantiles lorsque vous lui atsortingbuez un vecteur et que vous n’avez pas de CDF connu.

Considérez la question de savoir quoi faire lorsque vos observations ne tombent pas exactement dans les quantiles.

Les “types” sont juste en train de déterminer comment faire cela. Ainsi, les méthodes disent “utiliser une interpolation linéaire entre la statistique d’ordre k et p (k)”.

Alors, quoi de p (k)? Un gars dit: “Eh bien, j’aime utiliser k / n”. Un autre gars dit: “J’aime utiliser (k-1) / (n-1)” etc. Chacune de ces méthodes a des propriétés différentes qui conviennent mieux à un problème ou à un autre.

Les \ alpha et \ beta sont juste des moyens de paramétrer les fonctions p. Dans un cas, ils sont 1 et 1. Dans un autre cas, ils sont 3/8 et -1/4. Je ne pense pas que les p soient une constante dans la documentation. Ils ne montrent pas toujours la dépendance explicitement.

Voir ce qui se passe avec les différents types lorsque vous mettez des vecteurs tels que 1: 5 et 1: 6.

(Notez également que même si vos observations se situent exactement sur les quantiles, certains types utiliseront toujours une interpolation linéaire).