sample_proportions_is_not_a_binomial_distribution:code02
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| sample_proportions_is_not_a_binomial_distribution:code02 [2025/11/12 07:42] – removed - external edit (Unknown date) 127.0.0.1 | sample_proportions_is_not_a_binomial_distribution:code02 [2025/11/12 07:42] (current) – ↷ Page moved from sampling_proportion_is_not_binomial_distribution:code02 to sample_proportions_is_not_a_binomial_distribution:code02 hkimscil | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | < | ||
| + | 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, | ||
| + | # 아래는 이것을 1000번 (k번) 한 것 | ||
| + | numbers.of.red.gumball <- rbinom(k, n, p) | ||
| + | head(numbers.of.red.gumball) | ||
| + | |||
| + | # 아래처럼 n으로 (100개의 검볼이 총 숫자이므로) | ||
| + | # 나눠주면 비율을 구할 수 있다 | ||
| + | proportions.of.rg <- numbers.of.red.gumball/ | ||
| + | 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/ | ||
| + | ps.k <- proportions.of.rg | ||
| + | mean.ps.k <- mean(ps.k) | ||
| + | mean.ps.k | ||
| + | |||
| + | mean.value <- n * p # 이론적인 샘플비율들의 평균 | ||
| + | mean.value | ||
| + | |||
| + | # 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, | ||
| + | abline(v=upper, | ||
| + | |||
| + | a <- pnorm(lower, | ||
| + | b <- pnorm(upper, | ||
| + | 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 | ||
| + | |||
| + | </ | ||
