Transformação Quantil com Distribuição Gaussiana - Implementação Sklearn


8

Essa pode ser uma pergunta vaga, mas estou me perguntando como a transformação quantílica do Scikit-Learn é implementada.

Gostaria de saber como um conjunto de dados inclinado pode ser transformado em uma distribuição normal como esta ?

Normalmente, o scikit-learn fornece um link para o wiki, mas não essa transformação.

Alguém pode me indicar a direção certa?

obrigado

Respostas:


12

Sim, parece estar descrito em alguns lugares diferentes, sem link para nenhum artigo.

A documentação da classe resume o algoritmo da seguinte maneira:

A transformação é aplicada em cada recurso de forma independente. A função de densidade cumulativa de um recurso é usada para projetar os valores originais. Os valores dos recursos de dados novos / não vistos que caem abaixo ou acima do intervalo ajustado serão mapeados para os limites da distribuição de saída. Observe que essa transformação é não linear. Pode distorcer correlações lineares entre variáveis ​​medidas na mesma escala, mas torna as variáveis ​​medidas em escalas diferentes mais diretamente comparáveis.

E o guia do usuário adiciona novas informações:

No entanto, ao realizar uma transformação de classificação, suaviza distribuições incomuns e é menos influenciado por discrepantes do que pelos métodos de dimensionamento. No entanto, distorce correlações e distâncias dentro e entre recursos.

Especificamente, para uma transformação Normal:

Assim, a mediana da entrada se torna a média da saída, centralizada em 0. A saída normal é cortada para que o mínimo e o máximo da entrada - correspondentes aos quantis 1e-7 e 1 - 1e-7 respectivamente - não se tornem infinitos sob a transformação.

A solicitação de extração do GitHub para esse estimador faz referência a uma mais antiga que mostra que originalmente seria nomeada como "escalador de classificação".

Em termos mais amplos, este artigo fornece um bom resumo das várias maneiras pelas quais essas "transformações normais inversas (INTs)" podem ser implementadas:

INTs são maneiras de transformar a distribuição de amostra de uma variável contínua para fazê-la parecer mais distribuída normalmente. Existem vários tipos de INTs. A primeira distinção que fazemos é entre INTs baseadas em classificação e não baseadas em classificação. INTs não baseados em rankings implicam assumir uma função de distribuição cumulativa específica (CDF) para os dados observados, estimando os parâmetros dessa distribuição, convertendo as pontuações observadas em quantis estimados a partir do CDF e depois convertendo esses quantis em desvios normais padrão usando o inverso normal (ou função probit). Tais INTs não baseadas em classificação são geralmente referidas como cópulas (Basrak et al. 2004; Li et al. 2006) e não serão mais consideradas. Vale ressaltar, no entanto, que os INTs baseados em classificação podem ser expressos como um caso especial do método de cópula no qual o CDF empírico é usado em vez de restringir o CDF a alguma família de distribuições. Ou seja, todo momento é estimado a partir dos dados e os quantis se tornam funções simples das fileiras.

INTs baseadas em rankings envolvem uma etapa preliminar de conversão de uma variável em classificações e podem ser subdivididas em duas classes: aquelas que envolvem um elemento estocástico e aquelas que são determinísticas. Estamos cientes de apenas um INT que envolve um elemento estocástico e essa abordagem tem sido referida como o uso de "desvios normais aleatórios" (Conover, 1980). Um impedimento para essa abordagem é que cada investigador que aplica o mesmo método no mesmo conjunto de dados obterá uma resposta ligeiramente diferente, o que pode ser insatisfatório para alguns. Essa abordagem tem a vantagem teórica de evitar a granularidade na distribuição dos valores de P, uma questão que frequentemente afeta muitos testes não paramétricos. No entanto, a natureza estocástica dessas INTs parece desencorajar os pesquisadores e raramente são, se é que alguma vez são usadas.

INTs determinísticos baseados em rankings podem ser classificados naqueles que usam escores normais esperados (Fisher e Yates 1938) versus aqueles que usam a transformação reversa do quantil da amostra (ou rank fracionário) para aproximar os escores normais esperados. Usando a integração numérica, Harter (1961) forneceu a tabela mais completa das pontuações normais esperadas. INTs que envolvem a transformação reversa de fileiras fracionárias para aproximar os escores normais esperados de Fisher e Yates (Maritz 1982) parecem ser os mais comumente usados ​​na pesquisa genética e serão o foco principal da atenção. Nas fileiras de transformação reversa, é necessário um deslocamento fracionário para evitar que as observações mínima e máxima sejam transformadas em infinito negativo e positivo, respectivamente.

Observando o QuantileTransformercódigo , ele se parece com o último item da lista: um INT determinístico baseado em classificação que calcula uma variável de classificação modificada.

No entanto, é uma implementação relativamente simples:

  1. calcular classificações empíricas, usando numpy.percentile
  2. modificar a classificação por interpolação, usando numpy.interp
  3. mapear para uma distribuição Normal invertendo o CDF, usando scipy.stats.norm.ppf

tomando cuidado para lidar com limites nas extremidades.

Representando como um mapeamento muito simplificado, isto é, ignorando a interpolação e a lógica delimitadora, seria apenas , onde e representam os CDFs de uma distribuição normal empírica e padrão , respectivamente.yEu=Φ-1(F(xEu))FΦ


Que resposta excelente e completa. Isso foi muito útil para mim. Obrigado por incluir o mapeamento simplificado no final para facilitar a conceituação.
Lone Wolf

1

se a é q quinto ponto, q em [0, 1]. Depois do mapeamento, o valor correspondente a é norm.ppf (q). ppf é o inverso do cdf.


Essa abordagem não é bem fundamentada na teoria estatística. Primeiro, nos preocupamos com distribuições condicionais, não distribuições marginais. Segundo, não nos importamos muito com distribuições de preditores, apenas com a distribuição condicional de Y, dado X. Terceiro, existem abordagens baseadas em princípios para regressão robusta, como modelos semiparamétricos que não precisam que a transformação de Y seja especificada.
Frank Harrell
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.