Eu estou usando um script. É para registros principais. Eu tenho um quadro de dados que mostra as diferentes composições elementares nas colunas em uma determinada profundidade (na primeira coluna). Quero executar um PCA com ele e estou confuso sobre o método de padronização que tenho que escolher.
Alguém de vocês usou o clr()
para preparar seus dados para o prcomp()
? Ou adulteram minhas soluções. Eu tentei usar os clr()
dados antes de usar a prcomp()
função, além de usar a escala de atributo em prcomp()
.
data_f_clr<- clr(data_f)
data_pca <- prcomp(data_f, center = TRUE, scale. = TRUE)
https://stat.ethz.ch/R-manual/R-devel/library/stats/html/prcomp.html
é descrita para dimensionar os dados, para que eles tenham variação de unidade. Como meus dados têm uma escala muito diferente do que eu queria, eu acho. O problema é que eu recebo uma solução diferente quando uso o código acima ou quando pulo o clr()
(que faz o resultado mais desejado). Mas quero saber por que isso é clr()
perturbador nesse caso?
fonte
clr
faz ....Respostas:
Sim, você pode, e de fato deveria, quando seus dados são composicionais.
Uma revisão do campo da microbiologia pode ser encontrada aqui, o que motiva o uso da transformação CLR seguida pela PCA para analisar conjuntos de dados de microbiomas (que são por composição composicional): https://www.frontiersin.org/articles/10.3389/fmicb .2017.02224 / full .
fonte
Você pode ter alguns problemas com o baunilha PCA nas coordenadas CLR. Existem dois grandes problemas com dados de composição:
Várias transformações composicionais abordam um ou ambos esses problemas. Em particular, o CLR transforma seus dados registrando a razão entre as frequências observadasx e sua média geométrica G(x) , ou seja,
Agora, considere isso
Em outras palavras, o CLR remove a restrição do intervalo de valores (o que é bom para algumas aplicações), mas não remove a restrição de soma, resultando em uma matriz de covariância singular, que efetivamente quebra (M) ANOVA / regressão linear / ... e faz PCA sensível a valores discrepantes (porque a estimativa robusta de covariância requer uma matriz de classificação completa). Até onde eu sei, em todas as transformações composicionais, apenas o ILR aborda os dois problemas sem nenhuma suposição subjacente importante. A situação é um pouco mais complicada, no entanto. O SVD das coordenadas CLR fornece uma base ortogonal no espaço ILR (as coordenadas ILR abrangem um hiperplano no CLR); portanto, suas estimativas de variância não diferem entre ILR e CLR (isso é obviamente óbvio, porque ILR e CLR são isometrias no simplex). No entanto, existem métodos para estimativa robusta de covariância nas coordenadas de ILR [2].
Atualização I
Apenas para ilustrar que o CLR não é válido para métodos dependentes de correlação e localização. Vamos supor que amostramos uma comunidade de três componentes normalmente distribuídos linearmente independentes 100 vezes. Por uma questão de simplicidade, permita que todos os componentes tenham expectativas iguais (100) e variações (100):
Atualização II
Considerando as respostas que recebi, acho necessário salientar que em nenhum momento da minha resposta eu disse que o PCA não funciona em dados transformados em CLR. Afirmei que o CLR pode quebrar o PCA de maneiras sutis , o que pode não ser importante para a redução da dimensionalidade, mas é importante para a análise exploratória de dados. O artigo citado por @Archie cobre a ecologia microbiana. Nesse campo da biologia computacional, PCA ou PCoA em várias matrizes de distância são usados para explorar fontes de variação nos dados. Minha resposta deve ser considerada apenas neste contexto. Além disso, isso é destacado no próprio artigo:
Gloor et al., 2017
Atualização III
Referências adicionais à pesquisa publicada (agradeço a @Nick Cox pela recomendação de adicionar mais referências):
fonte