저는 연령대가 다른 어린이를위한 인체 치수의 분포 (어깨 폭과 같은)에 대한 정보를 가지고 있습니다. 각 연령과 치수에 대해 평균 표준 편차가 있습니다. (또한 8 개의 Quantile이 있지만 원하는 것을 얻을 수 없다고 생각합니다.)
각 차원마다 길이 분포의 특정 Quantile을 추정하고 싶습니다. 각 치수가 정규 분포를 따른다고 가정하면 평균 및 표준 편차를 사용하여이를 수행 할 수 있습니다. 분포의 특정 Quantile과 관련된 값을 얻는 데 사용할 수있는 예쁜 공식이 있습니까?
그 반대의 경우는 매우 쉽습니다. 특정 값의 경우 각 정규 분포 (나이)에 대한 값의 오른쪽 영역을 가져옵니다. 결과를 합산하고 분포 수로 나눕니다.
업데이트 : 다음은 그래픽 형식의 동일한 질문입니다. 각 유색 분포가 정규 분포를 따른다고 가정합니다.
또한 분명히 다른 길이의 무리를 시도하고 내 정밀도를 위해 원하는 Quantile에 충분히 가까운 길이를 얻을 때까지 계속 변경 할 수 있습니다. 이보다 더 좋은 방법이 있는지 궁금합니다. 그리고 이것이 올바른 접근법이라면, 그 이름이 있습니까?
답변
불행하게도, 표준 법선 (정규는 위치-규모 패밀리이기 때문에 다른 모든 법칙을 결정할 수 있음) Quantile 함수는 닫힌 형태 (즉, ‘예쁜 공식’)를 허용하지 않습니다. 닫힌 형태에 가장 가까운 것은 표준 정규 양자 함수가 미분 방정식을 만족하는 함수 입니다.
초기 조건 및 입니다. 대부분의 컴퓨팅 환경에는 정상 Quantile 함수를 수치 적으로 계산하는 함수가 있습니다. R에서는 다음을 입력합니다.
qnorm(p, mean=mu, sd=sigma)
분포 의 번째 분위수 를 구합니다 .
편집 : 문제에 대한 수정 된 이해로 데이터는 법선 혼합에서 생성되므로 관찰 된 데이터의 밀도는 다음과 같습니다.
여기서 이고 각 는 평균 및 표준 편차 정규 밀도입니다 . 관찰 된 데이터의 CDF는 다음과 같다.
여기서 는 평균 및 표준 편차 정규 CDF입니다 . 적분이 유한하기 때문에 적분과 합산을 서로 바꿀 수 있습니다. 이 CDF는 컴퓨터에서 계산하기에 충분하고 연속적이므로 Quantile 함수라고도 하는 역 CDF 은 라인 검색을 통해 계산할 수 있습니다. 구성 분포의 Quantile의 함수로서 법선 혼합의 Quantile 함수에 대한 간단한 공식이 없으므로이 옵션을 기본값으로 사용합니다.μ i σ i F – 1
다음 R 코드 는 줄 검색을 위해 이분법을 사용하여 을 수치 적으로 계산 합니다. F_inv () 함수는 Quantile 함수입니다. 각 및 풀어야 할 Quantile 포함하는 벡터를 제공해야합니다 . w i , μ i , σ i p
# evaluate the function at the point x, where the components
# of the mixture have weights w, means stored in u, and std deviations
# stored in s - all must have the same length.
F = function(x,w,u,s) sum( w*pnorm(x,mean=u,sd=s) )
# provide an initial bracket for the quantile. default is c(-1000,1000).
F_inv = function(p,w,u,s,br=c(-1000,1000))
{
G = function(x) F(x,w,u,s) - p
return( uniroot(G,br)$root )
}
#test
# data is 50% N(0,1), 25% N(2,1), 20% N(5,1), 5% N(10,1)
X = c(rnorm(5000), rnorm(2500,mean=2,sd=1),rnorm(2000,mean=5,sd=1),rnorm(500,mean=10,sd=1))
quantile(X,.95)
95%
7.69205
F_inv(.95,c(.5,.25,.2,.05),c(0,2,5,10),c(1,1,1,1))
[1] 7.745526
# data is 20% N(-5,1), 45% N(5,1), 30% N(10,1), 5% N(15,1)
X = c(rnorm(5000,mean=-5,sd=1), rnorm(2500,mean=5,sd=1),
rnorm(2000,mean=10,sd=1), rnorm(500, mean=15,sd=1))
quantile(X,.95)
95%
12.69563
F_inv(.95,c(.2,.45,.3,.05),c(-5,5,10,15),c(1,1,1,1))
[1] 12.81730