Có một số vấn đề gây khó khăn hoặc không thể trích xuất bất kỳ thông tin có thể sử dụng nào từ ma trận phân tán của bạn.
Bạn có quá nhiều biến được hiển thị cùng nhau. Khi bạn có nhiều biến trong ma trận phân tán, mỗi ô trở nên quá nhỏ không có ích. Điều cần chú ý là nhiều lô được nhân đôi, gây lãng phí không gian. Ngoài ra, mặc dù bạn muốn xem mọi sự kết hợp, bạn không cần phải vẽ tất cả chúng cùng nhau. Lưu ý rằng bạn có thể chia ma trận phân tán thành các khối nhỏ hơn bốn hoặc năm (một số có thể hiển thị hữu ích). Bạn chỉ cần tạo nhiều ô, một ô cho mỗi khối.
Vì bạn có rất nhiều dữ liệu tại các điểm riêng biệt trong không gian , nên cuối cùng chúng xếp chồng lên nhau. Do đó, bạn không thể thấy có bao nhiêu điểm tại mỗi vị trí. Có một số thủ thuật để giúp bạn đối phó với điều này.
- .5
- Với rất nhiều dữ liệu, thậm chí jitter sẽ làm cho các patters khó nhận ra. Bạn có thể sử dụng các màu có độ bão hòa cao, nhưng phần lớn trong suốt để giải thích cho điều này. Khi có nhiều dữ liệu xếp chồng lên nhau, màu sẽ trở nên đậm hơn và ở nơi có mật độ nhỏ, màu sẽ nhạt hơn.
- Để tính minh bạch hoạt động, bạn sẽ cần các biểu tượng rắn để hiển thị dữ liệu của mình, trong khi R sử dụng các vòng tròn rỗng theo mặc định.
Sử dụng các chiến lược này, đây là một số ví dụ mã R và các sơ đồ được thực hiện:
# 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) }
}
}