b:head_first_statistics:estimating_populations_and_samples:mean_of_proportions_code
set.seed(101) k <- 1000 n <- 100 p <- 1/4 q <- 1-p # in order to clarify what we are doing # X~B(n,p) 일 때, 100개의 검볼을 샘플링해서 # red gumball을 세봤더니 rbinom(1,n,p) # 24개 였다라는 뜻 # 아래는 이것을 1000번 (k번) 한 것 numbers.of.red.gumball <- rbinom(k, n, p) head(numbers.of.red.gumball) # 아래처럼 n으로 (100개의 검볼이 총 숫자이므로) # 나눠주면 비율을 구할 수 있다 proportions.of.rg <- numbers.of.red.gumball/n ps.k <- proportions.of.rg head(ps.k) mean.ps.k <- mean(ps.k) mean.ps.k hist(ps.k) #### set.seed(101) k <- 1000000 n <- 100 p <- 1/4 q <- 1-p numbers.of.red.gumball <- rbinom(k, n, p) # 아래처럼 n으로 (100개의 검볼이 총 숫자이므로) # 나눠주면 비율을 구할 수 있다 proportions.of.rg <- numbers.of.red.gumball/n ps.k <- proportions.of.rg mean.ps.k <- mean(ps.k) mean.ps.k # variance? var.cal <- var(ps.k) var.cal var.value <- (p*q)/n var.value # standard deviation sd.cal <- sqrt(var.cal) sd.cal sd.value <- sqrt(var.value) sd.value se <- sd.value # 우리는 standard deviation of sample # proportions을 standard error라고 부른다 # 위의 histogram 에서 mean 값은 이론적으로 p # standard deviation값은 se qnorm(.975) # 우리는 평균값에서 +- 2*sd.cal 구간이 95%인줄 안다. se2 <- se * qnorm(.975) # 즉, 아래 구간이 lower <- p-se2 upper <- p+se2 lower upper hist(ps.k) abline(v=lower, col=2, lwd=2) abline(v=upper, col=2, lwd=2) a <- pnorm(lower, mean=p, sd=se) b <- pnorm(upper, p, se) b-a lower upper # 위의 그래프가 의미하는 것은 rbinom(1, n, p) / n로 # 얻은 하나의 샘플의 proportion의 (비율) 값은 # 95/100 확률로 lower에서 upper사이에 있을 것이라는 # 뜻 rbinom(1, n, p)/n rbinom(1, n, p)/n k <- 100 sa1 <- rbinom(k, n, p) / n head(sa1) sa1 < lower sa1 > upper table(sa1 < lower) table(sa1 > upper) table(sa1 < lower | sa1 > upper) table(sa1 < lower | sa1 > upper) / k
b/head_first_statistics/estimating_populations_and_samples/mean_of_proportions_code.txt · Last modified: by hkimscil
