Distância de Mahalanobis via PCA quando

10

Eu tenho uma matriz , onde é o número de genes é o número de pacientes. Qualquer pessoa que trabalhou com esses dados sabe que é sempre maior que . Utilizando a seleção de características, obtive até um número mais razoável, no entanto, ainda é maior que .p n p n p p nn×ppnpnppn

Eu gostaria de calcular a semelhança dos pacientes com base em seus perfis genéticos; Eu poderia usar a distância euclidiana, no entanto Mahalanobis parece mais apropriado, pois explica a correlação entre as variáveis. O problema (como observado neste post ) é que a distância de Mahalanobis, especificamente a matriz de covariância, não funciona quando . Quando corro a distância de Mahalanobis em R, o erro que recebo é:n<p

 Error in solve.default(cov, ...) :    system is computationally
 singular: reciprocal condition number = 2.81408e-21

Até agora, para tentar resolver isso, usei o PCA e, em vez de usar genes, uso componentes e isso me permite calcular a distância de Mahalanobis; 5 componentes representam cerca de 80% da variação, então agora .n>p

Minhas perguntas são: Posso usar o PCA para obter uma distância significativa de Mahalanobis entre os pacientes ou é inapropriado? Existem métricas de distância alternativas que funcionam quando também há muita correlação entre as variáveis?nn<pn

user4673
fonte
Isso PCApode quebrar as correlações das variáveis, a menos que você use algo como uma rotação oblíqua. Também não tenho certeza de como a distribuição da variação PCAafetará a distância de Mahalanobis entre pacientes semelhantes.
317 Michelle
Se o PCA interromper as correlações variáveis, eu poderia usar outra métrica de distância (como a distância de Pearson) em vez da distância de Mahalanobis?
user4673
Eu não sei o suficiente para recomendar mais. Eu estava esperando que alguém entrasse na conversa. :) Dado o modo como as técnicas de redução de variáveis PCAfuncionam, estou curioso para saber se alguma métrica de distância pode ser usada nas saídas.
317 Michelle
Eu não sou um especialista na área. Eu só quero compartilhar que tenho um problema seu e que usei 'cov.shrink' do pacote corpcor .
Bruno Sousa

Respostas:

8

Se você mantiver todos os componentes de um PCA - as distâncias euclidianas entre os pacientes no novo espaço PCA serão iguais às distâncias de Mahalanobis no espaço variável observado. Se você pular alguns componentes, isso mudará um pouco, mas mesmo assim. Aqui, refiro-me aos componentes do PCA de variação unitária, não do tipo cuja variação é igual ao valor próprio (não tenho certeza sobre a implementação do PCA).

Quero apenas dizer que, se você quiser avaliar a distância de Mahalanobis entre os pacientes, poderá aplicar o PCA e avaliar a distância euclidiana. Avaliar a distância de Mahalanobis após a aplicação do PCA parece algo sem sentido para mim.

Dmitry Laptev
fonte
Aqui está um pequeno artigo discutindo a relação: Brereton, RG A distância de Mahalanobis e sua relação com as pontuações dos principais componentes Journal of Chemometrics, Wiley-Blackwell, 2015, 29, 143-145. dx.doi.org/10.1002/cem.2692 . Observe que o PCA em quimiometria é, por padrão, uma rotação pura dos dados, portanto, não a versão de variação de unidade à qual Dmitry se refere.
Cbeleites descontente com SX 19/08/16
2

Dê uma olhada no seguinte artigo:

Zuber, V., Silva, APD e Strimmer, K. (2012). Um novo algoritmo para seleção simultânea de SNP em estudos de associação de alta dimensão em todo o genoma . BMC bioinformtics , 13 (1), 284.

Ele lida exatamente com o seu problema. Os autores supõem o uso de novas medidas de importância variável, além de terem introduzido anteriormente um método de estimação penalizada para a matriz de correlação de variáveis ​​explicativas que se encaixa no seu problema. Eles também usam a distância de Mahalanobis para decorrelação!

Os métodos estão incluídos no pacote 'care', disponível no CRAN

Claas
fonte
0

As pontuações de PCA (ou resultados de PCA) são usadas na literatura para calcular a distância de Mahalanobis entre a amostra e uma distribuição de amostras. Para um exemplo, consulte este artigo . Na seção "Métodos de análise", os autores declaram:

Os conjuntos de dados dos espectros de fluorescência (681) são reduzidos para uma dimensão mais baixa (11) avaliando os principais componentes (PCs) da matriz de correlação (681 × 681). As pontuações dos PCs são estimadas projetando os dados originais nos PCs. A classificação entre os conjuntos de dados foi feita usando o modelo de distância de Mahalanobis, calculando as distâncias de Mahalanobis para as pontuações do PC.

Vi outros exemplos de análises discriminantes baseadas na distância de PCA / Mahalanobis na literatura e no menu de ajuda do software de quimiometria GRAMS IQ. Essa combinação faz sentido, pois a distância de Mahalanobis não funciona bem quando o número de variáveis ​​é maior que o número de amostras disponíveis e o PCA reduz o número de variáveis.

Os algoritmos de aprendizado de máquina de classificação de uma classe (floresta de isolamento, One-ClassSVM, etc.) são possíveis alternativas à análise discriminante baseada na distância PCA / Mahalanobis. Em nosso laboratório, a Isolation Forest, combinada com o pré-processamento de dados, produziu bons resultados na classificação dos espectros de infravermelho próximo.

Em uma nota um pouco relacionada, a detecção de outlier ou novidade com distância de PCA / Mahalanobis, para dados dimensionais elevados, geralmente requer o cálculo do ponto de corte de distância de Mahalanobis . Este artigo sugere que o ponto de corte pode ser calculado como a raiz quadrada do valor crítico da distribuição qui-quadrado , assumindo que os dados sejam normalmente distribuídos. Esse valor crítico requer o número de graus de liberdade e o valor da probabilidade associado aos dados. O artigo parece sugerir que o número de componentes principais retidos é igual ao número de graus de liberdade necessário para calcular o valor crítico, porque os autores usaram o número de recursos no conjunto de dados para o cálculo.

Cherif Diallo
fonte
Bem vindo ao nosso site. Como não está explícito na sua resposta, você poderia explicar como ele aborda a circunstância colocada na pergunta? n<p
whuber
Quando n <p, o PCA é usado para reduzir p. O número de componentes retidos na análise PCA (nc) geralmente é muito menor que p, e também pode ser menor que n, dependendo do tamanho de n. Portanto, o PCA altera o problema "n por p" para um problema "n por nc". Em nosso laboratório, onde analisamos os espectros NIR, p representa o número de comprimentos de onda, que geralmente é maior que dois milhares. n representa o número de amostras de treinamento (~ 20 a 150). nc é tipicamente de 3 a 11. Quando n> nc, a análise PCA / Mahalanobis produz bons resultados.
Cherif Diallo
11
A questão não é o que o PCA faz. Isso está bem abordado em outros tópicos deste site. O problema é que a distância de mahalanobis normalmente não pode ser calculada neste caso devido à singularidade da matriz de covariância: esta é a circunstância descrita na pergunta.
whuber
Obrigado por seus comentários gentis. Parece que temos interpretações diferentes do que o usuário está perguntando. A resposta aceita declara: "se você deseja avaliar a distância de Mahalanobis entre os pacientes, pode aplicar o PCA e avaliar a distância euclidiana. Avaliar a distância de Mahalanobis após a aplicação do PCA parece algo sem sentido ...". Acho que a última frase está em desacordo com a literatura que vi e citei. O que você acha? Cumprimentos.
Cherif Diallo
11
Entendi. Obrigado :)!
Cherif Diallo