큰 N, 이산 데이터 및 많은 변수가있을 때 산점도 행렬에서 정보를 추출하는 방법은 무엇입니까?


10

나는 유방암 데이터 세트를 가지고 놀고 있으며 모든 속성의 산점도를 만들어 어떤 클래스가 malignant(파란색)의 클래스 (파란색) 를 예측하는 데 가장 큰 영향을 미치는지 알 수 있습니다 benign.

행이 x 축을 나타내고 열이 y 축을 나타내는 것을 이해하지만이 산점도의 데이터 또는 속성에 대해 어떤 관찰을 할 수 있는지 알 수 없습니다.

이 산점도의 데이터를 해석하거나 관찰하는 데 도움이 필요하거나 다른 시각화를 사용하여이 데이터를 시각화해야하는 경우 도움이 필요합니다.

여기에 이미지 설명을 입력하십시오

내가 사용한 R 코드

link   <- "http://www.cs.iastate.edu/~cs573x/labs/lab1/breast-cancer-wisconsin.arff"
breast <- read.arff(link)
cols   <- character(nrow(breast))
cols[] <- "black"
cols[breast$class == 2] <- "red"
cols[breast$class == 4] <- "blue"
pairs(breast, col=cols)

당신이 옳습니다 : 이것에서 많은 것을보기가 어렵습니다. 모든 변수가 상대적으로 적은 수의 범주로 이산 된 것처럼 보이므로 각각의 뚜렷한 가시적 기호를 형성하기 위해 쌓여있는 기호 수를 결정하는 것은 불가능합니다. 그것은 무엇이든 평가할 때이 특별한 이미지를 거의 가치가 없게 만듭니다.
whuber

1
그것은 내가 생각했던 것입니다. 상자 막대 그래프를 플로팅하려고 시도했지만 클래스에 가장 영향을 미치는 속성을 보는 데 유용하지 않습니다 ...? 의미있는 정보를 제공 할 시각화 유형에 대한 도움말을 찾으십시오.
birdy

2
2 개의 컬러 스캐 터는 포인트 더미를 지터 (노이즈 추가) 할 경우 적합합니다.
ttnphns

@ttnphns 난 당신이 "포인트 더미 지터"의 의미를 이해하지 못합니다
Birdy

1
지터 란 하나의 데이터 포인트가 다른 데이터 포인트의 뷰를 가리지 않도록하기 위해 겹쳐진 포인트가 서로 옆에 배치되도록 플롯을 편집하는 것을 의미합니다. R 플로팅 함수에서 자주 사용됩니다.
OFish

답변:


3

이것이 도움이되는지 확실하지 않지만 기본 EDA의 경우 tabplot패키지가 정말 좋습니다. 데이터 내에 어떤 가능한 상관 관계가 있는지 잘 알 수 있습니다.

install.packages("tabplot")
tableplot(breast) # gives you the unsorted image below
tableplot(breast, sortCol="class") # gives you a sorted image according to class

정렬되지 않은 줄거리 순서도


이 도표를 어떻게 해석할까요? 두 번째 탭 그림에서 열 2, 3, 4 및 7이 서로 매우 유사한 것처럼 보이는가?
birdy

이것은 어떤 종류의 주장이나 숙제를위한 것입니까? 그렇다면 어설 션 지원에 대한 규칙 등은 메타를 참조하십시오. 내 간단한 대답 : a) 나는 데이터 세트 설명을 연구하지 않았기 때문에 열에서 모든 다른 값이 무엇을 의미하는지 전혀 알지 못합니다. 각 열 / 변수의 높은 값과 관련이 있으며 그 반대도 마찬가지입니다.
OFish

6

산점도 행렬에서 사용 가능한 정보를 추출하기 어렵거나 불가능하게 만드는 여러 가지 문제가 있습니다.

너무 많은 변수가 함께 표시되었습니다. 산점도 행렬에 변수가 많은 경우 각 그림이 너무 작아서 유용하지 않습니다. 주목해야 할 것은 많은 플롯이 복제되어 공간을 낭비한다는 것입니다. 또한 모든 조합을보고 싶지만 모두 조합 할 필요는 없습니다. 산점도 행렬을 4 개 또는 5 개의 작은 블록 (유용하게 시각화 할 수있는 숫자)으로 나눌 수 있습니다. 각 블록마다 하나씩 여러 개의 플롯을 만들어야합니다.

여기에 이미지 설명을 입력하십시오

공간의 개별 지점에 많은 데이터가 있으므로 서로 겹쳐 쌓입니다. 따라서 각 위치에 몇 개의 포인트가 있는지 볼 수 없습니다. 이 문제를 해결하는 데 도움이되는 몇 가지 트릭이 있습니다.

  1. .5
  2. 데이터가 너무 많으면 지 터링조차도 패턴을 식별하기 어렵습니다. 채도가 높지만 크게 투명한 색을 사용할 수 있습니다 . 서로 위에 많은 데이터가 쌓여 있으면 색상이 어두워지고 밀도가 거의 없으면 색상이 밝아집니다.
  3. 투명도가 작동하려면 데이터를 표시하기 위해 단색 기호 가 필요 하지만 R은 기본적으로 빈 원을 사용합니다.

이러한 전략을 사용하여 다음은 예제 R 코드와 플롯입니다.

# 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) }
    }
  }

여기에 이미지 설명을 입력하십시오


5

단일 플롯에서 3-4 개 이상의 차원을 시각화하기가 어렵습니다. 한 가지 옵션은 PCA (Prince Components Analysis)를 사용하여 데이터를 압축 한 다음 기본 차원에서 시각화하는 것입니다. R에는 여러 가지 다른 패키지가 있으며 (기본 prcomp기능 뿐만 아니라 )이 구문을 쉽게 이해할 수 있습니다 ( CRAN 참조 ). 플롯, 로딩을 해석하는 것은 또 다른 이야기이지만 10 변수 가변형 산점도 행렬보다 쉽다고 생각합니다.

여기에 이미지 설명을 입력하십시오


PCA에 대한 제안에 감사드립니다. 나는 그것에 대해 몰랐다. 게시 한 이미지를 어떻게 해석합니까? 그룹으로 묶인 모든 속성이 어느 정도 중요하다는 의미입니까?
birdy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.