균일 성을 테스트하는 것이 일반적이지만, 다차원적인 점 구름에 대해 어떤 방법을 사용하는지 궁금합니다.
균일 성을 테스트하는 것이 일반적이지만, 다차원적인 점 구름에 대해 어떤 방법을 사용하는지 궁금합니다.
답변:
표준 방법은 Ripley의 K 함수 또는 L 함수와 같은 파생 함수를 사용합니다. 이것은 최대 거리 이탈 ( ) 의 함수로 점의 평균 이웃 수를 요약 한 도표입니다 . n 차원 의 균일 한 분포를 위해서는 평균이 ρ n :과 같이 행동해야하며 항상 작은 ρ에 해당 합니다. 클러스터링, 다른 형태의 공간 비 독립성 및 에지 효과 (점으로 샘플링 된 영역을 지정하는 것이 중요하기 때문에)로 인해 이러한 동작에서 벗어납니다. 이 합병증으로 인해 n으로 악화됩니다.증가-대부분의 어플리케이션에서 시뮬레이션을 통해 널 K 함수에 대한 신뢰 대역을 세우고 관측 K 함수를 초과 추론을 감지하여 초과를 감지합니다. 약간의 생각과 경험으로, 여행은 특정 거리에서 밀리는 경향의 관점에서 해석 될 수 있습니다.
K 기능 및 Dixon (2001)의 관련 L 기능의 예, ibid. L하도록 기능 구성되어 좋은 시각적 참조 : 균일 한 분포가 제로에서 수평 라인이다. 점선은이 특정 연구 영역에 대한 신뢰 구간이며 시뮬레이션을 통해 계산됩니다. 회색 추적은 데이터의 L 함수입니다. 거리 0-20m에서의 양의 소극은이 거리에서의 클러스터링을 나타냅니다.
/stats//a/7984 에서 관련 질문에 대한 응답으로 예제를 게시했습니다 . 여기서 포함 된 2 차원 매니 폴드의 균일 분포에 대한 K 함수에서 파생 된 플롯 은 다음과 같습니다. 시뮬레이션으로 추정됩니다.
에서는 R
제 1, spatstat 기능 kest
과 k3est
위한 K-함수 계산 와 N = 3 각각을. 3 차원 이상에서는 아마도 여러분 자신 일 것입니다. 그러나 알고리즘은 정확히 같습니다. 에 의해 (적당한 효율로) 계산 된 거리 행렬로부터 계산을 수행 할 수 있습니다.stats::dist
생각보다 질문이 더 어렵다는 것이 밝혀졌습니다. 그래도 숙제를하고 주변을 둘러 본 후 Ripley의 기능 외에도 여러 차원에서 균일 성을 테스트하는 두 가지 방법을 발견했습니다.
unf
두 테스트를 모두 구현 하는 R 패키지를 만들었습니다 . https://github.com/gui11aume/unf의 github 에서 다운로드 할 수 있습니다 . 그것의 대부분은 C에 있으므로를 사용하여 컴퓨터에서 컴파일해야합니다 . 구현의 기반이되는 기사는 패키지의 pdf 형식입니다.R CMD INSTALL unf
library(unf)
set.seed(123)
# Put 20 points uniformally in the 5D hypercube.
x <- matrix(runif(100), ncol=20)
liang(x) # Outputs the p-value of the test.
[1] 0.9470392
두 번째 방법은 덜 일반적이며 최소한의 스패닝 트리를 사용 합니다. 1979 년 Friedman & Rafsky (패키지 참조)는 두 개의 다변량 샘플이 동일한 분포에서 나온 것인지 테스트하기 위해 초기 작업을 수행했습니다 . 아래 이미지는 원리를 보여줍니다.
두 이변 량 샘플의 점은 원래 샘플 (왼쪽 패널)에 따라 빨간색 또는 파란색으로 표시됩니다. 풀링 된 샘플의 최소 스패닝 트리가 2 차원으로 계산됩니다 (중간 패널). 가장자리 길이의 최소 합이있는 트리입니다. 트리는 모든 포인트가 동일한 레이블을 갖는 하위 트리에서 분해됩니다 (오른쪽 패널).
아래 그림에서 파란색 점이 집계되는 경우를 보여줍니다. 오른쪽 패널에서 볼 수 있듯이 프로세스가 끝날 때 나무 수를 줄입니다. Friedman과 Rafsky는 프로세스에서 얻은 트리 수의 점근 분포를 계산하여 테스트를 수행 할 수있게했습니다.
다변량 샘플의 균일성에 대한 일반적인 테스트를 만들기위한이 아이디어 는 1984 년 Smith와 Jain 에 의해 개발 되었고 Ben Pfaff에 의해 C에서 구현되었습니다 (패키지 참조). 두 번째 샘플은 첫 번째 샘플의 대략적인 볼록 껍질에서 균일하게 생성되며 Friedman과 Rafsky의 테스트는 두 개의 샘플 풀에서 수행됩니다.
이 방법의 장점은 하이퍼 큐브뿐만 아니라 모든 볼록한 다변량 모양에서 균일 성을 테스트한다는 것입니다. 가장 큰 단점은 두 번째 샘플이 무작위로 생성되므로 테스트에 무작위 성분이 있다는 것입니다. 물론 테스트를 반복하고 결과를 평균화하여 재현 가능한 답변을 얻을 수는 있지만 유용하지는 않습니다.
이전 R 세션을 계속 진행하면 다음과 같습니다.
pfaff(x) # Outputs the p-value of the test.
pfaff(x) # Most likely another p-value.
github에서 코드를 복사 / 포크하십시오.