두 개의 히스토그램을 같은 규모로 배치하는 가장 좋은 방법은 무엇입니까?


14

모양, 크기 및 이동을 쉽게 볼 수있는 방식으로 자세하게 비교하고자하는 두 개의 분포가 있다고 가정 해 봅시다. 이를 수행하는 한 가지 좋은 방법은 각 분포에 대한 히스토그램을 플로팅하여 동일한 X 스케일에 배치하고 다른 하나 아래에 쌓이는 것입니다.

이 작업을 수행 할 때 비닝을 어떻게 수행해야합니까? 아래 그림 1에서와 같이 하나의 분포가 다른 분포보다 훨씬 더 분산되어 있어도 두 히스토그램에서 동일한 빈 경계를 사용해야합니까? 아래 이미지 2와 같이 줌하기 전에 각 히스토그램에 대해 비닝을 독립적으로 수행해야합니까? 이것에 대한 좋은 경험 법칙이 있습니까?

이미지 1 이미지 2


5
QQ 도표는 경험적 분포의 정확한 비교를위한 훨씬 더 나은 도구입니다. 그것들을 사용하면 비닝 문제를 완전히 피할 수 있습니다.
whuber

3
@ whuber : 두 분포가 다른지 여부를 민감하게 시각화하고 싶지만 히스토그램 접근법은 IMHO가 더 나은 방법 입니다.
dsimcha

3
@dsimcha 내 경험은 정반대였습니다. QQ 플롯은 특히 꼬리 두께에서 스케일, 위치 및 모양의 차이를 정량적으로 보여줍니다. (예를 들어 히스토그램에서 두 개의 SD를 직접 비교해보십시오. 예를 들어 값이 가까울 때는 불가능합니다. QQ 플롯에서는 슬로프 만 비교하면되며 빠르고 비교적 정확합니다.) QQ 플롯은 히스토그램보다 열등합니다. 적절한 양의 데이터가 수집되고 빈을 선택하기 전까지는 히스토그램이 없습니다.
whuber

1
빈 문제를 피하지는 않지만 QQ 플롯이 최선의 해결책이라는 데 동의합니다. 빈은 특정 위치에 빈을 배치하도록 강요합니다 (Quantile :-) 반면에 이것은 빈이 그렇지 않음을 의미합니다 실제로 두 배포판에서 공유해서는 안됩니다.
공역 사전

1
@ dsimcha, 나이 / 성별 플롯과 같은 것이 유용한 그림이 될 수 있다고 생각합니다. 어쨌든 히스토그램을 사용해야하는 이유는 무엇입니까? 분포 함수를 직접 플로팅하면됩니다. 그러나 경험적 인 것들을 가지고 놀고 있다면 QQ 플롯 제안이 최선의 선택입니다.
Dmitrij Celov

답변:


7

나는 당신이 같은 쓰레기통을 사용해야한다고 생각합니다. 그렇지 않으면 마음이 당신에게 속임수를 씁니다. Normal (0,2)은 Image # 1에서보다 Image # 2에서 Normal (0,1)에 비해 더 분산되어 보입니다. 통계와 관련이 없습니다. Normal (0,1)이 "다이어트"로 간 것 같습니다.

랄프 윈터스

중간 점 및 히스토그램 끝 점도 분산에 대한 인식을 변경할 수 있습니다. 이 애플릿에서 최대 빈 선택은> 1.5-~ 5의 범위를 의미하고 최소 빈 선택은 <1-> 5.5의 범위를 의미합니다.

http://www.stat.sc.edu/~west/javahtml/Histogram.html


1
이 의견에 대한 이론적 정당성을 제공 할 수 있습니까?
whuber

아니, 그냥 의견. 그러나 시간이 있었다면 소매 포장 세계 (얇은 신체 인식)에서 연구를 시작하고 Tufte의 작업 중 일부를 통합 할 것입니다.
랄프 윈터스

@ whuber : 주로 뇌가 정보를 처리하는 방식과 관련이 있습니다. 작은 쓰레기통이있을 때, 우리의 마음은 또한 곡선의 경계를 "축소"합니다. 그림의 빈 크기를 뒤집어보십시오. 내가 무슨 뜻인지 알기 위해 # 2.
nico

@nico 예, 질문에 지각적인 요소가 있습니다. 그러나 가장 큰 영향을 미치기 때문에 통계적인 문제가 가장 중요합니다. 빈이 작을수록 ==> 빈의 샘플 변동이 더 커집니다. 따라서 IMO, 가치있는 답은 통계 이론 으로부터 최소한의 지지를 받아야합니다 .
whuber

@ whuber : 두 이미지에서 분포 다르게 분산되어 있다는 사실을 언급하고있었습니다 . 물론 그들이 어떻게 보이는지는 그들이 실제로 얼마나 많이 퍼져 있는지와 아무 관련이 없습니다.
nico

2

다른 방법은 동일한 그림에 다른 분포를 그리고 alpha매개 변수 와 같은 것을 사용 ggplot2하여 과도 플로팅 문제를 해결하는 것입니다. 이 방법의 유용성은 분포가 동일한 빈으로 표시되므로 분포의 차이 또는 유사성에 따라 달라집니다. 또 다른 대안은 각 분포에 대해 평활 밀도 곡선을 표시하는 것입니다. 다음은 이러한 옵션의 예와 스레드에서 논의 된 다른 옵션입니다.

library(ggplot2)

df <- melt(
    data.frame( 
        x = rnorm(1000)
        , y = rnorm(1000, 0, 2)
    )
)


ggplot(data = df) + 
#   geom_bar(aes(x = value, fill = variable), alpha = 1/2)
#   geom_bar(aes(x = value)) + facet_grid(variable ~ .)
#   geom_density(aes(x = value, colour = variable))
#   stat_qq(aes(sample = value, colour = variable))

이것은 적절한 커널 너비를 선택하는 문제와 다른 커널 너비를 사용하여 두 개의 스무드를 비교할 수 있는지 여부와 그 방법에 대한 의문을 제기하지 않습니까?
whuber

1
@whuber-유효한 포인트. 밀도 곡선이 모든 다른 방법으로 사용되는 것이 아니라 다른 대안을 제공한다고 제안하지는 않았습니다. 이 게시물에서 어떤 접근 방식에도 찬반 양론이 있음을 분명히 알 수 있으므로이를 혼합에 던질 수있는 또 다른 대안으로 제공했습니다.
Chase

그것에 비추어, 나는 당신의 대답을 +1 투표합니다.
whuber

0

따라서 동일한 빈 크기를 유지하거나 동일한 수의 빈을 유지해야하는 문제입니까? 나는 양쪽에 대한 논쟁을 볼 수 있습니다. 해결 방법은 먼저 값 을 표준화 하는 것 입니다. 그러면 둘 다 유지할 수 있습니다.


두 샘플 크기가 비슷할 때 작동합니다. 그러나 이들이 서로 다르면 공통 빈 크기 (표준 단위에서도)가 하나 또는 다른 히스토그램에 적합 할 수 있지만 둘 다에는 적합하지 않을 수 있습니다. 그 사건을 어떻게 처리하겠습니까?
whuber

아마도 우리는 표준화의 다른 의미에 대해 생각하고있을 것입니다. 예를 들어, 한 인구가 5의 stdev를 가지고 있고 다른 인구가 10의 stdev를 가지고 있다면, 표준화 후 둘 다 1의 stdev를 가질 것입니다. 각 빈에는 비슷한 양의 픽셀과 데이터가 있으므로 빈 크기입니다. 또는 "적절한 빈 크기"가 약간의 검은 예술이며 모든 데이터 세트에 고유하다는 더 큰 문제에 직면했을 수도 있습니다.
xan

우리는 "표준화"의 동일한 의미를 공유합니다. 빈 크기를 선택하려면 컨텍스트에 대한 판단과 지식이 필요하지만 "흑 미술"로 특성화하기에는 무리가 있습니다 ( 예 : stats.stackexchange.com/q/798/919 참조) .
whuber
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.