Kolmogorov-Smirnov Test에 대한 다중 샘플 버전 또는 대안이 있습니까?


12

한 플롯이 처리를 받고 다른 플롯이 제어를받는 6 쌍의 플롯에서 나무의 크기 분포를 비교하고 있습니다. 각 쌍의 플롯에서 Kolmogorov-Smirnov 테스트를 사용하여 범위는 0.0003707 ~ 0.75 입니다. KS 테스트의 다중 샘플 확장과 같은 모든 반복 실험을 처리하는 적절한 방법이 있습니까? 아니면 적절한 후속 테스트가 있습니까? 또는 " 두 쌍의 플롯에서 크기 분포가 크게 ( p < 0.05 ), 한 쌍의 플롯에서 조금씩 ( p = 0.59 ) "와 같은 결론을 내릴 수 있습니다.p0.00037070.75(p<0.05p=0.59


2
이 분포에 대해 비교하려는 것이 무엇입니까, 중심 경향이 다르거 나 모양이 다른가? 나는 KS를 분포의 모양과 성질에 관한 것으로 생각하지만 Friedman 테스트 와 같은 것으로 샘플의 중심 경향이 다르다는 것을 알 수 있습니다.
gung-모니 티 복원

답변:


13

r2


5
Böhm과 Hornik의 "아름다운"논문의 단점은 내가 알 수있는 한 공개적으로 구현할 수 없다는 것입니다. 수학은 스스로 구현하기를 원하지 않을 정도로 복잡합니다. 저자들에게 메일을 보내달라고 요청했지만 답변하지 않았습니다. Hornik은 R Core Developers 그룹의 멤버입니다. 누군가 구현에 대해 알고 있다면 여기에 링크를 게시하십시오!
Laryx Decidua

8

비 파라 메트릭 k- 샘플 Anderson-Darling 테스트를 제공 하는 R 패키지 kSamples 가 있습니다. 귀무 가설은 모든 k 개의 표본이 동일한 분포에서 나 왔으며이를 지정할 필요가 없다는 것입니다. 아마도 당신은 이것을 사용할 수 있습니다.

정규 및 감마 분포 표본을 동일한 평균과 분산을 갖도록 스케일링 한 예제 비교 :

library("kSamples")
set.seed(142)
samp.num <- 100
alpha <- 2.0; theta <- 3.0  # Gamma parameters shape and scale, using Wikipedia notation
gam.mean <- alpha * theta # mean of the Gamma
gam.sd <- sqrt(alpha) * theta # S.D. of the Gamma
norm.data <- rnorm(samp.num, mean=gam.mean, sd=gam.sd)  # Normal with the same mean and SD as the Gamma
gamma.data <- rgamma(samp.num, shape=alpha, scale=theta)
norm.data2 <- rnorm(samp.num, mean=gam.mean, sd=gam.sd)
norm.data3 <- rnorm(samp.num, mean=gam.mean, sd=gam.sd)
ad.same <- ad.test(norm.data,norm.data2,norm.data3) # "not significant, p ~ 0.459"
ad.diff <- ad.test(gamma.data,norm.data2,norm.data3) # "significant, p ~ 0.00066"

4

몇 가지 접근 방식 :

pairwise p-value를 사용하되 Bon Feroni 또는 False Discovery Rate adjustmetns와 같은 것을 사용하여 다중 비교를 위해 조정하십시오 (첫 번째는 다소 보수적입니다). 그러면 여전히 크게 다른 것이 여러 번의 테스트로 인한 것이 아니라고 확신 할 수 있습니다.

분포 사이의 가장 큰 거리를 찾아서 KS의 풍미에 대한 전체 테스트를 만들 수 있습니다. 즉, 모든 경험적 cdf를 플로팅하고 맨 아래 선에서 맨 위 선까지 가장 큰 거리를 찾거나 평균 거리 또는 다른 의미있는 것을 찾을 수 법안. 그런 다음 순열 테스트를 수행하여 이것이 중요한지 확인할 수 있습니다. 모든 데이터를 하나의 큰 빈으로 그룹화 한 다음 원래 그룹과 동일한 샘플 크기를 가진 그룹으로 임의로 분할하고 순열 된 데이터의 통계를 재 계산하고 프로세스를 반복하십시오. 여러 번 (999 정도). 그런 다음 원래 데이터가 순열 된 데이터 세트와 어떻게 비교되는지 확인하십시오. 원래 데이터 통계가 순열 된 통계의 중간에 속하면 큰 차이는 없지만 가장자리에 있으면 또는 순열 된 것들을 넘어 서면 중요한 일이 있습니다 (그러나 이것이 다른 것을 말하지는 않습니다). 흥미로운 차이를 찾기 위해이 테스트의 힘을 확인하는 것만으로도 충분히 큰 차이가 있음을 알고있는 시뮬레이션 된 데이터를 사용하여 시도해보십시오.

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