매우 많은 수의 쌍으로 된 데이터 포인트를 그래픽으로 표현하는 좋은 방법은 무엇입니까?


9

필자의 분야에서 짝을 이룬 데이터를 그리는 일반적인 방법은 일련의가는 경 사진 선분으로 두 그룹에 대한 중앙값의 중앙값과 CI로 오버레이합니다.

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

그러나이 종류의 줄거리는 데이터 포인트 수가 매우 많아지면 읽기가 훨씬 어려워집니다 (제 경우에는 10000 쌍 정도입니다).

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

알파를 줄이면 약간 도움이되지만 여전히 좋지는 않습니다. 솔루션을 검색하는 동안 이 백서 를 발견하고 '병렬 라인 플롯'을 구현하기로 결정했습니다. 다시 말하지만 적은 수의 데이터 포인트에 매우 훌륭하게 작동합니다.

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

그러나 이 매우 클 때 이런 종류의 음모를보기 좋게 만드는 것은 더 어렵습니다 .N

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

박스 플로트 또는 바이올린과 같이 두 그룹에 대한 분포를 별도로 표시하고 상단에 두 개의 중앙값 / CI를 표시하는 오류 표시 줄이있는 줄을 그릴 수 있다고 생각하지만 실제로는 그 아이디어가 마음에 들지 않습니다. 데이터의 특성

나는 또한 2D 산점도에 대한 생각에 지나치게 열중하지 않습니다. 더 컴팩트 한 표현을 선호하고 두 그룹의 값이 같은 축을 따라 그려지는 것이 이상적입니다. 완전성을 위해 데이터는 2D 분산 형처럼 보입니다.

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

누구든지 매우 큰 표본 크기로 쌍을 이룬 데이터를 표현하는 더 좋은 방법을 알고 있습니까? 몇 가지 예를 연결해 주시겠습니까?

편집하다

미안하지만, 내가 찾고있는 것을 설명하는 데 충분한 일을하지 못했습니다. 예, 2D 산점도는 효과가 있으며 점의 밀도를 더 잘 전달하기 위해 향상시킬 수있는 여러 가지 방법이 있습니다. 커널 밀도 추정에 따라 점을 색상으로 코딩 할 수 있으며 2D 히스토그램을 만들 수 있습니다 , 등 도트 위에 등고선을 그릴 수 있습니다 ...

그러나 나는 이것이 전달하려는 메시지에 대해 과도하다고 생각합니다. 나는 실제로 2D 밀도의 점 자체를 보여주는 것에 신경 쓰지 않습니다. 필요한 것은 '막대'의 값이 가능한 한 간단하고 명확한 방법으로 '점'의 값보다 일반적으로 더 크다는 것을 보여주는 것입니다. 그리고 데이터의 본질적인 쌍성을 잃지 않고. 이상적으로는 직교 축이 아닌 동일한 축을 따라 두 그룹의 쌍을 이루는 값을 플로팅하고 싶습니다. 시각적으로 쉽게 비교할 수 있기 때문입니다.

산포도보다 더 나은 옵션은 없지만 작동 할 수있는 대안이 있는지 알고 싶습니다.


1
bar가로축과 dot세로축 의 해당 값을 산점도로 플로팅하려고 했습니까 ?
Till Hoffmann

@TillHoffmann 예, 질문이 끝났을 때 언급했습니다. 아마도 현재 가장 좋은 옵션 일 것입니다. 그러나 더 컴팩트 한 표현을 선호하고 같은 축을 따라 두 그룹의 값을 나타내는 것이 이상적입니다 (아마도 불합리하게 요구하고 있습니다 ...). 내 질문에 산점도를 추가하겠습니다.
ali_m

죄송합니다. 현재 합성 데이터를 어떻게 생성하고 있습니까?
Till Hoffmann

2
"소형"표현의 의미를 설명해 주시겠습니까? 산점도는 작은 영역에서 개별적으로 특이한 데이터뿐만 아니라 관계를 보여주는 측면에서 다른 모든 것보다 분명히 우수합니다. 데이터 세트 크기가 커질수록 더 좋아집니다. (산점도에는 10,000이 크지 않습니다.) 당신은 너무 많은 다른 그래픽을 언급하여 실제로 필요한 것을 추론하는 것은 불가능합니다. 시각화 의 목적 을 알려주십시오 . 정확히 어떤 종류의 정보를 배우거나 다른 사람에게 전달하기를 원하십니까? 얼마나 정확하고 빠르게 인식하고 이해하려고합니까?
whuber

1
@whuber 불분명해서 죄송합니다. 내가 바랐던 것은 두 그룹의 값이 직교 축이 아닌 동일한 축을 따라 그려 지도록 데이터를 표현하는 방법이었습니다 ( '경사 선'과 '평행선'플롯에있는 것처럼). 메시지는 매우 간단합니다. '막대'의 값은 일반적으로 '점'의 값보다 높습니다. 그 외에도 샘플에 많은 수의 쌍이 있음을 전달하고 싶지만 분포의 밀도를 나타내는 데 크게 신경 쓰지 않습니다.
ali_m

답변:


7

내가 당신의 목표를 이해하는 방법을 감안할 때, 나는 단지 쌍의 차이 ( bars - dots)를 계산 한 다음 이러한 차이를 히스토그램 또는 커널 밀도 추정 플롯으로 플롯합니다. 또한 (1) 차이 0에 해당하는 수직선 (2) 임의의 백분위 수 조합을 추가 할 수도 있습니다.

이것은 데이터의 어느 부분이 bars초과 dots하는지, 그리고 일반적으로 관찰 된 차이가 무엇인지 강조합니다 .

(나는 당신의 실제, 원시 값 표시에 관심을하지 않은 것으로 가정했습니다 barsdots같은 음모를.)

또한 이러한 차이가 유의한지 여부를 나타 내기 위해 신뢰 또는 후방 신뢰할 수있는 구간을 표시 할 수 있습니다. (H / T @MrMeritology!)


이 답변에 추가 : 차이가 중요한지 여부를 시각적으로 나타내는 쌍을 이루는 차이에 대한 신뢰 구간을 플롯 할 수도 있습니다.
MrMeritology

쌍이 너무 많으면 차이가 "시작점"에 의존하는지 확인하는 것이 흥미로울 수 있으므로 또는 이차 항! 그래픽으로 표시된 것처럼 파이 저를 플롯하지만 기울기에 따라 알파와 색상이 줄어 듭니다.yB=μ+offset(yA)+Δ(yAy¯A
kjetil b halvorsen at

2

많은 쌍하면 차이의 경우처럼, 더 깊이 구조를 조사 가능성이 은 "시작 지점"에 따라 !yByAyA

당신은 같은 모델에 맞게 수 하고도 추가 할 수있는 차항 또는 일반화 된 이차 모형 (또는 회귀 스플라인)을 사용하여 선형 + 이차 항을 스플라인으로 바꿀 수 있습니다.

yB=μ+offset(yA)+Δ(yAy¯A)+ϵ
+Δ2(yAy¯A)2

그래픽으로 표시 한대로 줄을 표시 할 수 있으며 알파 요소 (*)가 줄어든 경우 임의의 줄 샘플 만 표시하면 더 줄어 듭니다. 그런 다음 경사에 따라 선을 채색 할 수 있습니다 ...

Nick Cox의 의견에서 언급 한 Bland-Altman 플롯의 경우, 예를 들어 개인마다 여러 개의 관측치가있는 방법 간의 합의 예를 참조 하거나 태그를 살펴보십시오.

(*) 여기서 알파 팩터는 플롯의 점을 투명하게 만드는 그래픽 매개 변수이므로 첫 번째 플롯 점은 나중에 오버 플로팅으로 완전히 점령되지 않습니다.


1
비슷한 생각으로, 차이 (A B) 대 평균 (A + B) / 2를 플로팅 하는 것이 많은 분야에서 일반적인 장치 라고 생각 합니다. 의료 통계에 붙어있는 이름은 "Bland-Altman plots"이지만 관련 저자는 독창성을 주장하지 않았으며 아이디어는 적어도 1950 년대로 거슬러 올라갑니다.
Nick Cox

1

2D 산점도를 선호합니다. 혼잡 한 지역에서 대비를 높이기 위해 참 조선을 밝은 회색으로 그릴 것입니다. 밀집 현상을 줄이려면 테두리없이 마커를 그리고 알파를 줄이고 마커 크기를 줄입니다.

즉, 분포의 날개보다 전형적인 쌍에 더 관심이 있다면 누적 합과 누적 합을 줄로 플로팅 dots하십시오 bars. 줄거리는 여전히 2D이지만 잉크가 훨씬 적습니다. 플로팅 영역도 저장하려면 프레임을 기준 방향으로 사용하도록 트레이스를 45 ° 회전 할 수 있습니다.

이 플롯은 데이터의 추세도 보여줍니다. 공정이 정지 상태 인 것으로 알려진 경우 쌍을 예를 들어 기하 평균으로 정렬하십시오 sqrt(bars*dots).


0

중앙값과 사 분위수에 대해 선을 표시하거나 해당 문제에 대해 원하는만큼 백분위 수를 표시하는 것이 좋습니다. 중앙값은 다른 백분위 수 선보다 더 두껍고 더 식별 가능할 수 있습니다. 이를 통해 현재 현장에서 사용되는 도표의 단순성과 친숙성을 손상시키지 않으면 서 분포에서 데이터가 어떻게 작동하는지 확인할 수 있습니다.

또한 표본 크기가 크면 중앙 한계 정리를 완전히 즐기기 때문에 오차 막대가있는 평균 또는 중간 추세가 충분할 수 있습니다. 생의학 분야는 또한 그 짝을 이루는 선 그림에 의존하지만, 표본 크기가 10-20 정도일 수 있기 때문에 종종 그렇습니다. 따라서 잠재적 레버리지 지점을 시각화하는 것이 중요합니다.


0

나의 첫 제안은 산점도입니다.

플롯에 고르지 않은 10000 개의 점이 여전히 모호한 구름 인 경우 열지도를 고려하십시오. x = 10.5, y = 11.5에서 픽셀의 색상은 10.45와 10.55 사이의 값이 11.45와 11.55 사이의 값에 매핑되는 횟수를 나타냅니다. 0 = white = RGB (255,255,255), 1 = blue = RGB (0, 0,255), 2 = RGB (1,0,254), ... 256 이상 = RGB (255,0,0) = 빨간색


그것은 본질적으로 저 해상도를 제외하고는 2D 산란과 같은 종류의 표현을 제공합니다. 나는 이런 식으로 끝낼 수 있지만 이상적으로는 직교 축이 아닌 동일한 축을 따라 두 그룹의 값을 플롯하는보다 간결한 표현을 원했습니다.
ali_m

1
산점도를 보면 "잉크 스팟"중앙에 많은 정보가 없어지고있는 것을 알 수 있습니다. 변환 (로그?)을 적용하거나 내가 제안한 히스 맵으로 무언가를해야합니다.
Dirk Horsten

죄송합니다! 귀하의 제안은 전적으로 합리적인 것입니다-나는 내가 찾고있는 것을 설명하는 데 충분한 일을하지 않았습니다. 예, 2 차원 플롯 (산란, 히트 맵, 등고선 플롯 등)은 샘플 포인트의 밀도를 나타내는 데 효과적이지만 실제로 표시해야하는 것보다 더 많은 정보라고 생각합니다. 내가해야 할 일은 '막대'의 값이 일반적으로 '점'의 값보다 높다는 것입니다. 데이터의 쌍 속성을 유지하면서 이것을 표시하는 가장 간단한 방법을 찾고 있습니다.
ali_m

Catter Plot의 대각선이 방향을 충분히 나타내지 않습니까?
Dirk Horsten

아니요, 그러나 아마도 저는 부당한 기대를 가지고 있습니다 :-)
ali_m
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.