잘린 분포는 무엇을 의미합니까?


14

동적 시스템의 일반적인 미분 방정식 모델의 감도 분석에 관한 연구 논문에서 저자는 모델 매개 변수의 분포를 정규 분포 (평균 = 1e-4, 표준 = 3e-5)로 [0.5e -4 1.5e-4]. 그런 다음 모형의 시뮬레이션에이 잘린 분포의 표본을 사용합니다. 잘린 분포와이 잘린 분포의 표본이 있다는 것은 무엇을 의미합니까?

이 작업을 수행하는 두 가지 방법이 있습니다.

  • 정규 분포에서 표본을 추출하지만 시뮬레이션 전에 지정된 범위를 벗어나는 모든 임의의 값은 무시하십시오.
  • 어떻게 든 특별한 "Truncated Normal"분포를 구하여 표본을 얻습니다.

이것들은 유효하고 동등한 접근법입니까?

첫 번째 경우, 샘플의 실험적인 cdf / pdf를 플로팅하면 곡선이 까지 확장되지 않기 때문에 정규 분포처럼 보이지 않습니다 ±.

답변:


16

분포를 자르려면 값을 구간으로 제한하고 밀도를 다시 정규화하여 해당 범위의 적분이 1이되도록합니다.

따라서 분포를 구간 ( a , b ) 로 자르는 것은 밀도를 갖는 랜덤 변수를 생성하는 것입니다(μ,σ2)(a,b)

,(엑스)=ϕμ,σ2(엑스)ϕμ,σ2(와이)와이나는{엑스(,)}

여기서 N ( μ , σ 2 ) 밀도입니다. 이 밀도에서 여러 가지 방법으로 샘플링 할 수 있습니다. 이것을 수행하는 한 가지 방법 (내가 생각할 수있는 가장 간단한 방법)은 N ( μ , σ 2 ) 값 을 생성 하고 ( a , b ) 밖에있는 값을 버리는 것입니다.ϕμ,σ2(엑스)(μ,σ2)(μ,σ2)(,)당신이 언급 한대로 간격. 예, 나열된 두 글 머리 기호는 동일한 목표를 달성합니다. 또한이 분포의 변수에 대한 경험적 밀도 (또는 히스토그램)가 까지 확장되지 않을 것 입니다. 물론 ( a , b ) 로 제한됩니다 .±(,)


17

확률 ϱ = b 일 때 결과가 구간 ( a , b ) 내에 속할 때까지 정규 분포 에서 시뮬레이션하는 것이 좋습니다N(μ,σ2)(a,b) 는 충분히 크다. 너무 작 으면 한 번의 수락에 대한 평균 추첨 ​​횟수가 1 / ϱ 이기 때문에이 절차가 너무 비쌉니다.

ϱ=abφμ,σ2(x)dx
1/ϱ

설명한 바와 같이 몬테 카를로 통계 방법 (제 2 실시 예 2.2)에서뿐만 아니라 내 arXiv 종이 이 정상적인 절단 시뮬레이션하는보다 효율적인 방법은 지수 함수에 기초하여 수락 거부있어서 사용하는 분포.E(α)

일반성을 잃지 않고 경우 σ = 1을 고려하십시오 . 경우 B = + , 전위 분포가 쓸모 변환 지수 분포 인 E ( α , ) 밀도는 g α ( Z ) = α E - α ( Z - )μ=0σ=1b=+E(α,a) P의 (A)는 , ( Z ) / g α ( Z ) α E - α ( Z - ) E - (Z) 2 / 2 다음으로 묶여 EXP ( α 2 / 2 - α ) 만약 α > 의해 특급 ( - 2 / 2 ) 그렇지. 해당 (상한) 경계는

gα(z)=αeα(za)Iza.
pa,(z)/gα(z)eα(za)ez2/2
exp(α2/2αa)α>aexp(a2/2) 첫 번째 표현은α=1로최소화됩니다
{1/αexp(α2/2αa)if α>a,1/αexp(a2/2)otherwise.
반면 ~ α = 최소화 번째 결합. 따라서 α 의 최적 선택은(1)입니다.
α=12a+12a2+4,(1)
α~=aα

2
UUnif(Φ(a),Φ(b))X=Φ1(U)

2
a0

1
시안이 맞습니다, @bnaul. qnormR 루프에서 실행 하는 것은 좋지 않습니다.
Stéphane Laurent

@ Xi'an : 사실이지만 이러한 기능은 임의의 정밀도를 갖도록 설계 될 수 있습니다.
Neil G

9

정규 분포에서 표본을 추출하지만 시뮬레이션 전에 지정된 범위를 벗어나는 모든 임의의 값은 무시하십시오.

이 방법은 정확하지만 @ Xi'an이 그의 답변에서 언급했듯이 범위가 작을 때 (보다 정확하게는 정규 분포에서 측정이 작을 때) 시간이 오래 걸립니다.

에프1()FUUnif(0,1)FG(a,b)G1(U)UUnif(G(a),G(b))

G1G1G1 .

중요도 샘플링을 사용하여 잘린 분포 시뮬레이션

N(0,1)G : one simply has G(q)=arctan(q)π+12 and G1(q)=tan(π(q12)). Therefore, the truncated Cauchy distribution is easy to sample by the inversion method and it is a good choice of the instrumental variable for importance sampling of the truncated normal distribution.

After a bit of simplifications, sampling UUnif(G(a),G(b)) and taking G1(U) is equivalent to take tan(U) with UUnif(arctan(a),arctan(b)):

a <- 1
b <- 5
nsims <- 10^5
sims <- tan(runif(nsims, atan(a), atan(b)))

Now one has to calculate the weight for each sampled value xi, defined as the ratio ϕ(x)/g(x) of the two densities up to normalization, hence we can take

(엑스)=특급(엑스2/2)(1+엑스2),
그러나 로그 가중치를 취하는 것이 더 안전 할 수 있습니다.
log_w <- -sims^2/2 + log1p(sims^2)
w <- exp(log_w) # unnormalized weights
w <- w/sum(w)

가중 샘플 (엑스나는,(엑스나는)) 모든 간격의 측정 값을 추정 할 수 있습니다 [,V] 목표 분포 하에서 구간 내에 포함 된 각 표본 값의 가중치를 합산합니다.

u <- 2; v<- 4
sum(w[sims>u & sims<v])
## [1] 0.1418

목표 누적 함수의 추정치를 제공합니다. spatsat패키지를 사용하여 신속하게 가져와 플롯 할 수 있습니다 .

F <- spatstat::ewcdf(sims,w)
# estimated F:
curve(F(x), from=a-0.1, to=b+0.1)
# true F:
curve((pnorm(x)-pnorm(a))/(pnorm(b)-pnorm(a)), add=TRUE, col="red")

ewcdf

# approximate probability of u<x<v:
F(v)-F(u)
## [1] 0.1418

물론 샘플 (엑스나는)는 분명히 목표 분포의 표본이 아니라 도구 적 코시 분포의 표본이며, 예를 들어 다항식 샘플링을 사용하여 가중 리샘플링 을 수행하여 목표 분포의 표본을 얻습니다 .

msample <- rmultinom(1, nsims, w)[,1]
resims <- rep(sims, times=msample)
hist(resims) 

hist

mean(resims>u & resims<v)
## [1] 0.1446

다른 방법 : 빠른 역변환 샘플링

Olver와 Townsend 는 광범위한 연속 분포를위한 샘플링 방법을 개발했습니다. Matlabchebfun2 라이브러리와 JuliaApproxFun 라이브러리 에서 구현됩니다 . 최근 에이 라이브러리를 발견했으며 매우 샘플링 된 것으로 보입니다 (임의의 샘플링뿐만 아니라). 기본적으로 이것은 반전 방법이지만 cdf와 역 cdf의 강력한 근사값을 사용합니다. 입력은 정규화까지의 목표 밀도 함수입니다.

샘플은 다음 코드로 간단하게 생성됩니다.

using ApproxFun
f = Fun(x -> exp(-x.^2./2), [1,5]);
nsims = 10^5;
x = sample(f,nsims);

아래에서 확인한 바와 같이, 예상 간격 측정 값을 산출합니다 [2,4] 중요도 샘플링으로 이전에 얻은 것과 가깝습니다.

sum((x.>2) & (x.<4))/nsims
## 0.14191
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.