우발 사태 테이블에 가장 적합한 시각화는 무엇입니까?


22

통계적 관점에서 우연히 카이 제곱 검정으로 분석되는 우발 사태 표 를 나타내는 가장 좋은 도표 는 무엇입니까? 피한 막대 그래프, 누적 막대 그래프, 히트 맵, 등고선도, 흔들린 산점도, 여러 줄 그림 등입니까? 절대 값 또는 백분율을 표시해야합니까?

편집 : 또는 @forecaster가 주석에서 제안하는 것처럼 숫자 표 자체는 단순한 음모이며 충분해야합니다.


4
때로는 데이터 테이블이 최상의 시각화 방법 대 플롯입니다. 우발 사례 테이블이 그 대표적인 예입니다.
예측 자

1
중요한 점이지만 항상 최선의 선택이라는 데 동의하지는 않습니다.
rnso

1
그래서 내가 "때때로"말했던 것입니다. 나는 Stephen Few 's의 표 전체에 대한 전체 섹션이있는 숫자 를 보여줄 것을 권장 합니다.
예측 자

1
글쎄, 가장 좋은 방법은 당신이 보여주고 싶은 것에 달려 있고, 테이블이 얼마나 큰지, 어떤 세부 사항이 없다면 이것은 광범위합니다!
kjetil b halvorsen

3
stats.stackexchange.com/questions/56322/…의 대부분은 여기에 적절 해 보입니다.
Nick Cox

답변:


9

여기에 하나의 솔루션으로 적합하지는 않습니다. 매우 간단한 테이블 (예 : )이있는 경우 테이블을 제시하는 것이 가장 좋습니다. 실제 그림을 원한다면 @xan이 제안한 모자이크 그림이 시작하기에 좋은 곳일 것입니다. 체 플롯, 연관 플롯 및 동적 압력 플롯을 포함하여 모자이크 플롯과 유사한 다른 옵션이 있습니다 (여기서 나의 질문을 참조하십시오 : 비상 테이블에 대한 체 / 모자이크 플롯의 대안 ); Michael Friendly의 책 Visualizing Categorical Data 는이 주제에 대한 좋은 (SAS 기반) 자료가 될 것이며 vcd 패키지 는 R에서 이러한 아이디어를 구현하기위한 좋은 자료입니다. 2×2

그러나 테이블에 더 많은 수의 행과 열이 있기 때문에 사용하기가 더 어려워집니다. 다른 유형의 시각화 옵션은 대응 분석 을 수행 / 플롯 하는 것 입니다. 대응 성 분석은 우발성 테이블의 행과 열 모두에서 주성분 분석을 실행하는 것과 유사합니다. 그런 다음 둘 다 biplot과 함께 플롯됩니다. 다음은 @xan의 답변 데이터를 사용한 R 기반 예입니다.

library(ca)
tab = as.table(rbind(c(28, 4,  0, 56),
                     c(38, 5,  9, 10),
                     c( 6, 6, 14, 13) ))
names(dimnames(tab)) = c("activity", "period")
rownames(tab)        = c("feed", "social", "travel")
colnames(tab)        = c("morning", "noon", "afternoon", "evening")
tab
#         period
# activity morning noon afternoon evening
#   feed        28    4         0      56
#   social      38    5         9      10
#   travel       6    6        14      13
plot(ca(tab))

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

이 그림을 해석하기 위해 같은 유형의 두 점이 가까울수록 두 행 / 열 프로파일이 더 비슷합니다. 그리고 서로 다른 유형의 두 점이 가까울수록 교차 질량을 나타내는 확률 확률이 셀에 더 많습니다.

R에는 ca 패키지가 있습니다 . 이 비네팅 ( pdf )도 도움이 될 수 있습니다.


매우 유용한. 분명히 작은 값으로 실패합니다. 예 : tt = with (mtcars, table (factor (gear), factor (vs))); 음모 (ca (tt)); x [, dim] 오류 : 아래 첨자 범위 초과
rnso

요인 중 하나 (즉, factor(vs))에 두 가지 수준 만 있기 때문입니다 . 당신은 적어도 세가 필요합니다. 시도하십시오 ttt = with(mtcars, table(factor(gear), factor(cyl))); plot(ca(ttt)).
gung-모니 티 복원

다른 요인들 사이의 관계를 잘 보여줍니다.
rnso

또는 대응 분석 점수의 순서로 행과 열을 재정렬 한 후 테이블을 표시 할 수 있습니다.
kjetil b halvorsen

재미있는 아이디어, @kjetilbhalvorsen. ca객체 에서 가져 오는 방법을 잘 모르겠 으므로 처음부터 코딩했습니다. 내가 실수하지 않으면 행 c(1,3,2)과 열의 순서를 바꿉니다 c(4,1,3,2). 그렇게 한 후에, 내가 여기서 무엇을 볼지 잘 모르겠습니다. 당신은 무엇을 생각하고 있습니까?
gung-Monica Monica 복원

11

다른 비주얼은 다른 기능을 강조하는 데 더 나을 것이지만, 모자이크 플롯은 일반적인보기에 적합합니다 (눈에 띄는 것이 있는지 확인). 어쩌면 그게 닷지 바 플롯의 의미 일 것입니다. 대부분의 옵션과 마찬가지로 다른 주파수보다 한 차원에서 상대 주파수를 더 잘 표현한다는 점에서 대칭이 아닙니다. 좋은 특징은 한계 주파수도 표현된다는 것입니다.

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

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


이거 좋다 숫자와 비율이 모두 표시됩니다. 숫자도 줄거리에 넣을 수 있습니다. x 축 항목의 순서가 정렬되면 훨씬 좋아 보입니다. 피해서 나는 서로 겹쳐 쌓이지 않고 범주가 나란히있는 공통 막대 그래프를 의미했습니다 (이 페이지의 position = 'dodge': r-bloggers.com/using-r-barplot-with-ggplot2 참조 ).
rnso

1
+1이 디자인은 종종 비교적 단순한 데이터에 대해 매우 잘 작동합니다 . 반대로 나는 임의의 차원의 우발성 테이블로의 확장성에 대한 문헌의 강조에도 불구하고 더 복잡한 데이터에 대해 생각하기가 빠르게 어려워지는 것을 발견했습니다. 그럼에도 불구하고 그러한 상황에서도 디자인이 제대로 작동하지 않습니다. 이 예의 작은 점은 프로그램에서 제공하는 기본 알파벳순 "오후"... "오후"를 수락 한 것으로 보이지만 시간 순서를 유지하는 것이보다 자연스러운 선택입니다.
Nick Cox

8

"최상의"줄거리는 데이터 세트, 독자 및 목적과 독립적으로 존재하지 않는다는 데 동의합니다. 두 가지 측정 변수의 경우 산점도는 특정 목적을 제외하고는 다른 모든 것을 떠올리게하는 디자인 일 수 있지만 범주 형 데이터에 대해서는 시장 리더가 분명하지 않습니다.

여기서의 목표는 종종 재발견 또는 재발 명 된 간단한 방법을 언급하는 것이지만 통계 그래픽을 다루는 논문이나 교과서에서도 간과되기도합니다.

먼저 xan이 게시 한 것과 동일한 데이터를 다루는 예 :

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

이름을 원할 경우 종종 양방향 막대 차트입니다 (이 경우). 여러 막 대형 차트 가 비슷한 풍미의 일반적인 대안 이라는 점을 제외하고는 다른 용어를 여기에 카탈로그 화하지 않습니다 . ( "다중 막대 차트"에 대한 나의 작은 반대 의견은 "다중"이 매우 일반적인 누적 또는 병렬 막대 차트를 배제하지 않는 반면, "양방향"은 행과 열 레이아웃을보다 명확하게 암시하지만 명확하게하기 위해 예를들 수 있습니다.)

이런 종류의 음모에 대한 플러스와 마이너스도 간단하지만, 일부를 설명하겠습니다. 내가이 디자인을 좋아한다면 (적어도 1930 년대로 거슬러 올라간다), 다른 사람들은 더 날카로운 비판을 추가하고 싶을 수도있다.

+1. 비 기술 그룹에서도 아이디어를 쉽게 이해할 수 있습니다. 이 예에서 막대 높이 또는 막대 길이는 주파수를 인코딩합니다. 다른 예에서는 원하는 방식으로 계산 된 백분율, 잔차 등을 인코딩 할 수 있습니다.

+2. 행과 열 구조는 테이블의 구조와 일치합니다 . 숫자 값도 추가 할 수 있습니다. 매우 적은 양과 암시 적 제로도 분명하게 나타납니다. 이는 다른 디자인 (예 : 누적 막대 차트, 모자이크 도표)의 경우에는 해당되지 않습니다. 행 및 열 레이블은 일반적으로 키 또는 범례를 추가하는 것보다 정신적으로 "앞뒤로"더 효율적입니다. 따라서이 디자인은 그래프와 테이블 아이디어를 혼성화하여 일부 독자에게는 문제가있는 것 같습니다. 반대로, 나는 Figures와 Tables의 강력한 차이점은 단지 역사적 숙취 일 뿐이라고 연구자들이 자신의 문서를 준비 할 수 있고 디자이너, 컴포 지터 및 프린터에 의존 할 필요가 없기 때문에 사용되지 않는다고 주장합니다.

+3. 3 방향 이상의 디자인으로의 확장 은 원칙적으로 쉽습니다 . 두 개 이상의 변수를 하나 또는 두 축에 복합 변수로 사용하거나 그러한 플롯의 배열을 제공하십시오. 당연히 디자인이 복잡할수록 해석이 복잡해집니다.

+4. 이 설계 어느 축에서든 서수 변수 를 명확하게 허용 합니다. 순서는 해당 축의 범주 순서뿐만 아니라 적절한 음영 처리로 표현 될 수 있습니다. 축의 범주 순서는 의미에 따라 결정되거나 빈도에 따라 더 잘 결정될 수 있습니다. 텍스트 레이블에 따른 알파벳 순서는 기본값 일 수 있지만 유일한 선택은 아닙니다.

-1. 설계 상 일반적으로 플롯은 특정 종류의 관계를 표시하는 데 덜 효율적일 수 있습니다 . 특히, 모자이크 도표는 독립으로부터의 이탈을 매우 명확하게 만들 수 있습니다. 반대로 범주 형 변수 사이의 관계가 복잡하거나 명확하지 않은 경우 일반적으로 약한 사실보다 더 잘 보여주는 그래프는 없습니다.

-2. 어떤 방식 으로든 디자인은 발생 빈도와 빈도에 관계없이 모든 교차 조합을위한 공간 을 남겨 두어 공간 사용에 있어 비효율적입니다 . 이것은 미덕으로 간주되는 동일한 원칙의 악입니다. 위의 특정 디자인은 빈도와 상관없이 범주를 동일하게 구분합니다. 읽을 수있는 한계 레이블을 희생하는 경우가 많습니다. 이 예제에서 텍스트 레이블은 모두 매우 짧지 만 일반적인 것과는 거리가 멀습니다.

참고 : xan의 데이터는 발명 된 것으로 보이므로 다른 답변에서 시도한 것보다 더 이상 해석을 시도하지 않습니다. 그러나 어떤 가정적인 지혜는 여기서 마지막 단어를 받아 마땅합니다. 당신을위한 최고의 디자인은 당신과 당신의 독자에게 당신이 관심있는 실제 데이터의 구조를 가장 잘 전달하는 것입니다.

다른 예로는

세 가지 범주 형 변수 사이의 관계를 어떻게 시각화 할 수 있습니까?

두 서수 변수 사이의 관계에 대한 그래프


1
다른 실행 가능한 옵션과 훌륭한 토론을 위해 +1. 양방향 막대 차트에 대한 질문을하고 다른 가능한 단점을 지적하십시오. 막대를 그릴 수있는 표시되지는 않지만 명확하게 인식 할 수있는 '상자'가 있습니다. 막대가 상자 상단에 가까워지면 100 %에 도달합니다. 그 가치는 어떻게 결정됩니까? (NB, 우발 사고 테이블은 항상 어떤 식 으로든 알려진 총계로 다항식입니다.) 상자 행 합 또는 열 합의 최상위를 만들면 다른 지각 적 추론이 촉진됩니다. (막대가 너무 작아서 구분하기에는 테이블 합계가 사용 된 것으로 보이지 않습니다.)
gung-Reinstate Monica

1
감사합니다. 여기와 이력서의 다른 곳에서 사용 된 Stata 프로그램에 대해 언급 할 수 있습니다. 이 프로그램은 tabplotSSC에서 온 것입니다. 바의 높이는 반드시 가장 높거나 긴 바의 높이의 일부에 해당합니다. 사용 가능한 공간은 표시되는 행 수에 따라 결정됩니다. 사용자는 기본 간격 크기를 무시할 수 있지만 막대가 서로 닿거나 막힐 위험이 있습니다. 막대가 긍정적일뿐 아니라 부정적 일 수 있다면 일이 쉽지 않습니다. 다른 프로그램과 동일한 제약 조건이 물린다고 생각합니다. 요컨대, 만지지 않는 막대는 공백을 의미합니다!
Nick Cox

8

@gung과 @xan의 답변을 보완하기 위해 vcdR에서 사용하는 모자이크 및 연관 그림의 예가 있습니다 .

> tab
        period
activity morning noon afternoon evening
  feed        28    4         0      56
  social      38    5         9      10
  travel       6    6        14      13

줄거리를 얻으려면 :

require(vcd)
mosaic(tab, shade=T, legend=T)
assoc(tab, shade=T, legend=T)

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

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

둘 다 직관적으로 예상 주파수와의 이탈을 나타냅니다 ... 기본값은 상호 독립 의 모델 이지만 인수 를 통해 변경 될 수 있습니다 (예 : 명확한 응답 변수가있는 경우 공동 독립으로 ) expected.

참조 :

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