Expliquer la fonction quantile () dans R

j'ai été mystifié par la fonction R quantile toute la journée.

j'ai une idée intuitive du fonctionnement des quantiles, et un M. S. en statistiques, mais garçon oh boy, la documentation pour elle est déroutante pour moi.

à Partir de la documentation:

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

je suis d'accord. Pour un type je quantile, c'est un interpolation entre x[j] et x [j+1], basée sur une constante mystérieuse gamma

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

alors, comment calculer j? m?

pour le quantile d'échantillon continu types (4 à 9), l'échantillon les quantiles peuvent être obtenus en linéaire interpolation entre le kème ordre statistique 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 avant, 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])]. Il est utilisé par S.

Quelqu'un veut m'aider? En particulier, je suis confus par la notation de p étant une fonction et une constante, ce que le diable m est, et maintenant de calculer j pour quelque particulier p .

j'espère que, sur la base des réponses données ici, nous pourrons présenter une documentation révisée qui expliquera mieux ce qui se passe ici.

quantile.R code source ou type: quantile.par défaut

60
demandé sur sth 2008-09-18 21:59:19

2 réponses

vous êtes confus, c'est compréhensible. Cette documentation est terrible. J'ai dû revenir sur le papier il est basé sur (Hyndman, R. J.; Fan, Y. (novembre 1996). "Sample Quantiles de la Statistique des Paquets". Statisticien Américain 50 (4): 361-365. doi: 10.2307 / 2684934 ) pour obtenir une compréhension. Commençons par le premier problème.

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

la première partie est tirée directement du journal, mais ce que les rédacteurs de la documentation ont omis, c'est ce j = int(pn+m) . Cela signifie Q[i](p) dépend seulement des deux statistiques d'ordre les plus proches d'être p fraction du chemin à travers les observations (triées). (Pour ceux qui, comme moi, qui sont peu familière avec le terme, la "statistique d'ordre" d'une série d'observations est la série triée.)

aussi, cette dernière phrase est fausse. Il devrait se lire

ici gamma dépend de la fraction de np+m, g = NP+m-J

comme pour m c'est simple. m dépend de l'algorithme choisi. Donc comme Q[i] est le quantile fonction, m doit être considéré comme m[i] . Pour les algorithmes 1 et 2, m est de 0, 3, m est -1/2, et pour les autres, c'est dans la partie suivante.

pour les types de quantiles d'échantillon continu (4 à 9), les quantiles d'échantillon peuvent être obtenus par interpolation linéaire entre la statistique d'ordre K et p(k):

p( k) = (k - alpha) / (n - alpha - bêta + 1), Où α Et β sont des constantes déterminé 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 le p d'avant. p(k) est la position de pointage . Dans le papier, les auteurs l'écrivent comme p k , ce qui aide. D'autant plus que dans l'expression pour m , le p est l'original p , et le m = alpha + p * (1 - alpha - beta) . Sur le plan conceptuel, pour les algorithmes 4-9, les points ( p k , x[k] ) sont interpolées pour obtenir la solution ( p , Q[i](p) ). Chaque algorithme diffère seulement dans l'algorithme pour p k .

comme pour le dernier bit, R ne fait qu'énoncer ce que s utilise.

le papier original donne une liste de 6 "propriétés souhaitables pour une fonction de quantile d'échantillon", et indique une préférence pour #8 qui satisfait tous par 1. #5 Les 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 est ce qui est décrit dans wikipedia.

BTW, en réponse à dreeves réponse , Mathematica fait les choses de manière très différente. Je je crois comprendre la carte. Alors que Mathematica est plus facile à comprendre, (a) il est plus facile de se tirer dans le pied avec des paramètres insensés, et (B) il ne peut pas faire l'algorithme de R #2. (Voici la page Quantile de Mathworld , qui indique 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.)

54
répondu AFoglia 2017-05-23 11:54:44

il y a plusieurs façons de calculer les quantiles quand on lui donne un vecteur, et qu'on n'a pas de CDF connu.

réfléchissez à la question de savoir quoi faire lorsque vos observations ne tombent pas exactement sur des quantiles.

Les "types" sont que la détermination de la façon de le faire. Ainsi, les méthodes disent, " utiliser une interpolation linéaire entre la statistique d'ordre k-th et p(k)".

alors, qu'est-ce que p(k)? Un type dit:"j'aime utiliser le k/n". Un autre gars dit, "j'aime utiliser des (k-1)/(n-1)" etc. Chacune de ces méthodes possède des propriétés différentes qui conviennent mieux à un problème ou à un autre.

les \alpha et \beta ne sont que des façons 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 explicite.

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

(notez aussi que même si vos observations tombent exactement sur les quantiles, certains types utiliseront toujours l'interpolation linéaire).

5
répondu Baltimark 2008-09-18 18:49:09