이항분포
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
'프로그래밍 > R프로그래밍' 카테고리의 다른 글
EDA - 줄기와 잎 그림 (0) | 2024.04.08 |
---|---|
R프로그래밍 - simulation (2) (1) | 2023.12.05 |
R프로그래밍 - simulation (0) | 2023.12.04 |
R프로그래밍 - 오름차순 정렬 (0) | 2023.12.04 |
R프로그래밍 - 사용자 정의 함수 (1) | 2023.11.22 |