23 *장 통계적 모의실험 - kocwcontents.kocw.net/kocw/document/2016/chungbuk/najonghwa/... ·...
TRANSCRIPT
장 통계적 모의실험23 *
난수발생원리 역변환법23.1 :
특정 분포로부터의 난수 정확히는 확률변량 를 발생시키는 원리는 매우 다양하다 이 가운데( ) .
역변환법 을 소개하면 다음 그림 과 그림 와(inverse transformation method) [ 23.1] [ 23.2]
같다.
아래의 그림 은 연속형 분포로부터의 난수 발생 원리를 나타낸다 균일분포[ 23.1] . 로
부터의 난수 에 대해 해당 누적분포함수의 역함수 값을 취하면 이 값들이 해당분포로부터의,
난수 엄밀히는 확률변량 가 된다 이때 균일분포로부터의 난수는 범위에서 골고루 발생( ) . (0, 1)
되는 것이 이상적이나 이들의 역함수 값들은 분포의 특징에 따라 집중도가 달라질 것이다, .
그림[ 23.1] 로부터의 난수 발생 원리 역변환법 연속형의 경우( : )
아래의 그림 는 이산형 분포로부터의 난수 발생 원리를 나타낸다 연속형인 경우의 원리[ 23.2] .와 유사하게 확률의 크기에 비례하게 해당 점들의 발생빈도가 높아진다, .
그림[ 23.2] 로부터의 난수 발생 원리 역변환법 이산형의 경우( : )
표준정규분포로부터 난수 발생> ##초기값 지정> set.seed(10) #
> r <- rnorm(10000, 0, 1)> summary(r)
Min. 1st Qu. Median Mean 3rd Qu. Max.-3.532000 -0.673400 -0.005305 0.001338 0.678600 3.813000
히스토그램> hist(r, prob=T) #> curve(dnorm(x), from=-4, to=4, add=T)
이항분포로부터 난수 발생> ##표본의 크기> n <- 500 #
난수의 초기값 설정> set.seed(1032) #> U <- rbinom(n, 20, 0.5)> hist(U, breaks=0:20 - 1/2,
border="red", col="pink",xlab="Random variates from B(20, 0.5): n=500")
이항분포의 확률밀도함수> ##> x <- 0:20
이항분포의 확률 계산> fx <- dbinom(x, 20, 0.5) #> lines(x, n*fx, type="h", col="blue", lwd=2)> points(x, n*fx, cex=2)
모의실험 예제23.2
통계량의 분포 구하기23.2.1
일반적으로 특정 통계량의 이론적 또는 근사적 분포는 모집단 분포에 따라 달라지며 그 유도( ) ,가 어려운 경우가 많다 여기서는 관심 통계량의 분포를 난수에 기반을 둔 모의실험을 통해.구하는 과정을 소개한다.
예제 표준정규분포로부터 크기기 인 확률표본의 사분위수범위 의 분포와 상위[ 1] 100 (IQR) 5%분위수를 모의실험을 통해 추정하는 과정은 다음과 같다.
> library(IPSUR)> set.seed(1000)> iqr <- replicate(n=10000, IQR(rnorm(100)))> hist(iqr)
> summary(iqr)Min. 1st Qu. Median Mean 3rd Qu. Max.
0.7968 1.2230 1.3260 1.3290 1.4310 1.9750
> quantile(iqr, 0.95)95%
1.589315□
예제 응용 예제 관심 통계량의 분포 구하기[ 2] ( )
연간 보험료 가 만원 년 이고 보험가입자가 만 명이라 하자 연간 지출비용으(Premium) 50 (/ ) , 2 .로는 고정 또는 지출비용 이 억이고 보험 가입자 유지비가(overhead fixed) (Expense) 10 ,
원 건 이라 하자 보험의 청구금액 은5000 (/ ) . (Claim Size) 분포를 따르고 청구건수 는, (Claim Count) 을 따른다고 하자 이 보험 포트폴리오에.대해 이익 손실 을 다음과 같이 정의할 때 이익 손실의 분포를 구하여라, / (Profit/Loss: P/L) , / .
이익 손실 총보험료/ (P/L) = 총보험청구금액 총지출비용( + )= 만원 ×만명 억원 천원 × 만명
여기서,
∼ ∼ 이고, ′ &
은 독립이다.
풀이 랜덤합( ) 의 분포를 직접 유도하는 것은 매우 복잡하다 모의실험을 이용하면 이 문제.
를 쉽게 해결할 수 있다. 분포로부터의 난수발생은,
≡ 로부
터, = 임 역변환법 을 이용한다 모의실험을 통해 이익 손실의 분포( ) . /
를 구하는 프로그램은 다음과 같다R .
프로그램> ## R
> claim<- function(n, theta, alpha, lambda){
n.claims <- rpois(n, lambda)
S.N <- rep(0, n)
for (i in 1:n) {
u <- runif(n.claims[i])
r.pareto <- theta * ((1-u)^(-1/alpha))
파레토분포로부터의 난수발생 역변환법 이용# ( )
S.N[i] <- sum(r.pareto)
}
출력값S.N #
}
> claim.size <- claim(100000, 80000, 1.5, 1500)
> profit.loss <- 5000*2-(claim.size/1000000+1000+50*2)
단위 백만 원> ## : (million)
> par(mfrow=c(1,2))
> hist(claim.size/1000000, br=50, xlab="in millions", ylab="frequency",
main="Distribution of Aggregate Claim", freq=FALSE)
> hist(profit.loss, br=50, xlab="in millions", ylab="frequency", main="Distribution of
Profit/Loss", freq=FALSE)
참고로 모의실험을 통해 총 청구금액의 평균을 추정하면 다음과 같다, .
> mean(claim.size/1000000)[1] 359.4461
모의실험에 의한 위의 결과는 이론적으로 유도된 정확한 결과와 거의 일치한다 즉. , ∼ 일 때,
×
이므로 통계이론에 의하면,
× ⋅
백만원
이다.□
몬테칼로 적분23.2.2
방법 몬테칼로 방법(a) 1 - Hit or Miss
몬테칼로 방법을 설명하면 다음과 같다 아래 그림에서 사각형 내Hit or Miss (Monte Carlo) .에 많은 점을 랜덤하게 발생 시킨 후 그 점들의 좌표값에 대해 함수값들을 구한다 구해진, x .함수값 중 해당 점의 좌표값 보다 작은 값을 가지는 점 한 점 의 비율을 구한다 이 비율y (hit ) .을 사각형의 면적에 곱하여 곡선 아래쪽의 면적 적분값 을 근사하는 방법이다( ) .
그림 몬테칼로 적분[ 23.3] Hit or Miss
예제 정적분[ 3]
를 몬테칼로 방법으로 근사하면 다음과 같다Hit or Miss .
> f <- function(x) sqrt(1-x^2)> s <- seq(-1, 1, by=0.001)> plot(s, f(s))
함수를 이용하면 보다 편리하게 그림을 그릴 수 있음> ## curve()> fun <- function(x) sqrt(1-x^2)> curve(fun, -1, 1)
적분구간에서 함수의 최댓값> ##
> c <- ceiling(max(f(s)))[1] 1
> n <- 1000000> set.seed(100)> x <- runif(n, -1, 1)> y <- c*runif(n, 0, 1)
전체 난수에서 의 비율> R <- sum(y < f2(x))/n # hit> (b-a)*c*R[1] 1.57063
정확한 값> ##> pi/2[1] 1.570796
함수를 이용한 위의 적분 결과는 다음과 같다> ## integrate() .> f <- function(x) sqrt(1-x^2)> integrate(f, -1, 1)1.570796 with absolute error < 1e-09
□
방법 표본평균 몬테칼로 방법(b) 2 -
표본평균 몬테칼로 방법은(sample mean or crude)
⋅
⋅ ∼
이 성립하므로, 로부터의 난수 ⋯을 이용하여 다음과 같이,
≈ ⋅
으로 근사 추정 하는 방법이다( ) .
예제 정적분[ 4]
의 값을 표본평균 몬테칼로 방법으로 근사하면 다음과 같다.
> u <- runif(100000, min=2, max=5)> mean(u^5)*(5-2)[1] 2590.415
위 결과는 정확한 값 와 거의 일치한다2593.5 .
함수를 이용한 위의 적분 결과는 다음과 같다> ## integrate() .> f <- function(x) x^5> integrate(f, 2, 5)2593.5 with absolute error < 2.9e-11
□
이 절에서 다루어진 난수 확률변량 에 기반을 둔 몬테칼로 적분 방법은 함수의 적( ) integrate()용이 어려운 비정칙 함수나 다중적분 의 문제도 쉽게 해(non-regular) (multiple integration)결할 수 있는 장점을 가진다 특히 베이지안 통계에서는 깁스 샘플링 등 매우 다양. , MCMC,한 난수 발생 기법을 이용하여 복잡한 적분 추정 문제를 해결한다( ) .
중심극한정리 모의실험23.2.3
중심극한정리는 모집단의 분포 형태에 관계없이 표본평균의 분포가 표본의 수가 커지면 정, ,
규분포로 수렴한다는 정리이다 이러한 통계적 이론을 수학적인 증명이 아닌 모의실험을 통해.
확인해 볼 수 있다 아래의 예는 모집단 분포를 특정 분포로 가정하고 이 정리가 성립되는. ,
과정을 보여준다.
예제 분포로부터의 확률표본에 기초한 표본평균의 분포가 표본의 크기가[ 5] Gamma(0.5, 1)
커짐에 따라 정규분포로 수렴하는지를 모의실험을 통해 확인한다.
표본의 크기> n <- c(1, 10, 30) # n=
주어진 표본 크기에서의 반복수> r <- 10000 # r=
> ## Gamma(alpha, beta)
> alpha <- 0.5
> beta <- 1
> mu <- alpha*beta
> sigma <- sqrt(alpha)*beta
> for (i in 1:length(n)) {
xbar <- rep(NA, r)
sxbar <- sigma/sqrt(n[i])
for (j in 1:r) {
분포로부터 크기 의 난수 발생# Gamma(alpha, beta) n
x <- rgamma(n[i], shape=alpha, scale=beta)
xbar[j] <- mean(x)
}
표본평균의 히스토그램#
hist(xbar, prob=T)
nor.pdf <- dnorm(seq(mu-3*sxbar, mu+3*sxbar, 0.1), mu, sxbar)
lines(seq(mu-3*sxbar,mu+3*sxbar, 0.1), nor.pdf, lty=2, col="red")
}
(a) 인 경우
(b) 인 경우
(c) 인 경우
그림 분포로부터 크기[ 23.4] Gamma(0.5, 1) 인 표본평균의 분포
□
위의 중심극한정리에 대한 예제에서와 같이 난수에 기반을 둔 통계적 모의실험을 통해 특정통계이론이 성립함을 확인 또는 검증 하거나 이론전개가 어렵거나 불가능한 경우에 대한 결과( ) ,를 추정할 수 있다.
장 연습문제23
모의실험의 재현성을 위해 함수를 사용하여라set.seed() .※
자유도가 인1. 3 분포로부터 크기- ( 가 인 표본평균과 표본중앙값의 분포를 모의실험을) 10
통해 비교하여라 또한 어느 통계량의 산포가 더 큰지를 말하여라. , .
2. ⋯을 서로 독립이며 균일분포 를 따르는 확률변수라고 하자 이때 표본.
평균 의 분포를 이론적으로 유도하는 것은 쉽지 않다 모의실험을 통해. 의 분포를 근사
하고자 한다.
표본의 크기를 늘려가며(a) 의 분포를 구해보아라.
표본의 크기가 어느 정도에서 정규분포를 따른다고 할 수 있는지를 결정하여라(b) .
적분3.
을 몬테칼로 방법으로 근사하고자 한다.
방법으로 근사하여라(a) Hit-or-Miss .
표본평균 몬테칼로 방법으로 근사하여라(b) .
모집단이 정규분포일 때 통계량4. ,
의 분포는 표준정규분포를 따른다 만약 모표.
준편차 를 표본표준편차 로 대체할 때 이 통계량,
의 분포는 의 분포와는 다
르게 된다.
표본의 크기를(a) 으로 할 때, 의 분포가 정규분포를 따르는지를 정규확
률그림으로 확인하여라.
표본의 크기가 얼마일 때(b) 의 분포가 정규분포를 따르는지를 결정하여라.