varias una spearman parcial matriz leyendas hacer graficos grafico graficas correlacion como r matrix visualization correlation

una - matriz de correlacion en r



¿Cómo puedo crear una matriz de correlación en R? (5)

Tengo 92 juegos de datos del mismo tipo.

Quiero hacer una matriz de correlación para cualquier combinación posible.

es decir, quiero una matriz de 92 x92.

tal que el elemento (ci, cj) debe ser una correlación entre ci y cj.

¿Cómo puedo hacer eso?


Eche un vistazo a qtlcharts . Le permite crear matrices de correlación interactivas :

library(qtlcharts) data(iris) iris$Species <- NULL iplotCorr(iris, reorder=TRUE)

Es más impresionante cuando correlaciona más variables, como en la viñeta del paquete:


Hay otras maneras de lograr esto aquí: ( trazar la matriz de correlación en un gráfico ), pero me gusta su versión con las correlaciones en los cuadros. ¿Hay alguna forma de agregar los nombres de las variables a la columna xey en lugar de solo esos números de índice? Para mí, eso haría de esto una solución perfecta. ¡Gracias!

editar: Estaba tratando de comentar sobre la publicación de [Marc en la caja], pero claramente no sé lo que estoy haciendo. Sin embargo, logré responder esta pregunta por mí mismo.

si d es la matriz (o el marco de datos original) y los nombres de las columnas son los que usted quiere, entonces funciona lo siguiente:

axis(1, 1:dim(d)[2], colnames(d), las=2) axis(2, 1:dim(d)[2], colnames(d), las=2)

las = 0 voltearía los nombres a su posición normal, los míos eran largos, así que usé las = 2 para hacerlos perpendiculares al eje.

edit2: para suprimir la función image () imprimiendo números en la grilla (de lo contrario, se superponen las etiquetas de las variables), agregue xaxt = ''n'', por ejemplo:

image(x=seq(dim(x)[2]), y=seq(dim(y)[2]), z=COR, col=rev(heat.colors(20)), xlab="x column", ylab="y column", xaxt=''n'')


La función cor usará las columnas de la matriz en el cálculo de la correlación. Por lo tanto, el número de filas debe ser el mismo entre su matriz xy la matriz y . Ex.:

set.seed(1) x <- matrix(rnorm(20), nrow=5, ncol=4) y <- matrix(rnorm(15), nrow=5, ncol=3) COR <- cor(x,y) COR image(x=seq(dim(x)[2]), y=seq(dim(y)[2]), z=COR, xlab="x column", ylab="y column") text(expand.grid(x=seq(dim(x)[2]), y=seq(dim(y)[2])), labels=round(c(COR),2))

Editar:

Aquí hay un ejemplo de etiquetas de fila y columna personalizadas en una matriz de correlación calculada con una matriz única:

png("corplot.png", width=5, height=5, units="in", res=200) op <- par(mar=c(6,6,1,1), ps=10) COR <- cor(iris[,1:4]) image(x=seq(nrow(COR)), y=seq(ncol(COR)), z=cor(iris[,1:4]), axes=F, xlab="", ylab="") text(expand.grid(x=seq(dim(COR)[1]), y=seq(dim(COR)[2])), labels=round(c(COR),2)) box() axis(1, at=seq(nrow(COR)), labels = rownames(COR), las=2) axis(2, at=seq(ncol(COR)), labels = colnames(COR), las=1) par(op) dev.off()



Un ejemplo,

d &lt- data.frame(x1=rnorm(10), x2=rnorm(10), x3=rnorm(10)) cor(d) # get correlations (returns matrix)