/ / Cómo hacer una PCA con valores 0 (cero) - r, pca

Cómo hacer una PCA con valores 0 (cero) - r, pca

Quiero hacer un PCA en R con valores de lluvia mensuales. Como no llueve durante el invierno, algunos valores en mis columnas son 0.

Cuando ejecuto la PCA, aparece el siguiente mensaje en la consola: Error en cov.wt (z): "x" solo debe contener valores finitos

Creo que lo que R me está diciendo aquí es que no le gustan mis 0 valores.

Entonces, intenté cambiar mis valores de 0 a "números reales" multiplicando todo por 1.0000000001. Pero incluso si hago eso y ejecuto R nuevamente con los nuevos valores, aparece el mismo mensaje.

Leí que tendría que deshacerme de lafilas con cualquier valor faltante en ellas (que puedo "t") o usar un código PCA que pueda tratar con valores faltantes imputándolos de alguna manera. Pero mis 0 "son valores reales, no valores faltantes.

Encuentro mucha información en la web sobre cómolidiar con valores perdidos o valores de NA pero nada sobre cómo lidiar con valores cero. ¿Alguien tiene alguna sugerencia de cómo puedo hacer esto? ¡Muchas gracias por su ayuda!

Respuestas

0 para la respuesta № 1

Mi conjetura es que "Error en cov.wt (z): "x" solo debe contener valores finitos "se queja de que algunas covarianzas no son finitas, es decir, NA / NaN. Esto puede suceder si tiene variables que tienen una desviación estándar de 0.

Código de ejemplo:

latent = rnorm(10)
data = data.frame(rep(0,10), #10 0"s
latent+rnorm(10),  #latent and noise
latent+rnorm(10),     #
latent+1.5*rnorm(10)) #
colnames(data) = c("zeros","var1","var2","var3")

library(psych)
principal(data)     #error!
principal(data[-1]) #no errors