Estoy usando un script Es para registros centrales. Tengo un marco de datos que muestra las diferentes composiciones elementales en las columnas en una profundidad determinada (en la primera columna). Quiero realizar un PCA con él y estoy confundido sobre el método de estandarización que tengo que elegir.
¿Alguno de ustedes ha usado el clr()
para preparar sus datos para el prcomp()
? ¿O adultera mis soluciones? Intenté usar los clr()
datos antes de usar la prcomp()
función además de usar la escala de atributos en 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
scale se describe para escalar los datos, por lo que tienen una varianza unitaria. Dado que mis datos tienen una escala muy diferente que es lo que quería, creo. El problema es que recibo una solución diferente, cuando uso el código anterior o cuando omito el clr()
(lo que produce el resultado más deseado). Pero quiero saber por qué es clr()
inquietante en ese caso.
fuente
clr
hace ...Respuestas:
Sí, puede, y de hecho debería, cuando sus datos son de composición.
Aquí se puede encontrar una revisión del campo de la microbiología, que motiva a utilizar la transformación CLR seguida de PCA para analizar conjuntos de datos de microbioma (que son por definición composicionales): https://www.frontiersin.org/articles/10.3389/fmicb .2017.02224 / completo .
fuente
Puede experimentar algunos problemas con PCA de vainilla en las coordenadas CLR. Hay dos problemas principales con los datos de composición:
Diversas transformaciones compositivas abordan uno o ambos de estos problemas. En particular, CLR transforma sus datos tomando el registro de la relación entre las frecuencias observadasx su media geométrica G(x) , es decir
Ahora, considera eso
En otras palabras, CLR elimina la restricción del rango de valores (que es buena para algunas aplicaciones), pero no elimina la restricción de suma, lo que resulta en una matriz de covarianza singular, que efectivamente rompe (M) ANOVA / regresión lineal / ... y hace PCA sensible a los valores atípicos (porque la estimación de covarianza robusta requiere una matriz de rango completo). Hasta donde sé, de todas las transformaciones compositivas, solo ILR aborda ambos problemas sin ningún supuesto subyacente importante. Sin embargo, la situación es un poco más complicada. Las coordenadas SVD de CLR le brindan una base ortogonal en el espacio ILR (las coordenadas ILR abarcan un hiperplano en CLR), por lo que sus estimaciones de varianza no diferirán entre ILR y CLR (eso es obviamente obvio, porque ILR y CLR son isometrías en el simplex). Sin embargo, existen métodos para la estimación robusta de covarianza en las coordenadas ILR [2].
Actualización I
Solo para ilustrar que CLR no es válido para la correlación y los métodos dependientes de la ubicación. Supongamos que muestreamos una comunidad de tres componentes linealmente independientes distribuidos normalmente 100 veces. En aras de la simplicidad, deje que todos los componentes tengan las mismas expectativas (100) y variaciones (100):
Actualización II
Teniendo en cuenta las respuestas que recibí, considero necesario señalar que en ningún momento de mi respuesta he dicho que PCA no funciona en datos transformados por CLR. He declarado que CLR puede romper PCA de maneras sutiles , lo que podría no ser importante para la reducción de la dimensionalidad, pero es importante para el análisis exploratorio de datos. El artículo citado por @Archie cubre la ecología microbiana. En ese campo de la biología computacional, PCA o PCoA en varias matrices de distancia se utilizan para explorar fuentes de variación en los datos. Mi respuesta solo debe considerarse en este contexto. Además, esto se destaca en el propio documento:
Gloor et al., 2017
Actualización III
Referencias adicionales a investigaciones publicadas (agradezco a @Nick Cox por la recomendación de agregar más referencias):
fuente