Transformation quantile avec distribution gaussienne - Implémentation de Sklearn


8

Cela peut être une vague question, mais je me demande comment la transformation quantile de Scikit-Learn est mise en œuvre?

Je me demande comment un ensemble de données asymétrique peut être transformé en une distribution normale comme celle-ci ?

Scikit-learn fournit généralement un lien vers le wiki, mais pas cette transformation.

Quelqu'un peut-il m'orienter dans la bonne direction?

Merci

Réponses:


12

Oui, il semble être décrit à différents endroits, sans lien avec aucun article.

La documentation de classe résume l'algorithme comme suit:

La transformation est appliquée sur chaque entité indépendamment. La fonction de densité cumulée d'une entité est utilisée pour projeter les valeurs d'origine. Les valeurs des caractéristiques des données nouvelles / non vues qui tombent en dessous ou au-dessus de la plage ajustée seront mappées aux limites de la distribution de sortie. Notez que cette transformation est non linéaire. Il peut fausser les corrélations linéaires entre les variables mesurées à la même échelle mais rend les variables mesurées à différentes échelles plus directement comparables.

Et le guide de l' utilisateur ajoute de nouvelles informations:

Cependant, en effectuant une transformation de rang, il lisse les distributions inhabituelles et est moins influencé par les valeurs aberrantes que les méthodes de mise à l'échelle. Il déforme cependant les corrélations et les distances à l'intérieur et entre les entités.

Plus précisément, pour une transformation normale:

Ainsi, la médiane de l'entrée devient la moyenne de la sortie, centrée sur 0. La sortie normale est tronquée de sorte que le minimum et le maximum de l'entrée - correspondant respectivement aux quantiles 1e-7 et 1 - 1e-7 - ne deviennent pas infinis sous la transformation.

La demande d'extraction GitHub pour cet estimateur fait référence à un ancien qui montre qu'il allait à l'origine être nommé "échelonneur de classement".

De manière plus générale, cet article résume bien les différentes manières de mettre en œuvre de telles «transformations normales inverses (INT)»:

Les INT sont des moyens de transformer la distribution d'échantillon d'une variable continue pour la faire apparaître plus normalement distribuée. Il existe plusieurs types d'INT. La première distinction que nous faisons est entre les INT basés sur le rang et non basés sur le rang. Les INT non basés sur le classement impliquent de supposer une fonction de distribution cumulative (CDF) particulière pour les données observées, d'estimer les paramètres de cette distribution, de convertir les scores observés en quantiles estimés à partir du CDF, puis de convertir ces quantiles en écarts normaux standard en utilisant l'inverse normal (ou fonction probit). Ces INT non basés sur le classement sont généralement appelés copules (Basrak et al. 2004; Li et al. 2006) et ne seront pas examinés plus avant. Il convient toutefois de noter que les INT basés sur le rang peuvent être exprimés comme un cas particulier de la méthode de la copule dans laquelle le CDF empirique est utilisé au lieu de restreindre le CDF à une famille de distributions. Autrement dit, chaque instant est en fait estimé à partir des données et les quantiles deviennent de simples fonctions des rangs.

Les INT basés sur les rangs impliquent une étape préliminaire de conversion d'une variable en rangs et peuvent être subdivisés en deux classes: ceux qui impliquent un élément stochastique et ceux qui sont déterministes. Nous ne connaissons qu'un seul INT qui implique un élément stochastique et cette approche a été désignée comme l'utilisation de «déviations normales aléatoires» (Conover 1980). Un élément dissuasif à cette approche est que chaque chercheur appliquant la même méthode au même ensemble de données obtiendra une réponse légèrement différente, ce qui pourrait être insatisfaisant pour certains. Cette approche a l'avantage théorique d'éviter la granularité dans la distribution des valeurs de P, un problème qui affecte souvent de nombreux tests non paramétriques. Néanmoins, la nature stochastique de ces INT semble décourager les chercheurs et ils sont rarement, voire jamais, utilisés.

Les INT déterministes basés sur le classement peuvent être classés en ceux qui utilisent les scores normaux attendus (Fisher et Yates 1938) par rapport à ceux qui utilisent la transformation inverse du quantile d'échantillon (ou classement fractionnaire) pour approximer les scores normaux attendus. En utilisant l'intégration numérique, Harter (1961) a fourni le tableau le plus complet des scores normaux attendus. Les INT qui impliquent une rétrotransformation des rangs fractionnaires pour se rapprocher des scores normaux attendus de Fisher et Yates (Maritz 1982) semblent être les plus couramment utilisés dans la recherche génétique et seront le principal centre d'attention. Dans les rangs de rétrotransformation, un décalage fractionnaire est nécessaire pour éviter que les observations minimale et maximale soient transformées respectivement en infini négatif et positif.

En regardant le QuantileTransformercode , il ressemble au tout dernier élément de la liste: un INT basé sur le rang déterministe qui calcule une variable de rang modifiée.

Cependant, c'est une implémentation relativement simple:

  1. calculer les rangs empiriques, en utilisant numpy.percentile
  2. modifier le classement par interpolation, en utilisant numpy.interp
  3. mapper à une distribution normale en inversant le CDF, en utilisant scipy.stats.norm.ppf

en prenant soin de respecter les limites aux extrémités.

Représentant comme une cartographie très simplifiée, c'est-à-dire en ignorant l'interpolation et la logique de délimitation, ce serait justeyje=Φ-1(F(Xje)), où F et Φ représentent respectivement les CDF d'une distribution normale empirique et standard.


Quelle excellente réponse approfondie. Cela m'a été très utile. Merci d'avoir inclus la cartographie simplifiée à la fin pour une conceptualisation plus facile.
Lone Wolf

1

si a est qth qutantile, q dans [0, 1]. Ensuite, après le mappage, la valeur correspondant à a est norm.ppf (q). ppf est l'inverse de cdf.


Cette approche n'est pas bien fondée en théorie statistique. Premièrement, nous nous soucions des distributions conditionnelles, pas des distributions marginales. Deuxièmement, nous ne nous soucions pas beaucoup des distributions de prédicteurs, seulement de la distribution conditionnelle de Y étant donné X. Troisièmement, il existe des approches de régression robuste telles que les modèles semi-paramétriques qui n'ont pas besoin de spécifier la transformation de Y pour spécifier.
Frank Harrell
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.