una tabla prueba matriz interpretacion empresa covarianza correlacion coeficiente r

tabla - prueba de pearson



¿Cuál es una buena estrategia para obtener una visión general decente de las matrices o pares de grandes correlaciones? (5)

¿Qué hay de hacer un PCA en la matriz de correlación? Entonces el ángulo entre variables muestra su correlación.

library(HSAUR) heptathlon round(cor(heptathlon[,-8]),2) # correlations [without score] require(vegan) PCA <- rda(heptathlon[,-8], scale=TRUE) # run a PCA biplot(PCA, display = "species") # correlation biplot # The angles between descriptors in the biplot reflect their correlations

A menudo, algunos data.frame contienen más de 20 variables y desea obtener una primera visión general (de la estructura de correlación). Incluso en una pantalla de 30 ", se queda rápidamente sin espacio y sigue siendo difícil captar el mensaje. ¿Hay alguna estrategia establecida para resaltar lo que es importante? Soy consciente de que esta pregunta es algo general, pero me pregunté una y otra vez y nunca tuve La panacea para curarla. Y sí, oí de summary .


A menudo, la estructura de la columna de una matriz se puede presentar en un orden aleatorio. En ese caso, me gustaría hacer un reordenamiento. Para visualizar y trabajar con matrices dispersas, a menudo hago algún tipo de reordenación, como Reverse Cuthill-McKee o alguna otra forma de reordenación de ancho de banda, y esto podría aplicarse a otros contextos para facilitar la visualización.

Para una matriz de correlación, puede aplastar las correlaciones de baja magnitud (por ejemplo, dentro de (-eps, + eps)) para crear una dispersión, y luego reordenar para examinar la estructura.

Lo que está bien es si puedes encontrar bloques de objetos relacionados. Este reordenamiento más los mapas de calor (usar un gradiente de color para la correlación negativa, otro para la correlación positiva) puede ser muy útil.


Bueno, solo tengo que publicar sobre mi propio paquete aquí :)

Puede usar qgraph para visualizar una matriz de correlación como una red. Esto trazará las variables como nodos y las correlaciones como bordes que conectan los nodos. Los bordes verdes indican correlaciones positivas y los bordes rojos indican correlaciones negativas. Cuanto más anchos y más saturados sean los bordes, más fuerte será la correlación absoluta.

Por ejemplo (este es el primer ejemplo de la página de ayuda), el siguiente código trazará la matriz de correlación de un conjunto de datos de 240 variables.

library("qgraph") data(big5) data(big5groups) qgraph(cor(big5),minimum=0.25,cut=0.4,vsize=2,groups=big5groups,legend=TRUE,borders=FALSE) title("Big 5 correlations",line=-2,cex.main=2)

También puede agrupar nodos fuertemente correlacionados (usa Fruchterman-Reingold), lo que crea una imagen bastante clara de cómo se ve la estructura de su matriz de correlación:

Y mucho más. Para algunos ejemplos más, eche un vistazo a mi sitio:

http://sachaepskamp.com/?page_id=73


Con pairs puedes generar algunas matrices de dispersión rápidamente. Si hay demasiadas variables presentes, podría usar una de las herramientas de Rattle:

Otros ejemplos en: http://rattle.togaware.com/rattle-screenshots.html

De hecho, Rattle no realiza la mayor parte del análisis (como lo señaló dwin correctamente), pero ofrece (imho) herramientas sencillas para ejecutar rápidamente un pca, árbol de correlación, matriz de correlación como la anterior sin tener que manipular su conjunto de datos para asegurarse de que por ejemplo, solo las variables numéricas están presentes en el conjunto de datos, ...


He utilizado heatmap() (o, más bien, la función de image() subyacente image() ) para ese propósito. Ya no tengo el código a la mano y, como recuerdo, tuve que jugar con el mapa de colores para obtener algo que tuviera sentido para el rango [-1, 1].

Aquí hay un ejemplo simple:

R> set.seed(42) R> X <- matrix(rnorm(100*20), nrow=100) R> XC <- cor(X) R> image(XC) # color range could do with improvements here

Juegas más trucos ocultando un triángulo inferior o superior y colocando el texto allí. El paquete PerformanceAnalytics tiene un chart.Correlation() funciones. chart.Correlation() que hace eso (de la matriz de datos sin procesar) pero es mucho más lento y no se escalará a grandes matrices según su pregunta original. Estoy seguro de que hay otros ...