superponer - Manejo de valores faltantes para el cálculo de correlaciones.
superponer graficas en r (3)
Tengo una matriz enorme con muchos valores perdidos. Quiero conseguir la correlación entre variables.
1. es la solucion
cor(na.omit(matrix))
mejor que abajo?
cor(matrix, use = "pairwise.complete.obs")
Ya he seleccionado solo las variables que tienen más del 20% de los valores perdidos.
2. ¿Cuál es el mejor método para tener sentido?
Creo que la segunda opción tiene más sentido,
Podría considerar usar la función rcorr en el paquete Hmisc.
Es muy rápido, y solo incluye observaciones completas por pares. El objeto devuelto contiene una matriz.
- de puntuaciones de correlación
- con el número de observaciones utilizadas para cada valor de correlación
- de un valor de p para cada correlación
Esto significa que puede ignorar los valores de correlación basados en un pequeño número de observaciones (cualquiera que sea el umbral para usted) o en base al valor de p.
library(Hmisc)
x<-matrix(nrow=10,ncol=10,data=runif(100))
x[x>0.5]<-NA
result<-rcorr(x)
result$r[result$n<5]<-0 # ignore less than five observations
result$r
Para los lectores futuros , la correlación completa de Pairwise considerada peligrosa puede ser valiosa, argumentando que cor(matrix, use = "pairwise.complete.obs")
se considera peligrosa y sugerir alternativas como use = "complete.obs")
.
Votaría por la segunda opción. Parece que tiene una buena cantidad de datos faltantes y, por lo tanto, estaría buscando una estrategia de imputación múltiple adecuada para completar los espacios. Consulte el texto de Harrell "Regression Modeling Strategies" para obtener una gran cantidad de orientación sobre cómo hacerlo correctamente.