2D 히스토그램에 대한 적합도


19

별 매개 변수를 나타내는 두 가지 데이터 세트가 있습니다 : 관찰 된 것과 모델링 된 것. 이 세트를 사용하여 2 색 다이어그램 (TCD)을 만듭니다. 샘플은 여기에서 볼 수 있습니다.

히스토그램

A 는 관찰 된 데이터이고 B 는 모델에서 추출 된 데이터입니다 (검은 선을 염두에 두지 말고 점은 데이터를 나타냅니다) 나는 하나의 A 다이어그램 만 가지고 있지만 원하는만큼 다른 B 다이어그램을 생성 할 수 있으며 필요한 것은 A에 가장 적합한 것을 유지하십시오 .

그래서 필요한 것은 다이어그램 B (모델)가 다이어그램 A (관찰) 에 적합한 지 확인하는 신뢰할 수있는 방법 입니다.

지금 내가하는 일은 두 축을 비닝하여 각 다이어그램에 대해 2D 히스토그램 또는 그리드를 작성하는 것입니다. 특정 셀에 대한 AB의 수의 절대 차이 를 발견했습니다 . 모든 셀을 살펴본 후 각 셀의 값을 합산하여 AB 사이 의 적합도 ( g f )를 나타내는 단일 양수 매개 변수로 끝납니다 . 0에 가장 가까울수록 더 잘 맞습니다. 기본적으로이 매개 변수는 다음과 같습니다.에프

; 여기서 I의 j는 다이어그램에 별 개수특정 셀이 (결정 I J )와 b를 I , J 에 대한 개수B는.에프=나는제이|나는제이나는제이|나는제이나는제이나는제이

이것이 바로 그 것입니다 처럼 각 셀 모양의 카운트의 차이그리드는내가 절대 값을 사용하지 않는 것을 (주 생성 ( 나는 J를 - B 나는 J를 ) 이 이미지에 있지만, 나는어떻게산출 할 때 사용할 g F ) 매개 변수를 :(나는제이나는제이)(나는제이나는제이)에프

헤스

문제는 매개 변수가 낮기 때문에이 적합이 다른 것보다 낫다는 것보다 더 좋은 추정기가 아닐 것이라는 조언을 들었습니다. 실제로 더 이상 말할 수 없습니다.


중요 :

(@PeterEllis에게 감사드립니다)

1- B의 점은 A의 점과 일대일 관계가 없습니다 . 가장 적합한 것을 검색 할 때 명심해야 할 중요한 사항입니다. AB 의 포인트 수가 반드시 같을 필요 는 없으며 적합도 검정도 이러한 불일치를 설명하고 최소화해야합니다.

2 매의 점의 수 B의 I가 맞추려고 데이터 세트 (모델 출력) A는 되어 있지 고정.


경우에 따라 카이-제곱 검정이 사용되는 것을 보았습니다 .

나는(영형나는이자형나는)2/이자형나는영형나는이자형나는

이자형나는이자형나는

또한 일부 사람들 은 히스토그램이 관련된 경우에 Poisson 테스트를 적용 할 것을 권장합니다 . 이것이 정확 하다면 누군가 가이 특정 경우에 해당 테스트를 사용하는 방법을 가르쳐 줄 수 있다면 정말 감사하겠습니다. (통계에 대한 내 지식은 매우 열악하므로 가능한 한 간단하게 유지하십시오.)


B의 점이 A의 점과 일대일 관계입니까 (예 : 각각 별표입니다), 그 점보다 더 추상적인가요?
피터 엘리스

안녕하세요 @PeterEllis, B의 포인트는 A의 포인트와 일대일 관련이 없습니다 . 실제로 가장 적합한 것을 검색 할 때 명심해야 할 또 다른 중요한 사항입니다. AB 의 포인트 수 는 그렇지 않습니다. 반드시 같을 필요 .
가브리엘

안녕-흥미로운 질문, 나는 정답을 작성하려고합니다. B의 각 버전이 같은 수의 점수입니까, 아니면 다른가요?
피터 엘리스 1

그것들 역시 다양하며, A 의 포인트 수 는 일정하게 유지됩니다. @PeterEllis를 알아내는 데 도움이된다면 얼마나 도움이 될지 모릅니다.
가브리엘

이 질문은이 주제와 매우 유사합니다. stats.stackexchange.com/questions/71036/… 대답을 제공 한 곳.
L Fischman

답변:


14

좋아, 나는이 답변을 광범위하게 개정했다. 데이터를 비닝하고 각 빈의 수를 비교하는 것보다 2d 커널 밀도 추정치를 맞추고 비교하는 원래의 대답에 묻힌 제안이 훨씬 더 좋습니다. Tarn Duong의 ks 패키지 에는 R 처럼 kde.test () 함수 가 있습니다.

자세한 내용과 조정할 수있는 인수는 kde.test 문서를 확인하십시오. 그러나 기본적으로 그것은 당신이 원하는 것을 거의 정확하게 수행합니다. 이 값이 반환하는 p 값은 귀무 가설 하에서 동일한 분포에서 생성되었다는 두가 지 데이터 세트를 생성 할 확률입니다. 따라서 p- 값이 높을수록 A와 B 사이의 적합도는 더 좋아집니다. 아래의 예에서 B1과 A는 다르지만 B2와 A는 똑같습니다 (생성 방법). .

# generate some data that at least looks a bit similar
generate <- function(n, displ=1, perturb=1){
    BV <- rnorm(n, 1*displ, 0.4*perturb)
    UB <- -2*displ + BV + exp(rnorm(n,0,.3*perturb))
    data.frame(BV, UB)
}
set.seed(100)
A <- generate(300)
B1 <- generate(500, 0.9, 1.2)
B2 <- generate(100, 1, 1)
AandB <- rbind(A,B1, B2)
AandB$type <- rep(c("A", "B1", "B2"), c(300,500,100))

# plot
p <- ggplot(AandB, aes(x=BV, y=UB)) + facet_grid(~type) + 
    geom_smooth() +     scale_y_reverse() + theme_grey(9)
win.graph(7,3)
p +geom_point(size=.7)

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

> library(ks)
> kde.test(x1=as.matrix(A), x2=as.matrix(B1))$pvalue
[1] 2.213532e-05
> kde.test(x1=as.matrix(A), x2=as.matrix(B2))$pvalue
[1] 0.5769637

저의 제 원래의 대답은, 지금은 아무 의미가없는 다른 곳에서도 연결되어 있기 때문입니다.

첫째, 이것에 대해 다른 방법이있을 수 있습니다.

Justel 등 은 Kolmogorov-Smirnov의 적합도에 대한 다변량 확장을 제시했는데, 이는 귀하의 경우에 사용될 수 있다고 생각되며 각 모델링 된 데이터 세트가 원본에 얼마나 잘 맞는지 테스트합니다. 나는 이것의 구현을 찾을 수 없었지만 (예를 들어 R에서) 어려워 보이지 않을 수도 있습니다.

다른 방법으로 , 원본 데이터와 각 모델링 된 데이터 세트 모두에 copula적용한 다음 해당 모델을 비교하여이를 수행 할 수 있습니다. R 및 기타 장소 에서이 접근법의 구현이 있지만 특히 익숙하지는 않으므로 시도하지 않았습니다.

그러나 귀하의 질문을 직접 해결하기 위해서는 귀하가 취한 접근법이 합리적입니다. 몇 가지 요점은 다음과 같습니다.

  • 데이터 세트가 보이는 것보다 크지 않으면 100 x 100 그리드가 너무 많은 구간이라고 생각합니다. 직관적으로, 다양한 데이터 집합을 결론 짓는 것이 빈의 정밀도 때문에 비유 사적이라고 생각할 수 있습니다. 데이터 밀도가 높을 때에도 적은 수의 포인트를 가진 빈이 많이 있음을 의미합니다. 그러나 결국 이것은 판단의 문제입니다. 비닝에 대한 다양한 접근 방식으로 결과를 확실히 확인할 것입니다.

  • 비닝을 마치고 데이터를 사실상 2 개의 열과 빈 수 (여기서는 10,000)와 같은 행 수를 갖는 비상 계산 테이블로 변환하면 두 열을 비교하는 표준 문제가 있습니다. 카운트. 카이 제곱 테스트 또는 일종의 Poisson 모델에 적합하지만 0 카운트가 많기 때문에 어색함이 있습니다. 이러한 모델 중 하나는 일반적으로 예상 카운트 수의 역으로 ​​가중치를 적용하여 차이의 제곱합을 최소화하여 적합합니다. 이것이 0에 가까워지면 문제가 발생할 수 있습니다.

편집-이 답변의 나머지 부분은 더 이상 적절한 접근법이라고 생각하지 않습니다.

×2

×2 는 전체 출력 함 수입니다. 테이블의 행 수로 인해 전체 계산이 실용적이지는 않지만 Monte Carlo 시뮬레이션을 사용하여 p- 값을 정확하게 추정 할 수 있습니다 (Fer 's 테스트의 R 구현은이를 테이블에 대한 옵션으로 제공함). 2 x 2보다 크고 다른 패키지도 마찬가지입니다. 이 p- 값은 모델 중 하나의 두 번째 데이터 집합이 원본을 통해 저장소를 통해 동일한 분포를 가질 확률입니다. 따라서 p- 값이 높을수록 적합도가 좋아집니다.

나는 약간의 데이터를 시뮬레이션하여 당신과 약간 비슷해 보 였으며이 접근법이 "A"와 동일한 프로세스에서 생성 된 "B"데이터 세트와 약간 다른 데이터를 식별하는 데 매우 효과적이라는 것을 알았습니다. 육안보다 확실히 더 효과적입니다.

  • 이 방법을 사용하면 의 변수 독립성을 테스트 할 수 있습니다×2 비상 테이블, 그것은의 포인트 수가 음이 해당하지만 (B 형태와 상이하다는 문제가되지 않는 것이다원래 제안한대로 절대 차이 또는 제곱 차이의 합만 사용하는 경우 문제). 그러나 각 버전의 B는 서로 다른 수의 포인트를 갖습니다. 기본적으로 B 데이터 세트가 클수록 p- 값이 낮아지는 경향이 있습니다. 이 문제에 대한 몇 가지 가능한 해결책을 생각할 수 있습니다. 1. 크기보다 큰 모든 B 세트에서 해당 크기의 무작위 샘플을 가져 와서 모든 B 세트의 데이터를 동일한 크기 (B 세트 중 가장 작은 크기)로 줄일 수 있습니다. 2. 먼저 2 차원 커널 밀도 추정치를 각 B 세트에 맞추고 동일한 크기 인 추정치로부터 데이터를 시뮬레이션 할 수 있습니다. 3. 어떤 종류의 시뮬레이션을 사용하여 p- 값과 크기의 관계를 계산하고이를 "수정"하는 데 사용할 수 있습니다. 위의 절차에서 얻은 p- 값은 비슷합니다. 아마도 다른 대안들도있을 것입니다. 어떤 작업을 수행 할 것인지는 B 데이터 생성 방법, 크기가 어떻게 다른지 등에 따라 다릅니다.

희망이 도움이됩니다.


나는 약간의 오타를 교정했다; 나는 당신이 상관하지 않기를 바랍니다. 특히 마지막 글 머리 기호에서 주요 아이디어를 조금 더 눈에 띄게 그리기 위해 형식을 지정하는 방법이있을 수 있습니다. 그러나 나는 또한 지나치게 열중하고 싶지 않았습니다. 건배. :)
추기경

문제 없다. 마지막 글 머리표의 서식을 지정하는 좋은 방법으로 고심했습니다. 필요한 것은 글 머리표 아래에 번호가 매겨진 목록의 계층 구조였습니다. 그러나 나는 그것을하는 방법을 찾을 수 없었습니다.
피터 엘리스

네, 저도 간단히 말 했어요. 왜냐하면 그것은 당신이 의도 한 것처럼 보이기 때문입니다. 나는 그것을하는 방법을 빨리 알아낼 수 없었고 레이아웃을 도매로 변경하는 것을 매우 주저 했으므로 대신 의견을 제시 할 것이라고 생각했습니다. :)
추기경

1
R을 사용하는 일반적인 통계 텍스트로 Wilcox의 책을 추천합니다 (내 답변 stats.stackexchange.com/questions/25632/… 참조 ). 그는 Fisher의 정확한 텍스트를 다루지 않지만 웹의 특정 텍스트에 대한 세부 사항이 충분하므로 유사한 테스트에 대한 해당 책의 배경을 얻은 경우 더 의미가 있습니다. 이 특정 종류의 적합 문제에 대한 더 나은 텍스트가있을 수 있지만 Wilcox의 책은 빨리 당신을 높은 수준으로 끌어 올리는 일반적인 소개로 훌륭하다고 생각합니다.
피터 엘리스

1
와. 당신은 이것에 대해 도대체 대답했습니다. "가장 좋은 스택 교환"이 있었다면 그 안에있을 것입니다.
Colin K
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.