누락 된 항목과 상관 관계 행렬을 표시하는 방법은 무엇입니까?


10

변수 사이의 관계를 쉽게 탐색하기 위해 지금까지 수집 한 기사에서 상관 관계를 그래픽으로 표현하고 싶습니다. 나는 (지저분한) 그래프를 그리는 데 사용했지만 지금 너무 많은 데이터가 있습니다.

기본적으로 다음과 같은 테이블이 있습니다.

  • [0] : 변수 1의 이름
  • [1] : 변수 2의 이름
  • [2] : 상관 관계 값

"전체"행렬이 불완전합니다 (예 : V1 * V2, V2 * V3의 상관 관계는 있지만 V1 * V3은 상관 없음).

이것을 그래픽으로 표현하는 방법이 있습니까?

답변:


12

@GaBorgulya의 응답을 바탕으로 변동 또는 레벨 플롯 (일명 히트 맵 표시)을 시도하는 것이 좋습니다.

예를 들어, ggplot2 사용 :

library(ggplot2, quietly=TRUE)
k <- 100
rvals <- sample(seq(-1,1,by=.001), k, replace=TRUE)
rvals[sample(1:k, 10)] <- NA
cc <- matrix(rvals, nr=10)
ggfluctuation(as.table(cc)) + opts(legend.position="none") + 
  labs(x="", y="")

여기서 누락 된 항목은 회색으로 표시되지만 기본 색 구성표를 변경할 수 있으며 범례에 "NA"를 넣을 수도 있습니다.

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

또는

ggfluctuation(as.table(cc), type="color") + labs(x="", y="") +
  scale_fill_gradient(low = "red",  high = "blue")

(여기서 결 측값은 표시되지 않습니다. 그러나 geom_text()빈 셀에 "NA"와 같은 것을 추가 하고 표시 할 수 있습니다 .)

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


2
에 대한 +1 ggfluctuation, 전에는 보지 못했습니다! 이 게시물에는 이러한 유형의 날짜를 시각화하는 다른 유용한 코드가 있습니다. stackoverflow.com/questions/5453336/…
Chase

@Chase (+1) Thx. BTW, 음의 상관 값에 대한 색 구성표에 문제가있는 것 같습니다.
chl

( hclust(…)$order) [ stat.ethz.ch/R-manual/R-devel/library/stats/html/hclust.html]에 의해 행과 열의 순서를 바꾸면 시각화가 더보기 쉽습니다.
GaBorgulya

@GaBorgulya 좋은 지적입니다. 내가 답사의 데이터 분석을하고있을 때 나는 이것을 사용 하고 (당신이보고자하는 것을 공간 또는 시간 데이터 또는 구조화 된 데이터의 경우 것 같은) 변수는 특별한 순서가 없습니다. 그 mixOmics::cim기능은 매우 좋습니다. stats.stackexchange.com/questions/8370/… 관련 문제가 여기에서 논의되었습니다 .
chl

5

귀하의 데이터는

  name1 name2 correlation
1    V1    V2         0.2
2    V2    V3         0.4

다음 R 코드를 사용하여 긴 테이블을 넓은 테이블로 재 배열 할 수 있습니다

d = structure(list(name1 = c("V1", "V2"), name2 = c("V2", "V3"), 
    correlation = c(0.2, 0.4)), .Names = c("name1", "name2", 
    "correlation"), row.names = 1:2, class = "data.frame")
k = d[, c(2, 1, 3)]
names(k) = names(d)
e = rbind(d, k)
x = with(e, reshape(e[order(name2),], v.names="correlation", 
  idvar="name1", timevar="name2", direction="wide"))
x[order(x$name1),]

당신은 얻을

  name1 correlation.V1 correlation.V2 correlation.V3
1    V1             NA            0.2             NA
3    V2            0.2             NA            0.4
4    V3             NA            0.4             NA

이제 상관 행렬 (결 측값에 대처할 수있는 하나 이상)을 시각화하는 기술을 사용할 수 있습니다.


2
reshape패키지도 유용 할 수 있습니다. 일단 e다음과 같은 것을 고려하십시오library(reshape) cast(melt(e), name1 ~ name2)
Chase

3

corrplot패키지는 상관 행렬 시각화를위한 유용한 기능입니다. 상관 행렬을 입력 객체로 받아들이고 행렬 자체를 표시하기위한 여러 옵션이 있습니다. 좋은 기능은 계층 적 클러스터링 또는 PCA 방법을 사용하여 변수를 재정렬 할 수 있다는 것입니다.

시각화 예 는 이 스레드 에서 허용되는 답변을 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.