바이 모달 분포를 식별하는 방법은 무엇입니까?


48

일단 값을 차트로 플로팅하면 트윈 피크를 관찰하여 바이 모달 분포를 식별 할 수 있지만 프로그래밍 방식으로 찾는 방법은 무엇입니까? (알고리즘을 찾고 있습니다.)


5
흥미로운 질문. 나는 이것에 대해 아무것도 몰랐으므로 답을 시도하지 않을 것입니다. 그러나 인터넷 양식 + 테스트는 유망한 리드를 제공합니다. google.co.uk/search?q=bimodality+test
onestop

다중 양식 테스트를위한 프로그램 코드는 www.estima.com에서 볼 수 있으며 MODES.SRC라고합니다. Matlab, R 또는 기타 소프트웨어로 쉽게 변환 할 수 있습니다. 감사합니다.

1
모드 수를 식별 할 수는 없지만 (분포가 가질 수있는 작은 흔들기 수에는 제한이 없음) 하한을 얻을 수 있습니다. 예 : projecteuclid.org/euclid.aos/1176351045
Glen_b

답변:


27

연속 분포의 모드를 식별하려면 데이터를 스무딩하거나 비닝해야합니다.

비닝 은 일반적으로 너무 신중합니다. 결과는 종종 빈 컷 포인트를 배치하는 위치에 따라 다릅니다.

커널 평활화 (특히 커널 밀도 추정 형식)는 좋은 선택입니다. 많은 커널 모양이 가능하지만 일반적으로 결과는 모양에 크게 의존하지 않습니다. 커널 대역폭에 따라 다릅니다. 따라서 사람들은 식별 된 모드의 안정성을 확인하기 위해 적응 형 커널 스무드를 사용 하거나 다양한 고정 대역폭에 대해 일련의 커널 스무스를 수행합니다. 적응 형 또는 "최적의"스무더를 사용하는 것이 매력적이지만, 이들 중 대부분 (모두?)은 정밀도와 평균 정확도 사이의 균형을 이루도록 설계되었으므로 모드 위치의 추정을 최적화하도록 설계되지 않았습니다.

구현이 진행되는 한 커널 스무더는 데이터에 맞게 미리 결정된 기능을 로컬로 이동하고 확장합니다. 이 기본 기능을 차별화 할 수 있다면 (가우스는 원하는만큼 여러 번 차별화 할 수 있기 때문에 가우시안은 좋은 선택입니다.) 그런 다음 부드러운 파생물을 얻기 위해 파생물로 대체하면됩니다. 그런 다음 중요한 점을 감지하고 테스트하기 위해 표준 제로 찾기 절차를 적용하면됩니다. ( 브렌트의 방법은 잘 작동합니다.) 물론 당신이 어떤 중요한 점은 지역 최대 여부를 빠르게 검사 얻기 위해 두 번째 유도체 같은 트릭을 할 수 있습니다 - 즉, 모드.


2
@venkasub, 루트 찾기에 대한 Muller의 방법을 볼 수도 있습니다. 그것은 브렌트의 방법보다 간단하고 뉴턴의 방법만큼 "거의"효율적이지만 목표 함수의 미분을 알 필요는 없습니다.
추기경

25

이 문제를 다루는 Silverman의 잘 알려진 논문이 있습니다. 커널 밀도 추정을 사용합니다. 보다

BW Silverman, 커널 밀도 추정을 사용하여 다중 양식 조사 , J. Royal Stat. Soc. B , vol. 43 번 1, 1981, 97-99 쪽.

용지 표에 약간의 오류가 있습니다. 이것은 시작점이지만 꽤 좋은 것입니다. 가장 원하는 알고리즘을 사용할 때 잘 정의 된 알고리즘을 제공합니다. 더 많은 "현대적인"접근 방식을 인용 한 논문에서 Google Scholar를 볼 수 있습니다.


4
+1이 백서는 명백한 모드의 수가 커널 너비 (가우시안 커널의 경우)에 따라 적절한 너비를 선택한 다음 회신에 설명 된대로 계속되는 방법에 대한 정보를 활용합니다.
whuber

2

나는 파티에 늦었지만 멀티 모드인지 아닌지에 관심이 있다면 모드 수에 관심이 없다면 diptest봐야 합니다.

에서 R패키지라고합니다 diptest.


2
전체 이름은 Hartigan 's Dip Test of Unimodality입니다. : 설명 원래 논문은 본 명세서 제공 경험적 분포 함수 사이의 모든 샘플 포인트를 통해 최대 차이에 의해 샘플의 침지 시험 측정 multimodality, 및 최대 차분 것을 최소화 단봉 분포 함수. 이 알고리즘은 사소한 것이 아니지만 단일성 테스트를위한 딥 통계 계산 에서 원래 포트란 구현을 기반으로 C, Python, MATLAB 및 최신 포트란 변환을 쉽게 찾을 수 있습니다 .
mortehu


0

위키의 정의는 약간 혼란 스럽습니다. 하나의 모드 만있는 연속 데이터 세트의 확률은 0입니다. 바이 모달 디스 플 루비 톤을 프로그래밍하는 간단한 방법은 서로 다른 중심에있는 두 개의 정규 정규 분포를 사용하는 것입니다. 이것은 두 개의 피크 또는 위키가 모드를 호출합니다. 실제로 거의 두 가지 분포를 사용할 수 있지만 더 어려운 통계 기회 중 하나는 두 개의 임의 데이터 분포를 결합한 후 데이터 세트가 어떻게 구성되었는지 찾는 것입니다.


두 정규 분포의 중심을 어떻게 식별 할 수 있습니까?
venkasub

@venkasub, 정규 분포의 중심이 평균입니다. 이항성이 2 개의 정규 분포에서 나온다는 것을 알고 있다면 혼합 모형을 적합도를 추정하기 위해 적합 할 수 있습니다 (두 가지 모드).
mpiktas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.