이항분포

n0 = 30; p = 0.1; mu = n0*p; var = n0*p*(1-p)

m = 1000 # 자료 set의 개수(xbar의 개수)
n = 100 # 난수 개수 (표본의 개수)

xbar = c()
for(i in 1:m){
    x = rbinom(n, n0, p) #이항분포에서 추출
    xbar[i] = mean(x)
}

xbar_mu = mean(xbar) ; mu
xbar_var = var(xbar) ; var/n

# histogram
hist(xbar, breaks = "fd", prob = T)

# theoretical curve ; N(mu, sqrt(var/n))
curve(dnorm(x, mu, sqrt(var/n)), add = T)

 

포아송분포

lamb = 5
var = lamb

m = 1000 # 자료 set의 개수 (xbar의 개수) 
n = 100 # 난수 개수 (표본개수)

xbar = c()
for(i in 1:m){
    x = rpois(n, lambda = lamb)
    xbar[i] = mean(x)
}
xbar_mu = mean(xbar) ; lamb
xbar_var = var(xbar) ; var/n

hist(xbar, breaks = "fd", prob = T)
curve(dnorm(x, lamb, sqrt(var/n)), add = T)

 

이항분포의 CLT를 n을 바꿔가며 확인

### n바꾸어서 CLT 확인 ====
p = 0.5 ; q = 1-p

par(mfrow = c(2,2))
for(n in c(10, 100, 1000, 10000)){
    
    p_hat = c()
    for(i in 1:1000){
        num = rbinom(n, 1, p)
        p_hat[i] = mean(num)
    } # for i
    
    CLT = (p_hat - p) / sqrt((p*q)/n)
    
    hist(CLT, probability = T,
         ylim = c(0, 0.5), xlim = c(-3, 3),
         main = paste0("n = ", n))
    
    curve(dnorm(x, 0, 1),
          xlim = c(-3, 3), ylim = c(0, 0.5),
          col = "tomato", lwd = 2,
          main = "X ~ N(0,1)", add = T)
} # for n

+ Recent posts