Hay una serie de problemas que hacen que sea difícil o imposible extraer información utilizable de su matriz de diagrama de dispersión.
Tiene demasiadas variables que se muestran juntas. Cuando tiene muchas variables en una matriz de diagrama de dispersión, cada diagrama se vuelve demasiado pequeño para ser útil. Lo que hay que notar es que muchas parcelas están duplicadas, lo que desperdicia espacio. Además, aunque desea ver cada combinación, no tiene que trazarlas todas juntas. Tenga en cuenta que puede dividir una matriz de diagrama de dispersión en bloques más pequeños de cuatro o cinco (un número que es útil para visualizar). Solo necesita hacer varias parcelas, una para cada bloque.
Dado que tiene una gran cantidad de datos en puntos discretos en el espacio , terminan apilándose uno encima del otro. Por lo tanto, no puede ver cuántos puntos hay en cada ubicación. Hay varios trucos para ayudarte a lidiar con esto.
- .5
- Con tanta información, incluso las fluctuaciones harán que los patrones sean difíciles de discernir. Puede usar colores altamente saturados, pero en gran medida transparentes para dar cuenta de esto. Donde hay muchos datos apilados uno encima del otro, el color se volverá más oscuro y donde hay poca densidad, el color será más claro.
- Para que la transparencia funcione, necesitará símbolos sólidos para mostrar sus datos, mientras que R usa círculos huecos por defecto.
Usando estas estrategias, aquí hay un ejemplo de código R y las parcelas realizadas:
# the alpha argument in rgb() lets you set the transparency
cols2 = c(rgb(red=255, green=0, blue=0, alpha=50, maxColorValue=255),
rgb(red=0, green=0, blue=255, alpha=50, maxColorValue=255) )
cols2 = ifelse(breast$class==2, cols2[1], cols2[2])
# here we jitter the data
set.seed(6141) # this makes the example exactly reproducible
jbreast = apply(breast[,1:9], 2, FUN=function(x){ jitter(x, amount=.5) })
jbreast = cbind(jbreast, class=breast[,10]) # the class variable is not jittered
windows() # the 1st 5 variables, using pch=16
pairs(jbreast[,1:5], col=cols2, pch=16)
windows() # the 2nd 5 variables
pairs(jbreast[,6:10], col=cols2, pch=16)
windows() # to match up the 1st & 2nd sets requires more coding
layout(matrix(1:25, nrow=5, byrow=T))
par(mar=c(.5,.5,.5,.5), oma=c(2,2,2,2))
for(i in 1:5){
for(j in 6:10){
plot(jbreast[,j], jbreast[,i], col=cols2, pch=16,
axes=F, main="", xlab="", ylab="")
box()
if(j==6 ){ mtext(colnames(jbreast)[i], side=2, cex=.7, line=1) }
if(i==5 ){ mtext(colnames(jbreast)[j], side=1, cex=.7, line=1) }
if(j==10){ axis(side=4, seq(2,10,2), cex.axis=.8) }
if(i==1 ){ axis(side=3, seq(2,10,2), cex.axis=.8) }
}
}