J'ai été mystifié par la fonction R quantile toute la journée.
J'ai une notion intuitive du fonctionnement des quantiles et un M.S. dans les statistiques, mais mon garçon, mon garçon, la documentation pour moi est déroutante.
De la documentation:
Q [i] (p) = (1 - gamma) x [j] + gamma x [j + 1],
Je suis avec ça jusqu'à présent. Pour un quantile de type i , il s'agit d'une interpolation entre x [j] et x [j + 1], basée sur une constante mystérieuse gamma
où 1 <= i <= 9, (jm)/n <= p <(j-m + 1)/n, x [j] est la statistique du jème ordre, n est la taille de l'échantillon et m est une constante déterminée par le type de quantile d'échantillon. Ici, le gamma dépend de la partie fractionnaire de g = np + m-j.
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 kème ordre et p (k):
p (k) = (k - alpha)/(n - alpha - beta + 1), où α et β sont des constantes déterminées par le type. De plus, 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 que diable m , et maintenant pour calculer j pour un particulier p .
J'espère que sur la base des réponses ici, nous pourrons soumettre une documentation révisée qui explique mieux ce qui se passe ici.
code source quantile.R ou tapez: quantile.default
Vous êtes naturellement confus. Cette documentation est terrible. Je devais revenir à l'article sur lequel il est basé (Hyndman, RJ; Fan, Y. (novembre 1996). "Sample Quantiles in Statistical Packages". American Statistician 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 du jème ordre, n est la taille de l'échantillon et m est une constante déterminée par le type de quantile d'échantillon. Ici, le gamma dépend de la partie fractionnaire de g = np + m-j.
La première partie vient directement de l'article, mais ce que les rédacteurs de la documentation ont omis, c'est que j = int(pn+m)
. Cela signifie que Q[i](p)
ne dépend que des deux statistiques d'ordre les plus proches de la fraction p
du chemin à travers les observations (trié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 triées.)
De plus, cette dernière phrase est tout simplement fausse. Il faut lire
Ici, le gamma dépend de la partie fractionnaire de np + m, g = np + m-j
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
doit être considéré comme 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 kème ordre et p (k):
p (k) = (k - alpha)/(n - alpha - beta + 1), où α et β sont des constantes déterminées par le type. De plus, 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 p
d'avant. p(k)
est le position de traçage . Dans l'article, les auteurs l'écrivent sous la forme p
k
, ce qui aide. D'autant plus que dans l'expression de m
, le p
est l'original p
et la 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 par l'algorithme pour le p
k
.
Quant au dernier bit, R indique simplement ce que S utilise.
L'article original donne une liste de 6 "propriétés souhaitables pour un échantillon de fonction quantile", et indique une préférence pour # 8 qui satisfait tous par 1. # 5 satisfait tous, mais ils ne l'aiment pas pour d'autres raisons (c'est plus phénoménologique que dérivé de principes). # 2 est ce que les geeks non-stat comme moi considéreraient les quantiles et c'est ce qui est décrit dans wikipedia.
BTW, en réponse à réponse dreeves , 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 tirer une balle dans le pied avec des paramètres absurdes, et (b) il ne peut pas faire l'algorithme n ° 2 de R. (Voici 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 paramètres.)
Il existe différentes façons de calculer les quantiles lorsque vous lui donnez un vecteur, et vous n'avez pas de CDF connu.
Réfléchissez à la question de savoir quoi faire lorsque vos observations ne tombent pas exactement sur les quantiles.
Les "types" ne font que déterminer comment procéder. Ainsi, les méthodes disent: "utilisez une interpolation linéaire entre la statistique d'ordre k et p (k)".
Alors, quel est 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 ne sont que 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 jamais une constante dans la documentation. Ils ne montrent simplement pas toujours la dépendance explicitement.
Voyez ce qui se passe avec les différents types lorsque vous mettez des vecteurs comme 1: 5 et 1: 6.
(notez également que même si vos observations tombent exactement sur les quantiles, certains types utiliseront toujours une interpolation linéaire).