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 QuantileTransformer
code , 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:
- calculer les rangs empiriques, en utilisant
numpy.percentile
- modifier le classement par interpolation, en utilisant
numpy.interp
- 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.