확률 밀도 구간 찾기


9

나는 벡터를 가지고

x <- c(1,2,3,4,5,5,5,6,6,6,6,
       7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
       7,7,7,7,7,7,7,7,8,8,8,8,9,9,9,10)

(실제 벡터의 길이는> 10,000)이며 밀도의 90 %가있는 간격을 찾고 싶습니다. 가 quantile(x, probs=c(0.05,0.95), type=5)가장 적절한는 또는 어떤 다른 방법은 무엇입니까?


귀하의 질문은 "... 간격"에 대해 약간 모호합니다. 여러 간격이있을 수 있습니다. 내부 90 %, 즉 각면의 대칭 트리밍에만 관심이 있습니까? 결국, 최소값에서 90 %까지, 데이터의 90 %가 캡처되어 10 %의 경우 최대 값과 유사하게 캡처됩니다.
반복자

가장 짧은 간격, 대칭 간격 (각 끝의 동일한 확률) 또는 다른 것을 찾고 있습니까?
Glen_b-복귀 모니카

답변:


19

위에서 지적한 바와 같이, 밀도의 90 %를 포함하는 간격을 정의하는 방법에는 여러 가지가 있습니다. 아직 지적되지 않은 것은 가장 높은 [posterior] 밀도 간격 ( wikipedia )이며, "끝점의 경험적 누적 밀도 함수 값의 차이가 공칭 확률"인 최단 간격으로 정의됩니다.

library(coda)
HPDinterval(as.mcmc(x), prob=0.9)

3

그것은 가장 간단한 접근법처럼 보입니다. 이 기능은 매우 빠릅니다. 나는 당신이 사용하는 것보다 수백 배 더 큰 샘플에 항상 사용하며, 추정의 안정성은 샘플 크기에 좋을 것입니다.

다른 패키지에는보다 완전한 설명 통계 세트를 제공하는 기능이 있습니다. 내가 사용하는 것은 Hmisc::describe이지만 describe함수가있는 다른 여러 패키지가 있습니다.


3

귀하의 방식은 특히 예의 개별 데이터에서 합리적으로 보입니다.

quantile(x,probs=c(0.05,0.95), type=5)
 5% 95% 
2.8 9.0

그러나 또 다른 방법은 계산 밀도 커널을 사용하는 것입니다.

dx <- density(x)
dn <- cumsum(dx$y)/sum(dx$y)
li <- which(dn>=0.05)[1]
ui <- which(dn>=0.95)[1]
dx$x[c(li,ui)]
[1] 2.787912 9.163246

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