01 이항분포와 정규분포의 관계
02 단일집단의 모비율 추정/가설검정
03 두 집단의 모비율 차이 검정
01 이항분포와 정규분포의 관계
이항분포 : 이산형 확률변수의 분포
정규분포 : 연속형 확률변수의 분포
=> n(시행횟수이 커지면 이항분포는 정규분포에 근사해짐
** 증명
1) 이항분포를 따르는 난수 추출 ( n = 1000, p = 0.8)
X ~ B(n,p) # 시행횟수, 성공확률
E(X) = np
Var(X) = npq (q = 1-p) # q는 실패확률
v1 <- rbinom(1000, 1000, 0.8)
2) 이항분포 히스토그램 시각화
hist(v1, pro = T)

3) 이론분포 시각화
E(X) = np = 1000*0.8 = 800
Var(X) = npq = 1000*0.8*0.2 = 160
X ~ N(800, 160) # 800을 중심으로 양쪽으로 160의 분산을 가지고 있는 분포가 예상된다.
vx <- seq(760,840,0.01)
vy <- dnorm(vx, mean = 800, sd = sqrt(160))
lines(vx, vy, type = 'l', col = 'red')

02 단일집단의 모비율 추정/가설검정
추정량 ------------------> 모수
p̂ (표본비율) P (모비율)
1. 점추정
E(p̂) = P
* p̂ 은 불편추정량
2. 구간추정
** 추정량의 분포
X : 성공횟수 ~ B(n,p)
n이 커지면 X ~ N( np , npq )
E(X) = np
Var(X) = npq
p̂ : X/n ~ N( P , npq )
* X가 정규분포를 따르기 때문에 n으로 나눈 값도 정규분포를 따르게 된다.
E(p̂) = E(X/n) = E(X)/n = nP/n = P
* 기대값 공식에 의하여 상수항이 그대로 살아나게 됨 : E(X)/n
Var(p̂) = Var(X/n) = Var(X)/n² = nP(1-P)/n² = P(1-P)/n
Z = (p̂ - P) / sqrt(P(1-P) / n) ~ N(0,1)
P는 P0(영가설 가정값)으로 대체 (n ≥ 30)
p̂ 으로 대체 (n < 30)
95% 신뢰구간 : [ p̂ - 1.96 * sqrt(P(1-P) / n), p̂ + 1.96 * sqrt(P(1-P) /n)]
[ 예제 - 모비율 추정 ]
공정에서 랜덤 샘플링을 진행하여 200개 제품에 대해 검사한 결과 15개의 불량품이 발견되었다.
이 공정 전체에 대한 불량률에 대한 점추정, 구간추정(95%)값을 구하여라.
# 1. 점추정
phat = 15/200 = 0.075
# (오차비율을 확인할 수 없으므로 신뢰하기 어려운 단점이 존재)
# 2. 구간추정
# [phat - 1.96 * sqrt(phat * (1-phat) / n), phat + 1.96 * sqrt(phat * (1-phat) / n)]
phat <- 15/200
n <- 200
c(phat - 1.96 * sqrt(phat * (1-phat) / n),phat + 1.96 * sqrt(phat * (1-phat) / n))
# 모비율의 95% 신뢰구간 : [0.03849582 0.11150418]
[ 예제 - 모비율 가설검정 ]
제품을 납품 받을 때 불량률이 10%를 넘기면 납품을 받지 않는다고 한다.
전체 중 랜덤하게 선택한 100개 샘플 중 11개가 불량으로 확인되었다면
납품을 받아야 할지를 유의수준 5%로 결정하세요.
# 1) 검정통계량
phat <- 11/100
p0 <- 0.1
n <- 100
Z* = (phat - p0) / sqrt(p0*(1-p0)/n)
= 0.3333333
기각역 : [1.645, inf]
채택역 : [-inf, 1.645]
# => 귀무가설 채택
# 2) 신뢰구간
P(Z < 1.645) = 0.95
(phat - P) /sqrt(P(1-P)/n) < 1.645
P > phat - 1.645*sqrt(p0*(1-p0)/n)
모비율에 대한 95% 신뢰구간 : P > 0.06065
# 3) 유의확률
P(Z > 0.3333333) = 1 - P(< 0.3333333)
= 1 - pnorm(0.3333333)
= 0.3694414 >>>>> 0.05 => 귀무가설 채택!
[ 연습문제 ]
프로세스에서 200개의 제품을 랜덤 샘플링하여 검사한 결과 15개의 불량품이 발견되었다.
공정 불량률이 0.1보다 작다고 할 수 있는지 유의수준 5%에서 검정하시오.
H0 : p = 0.1
H1 : p < 0.1 (왼쪽검정)
# 1) 검정통계량
x <- 15
n <- 200
phat <- x/n
p0 = 0.1
Z* = (phat - p0) / sqrt(p0*(1-p0)/n) # -1.178511
기각역 : [-inf, -1.645]
채택역 : [-1.645, inf]
# 귀무가설 채택! -> 불량률이 0.1보다 작다고 이야기할 수 없다.
# 2) 유의확률
P(Z < -1.178511) = P(< -1.178511)
= pnorm(-1.178511)
= 0.1192965 >>>> 0.05 귀무가설 채택!
** 모비율 가설검정 함수
prop.test(x, # 성공횟수(X)
n, # 표본크기
p, # 영가설 가정값
alternative = 'two.sided', # 대립가설 형태
conf.level = 0.95, # 신뢰수준
correct = T) # 연속성 보정여부
# ** 연속성 보정 여부
# T : P(Z < 1.5) => P(Z < 2)로 해석되므로 pvalue가 조금 더 커짐(정규분포 근사에 오차 반영) <- 실무에서 주로 사용
# F : P(Z < 1.5) => P(Z < 1.5)로 해석되므로 pvalue가 이론에서 구한 값과 동일함(정규분포 근사 완벽히 가정) <- 이론적인 값을 밝히고자할 때 주로 사용
소표본의 경우 이산분포(예: 이항분포)를 연속분포(정규분포)로 근사할 때 근사 오차가 커진다.
표본 수가 적으면 이항분포의 계단형(이산적) 특성이 강하게 나타나는데, 이를 연속분포(정규분포)로 근사하면 실제 확률과 차이가 커진다.
x <- 15
n <- 200
phat <- x/n
p0 = 0.1
result <- prop.test(x, n, p=0.1, alternative = 'less', correct = F)
result$statistic # 카이제곱 통계량이기에 제곱한 값
sqrt(result$statistic) # 1.178511 (위 결과와 절댓값이 동일 -> 부호는 phat과 p0의 크기에 따라 확인 가능)
result$p.value # 0.1192964 (위 결과와 동일)
03 두 집단의 모비율 차이 검정
* 두 집단은 서로 독립적이라고 가정
추정량(불편추정량) ----------------------------> 모수
phat1 - phat2 p1 - p2
E(phat1 -phat2) = p1 - p2
phat1 - phat2 ~ N( p1 - p2 , P1(1-P1)/n + P2(1-P2)m )
E(phat1 - phat2) = E(phat1) - E(phat2) = p1 - p2
Var(phat1 - phat2) = Var(phat1) + Var(phat2)
= P1(1-P1)/n + P2(1-P2)m
Z* = (phat1 - phat2) - (p1-p2) / sqrt(p1(1-p1)/n + p2(1-p2)/m)
= (phat1 - phat2) / sqrt(p(1-p)/n + p(1-p)/m)
* p (합동표본비율) = (X1 + X2) / (n+m)
+) 1. 검정통계량
2. 모수에 대한 신뢰구간
3. 유의확률
> z분포는 임계값이 고정되어 있어 검정통계량만으로도 기각 여부를 쉽게 판단할 수 있다.
> 그러나 t분포, 카이제곱분포, F분포는 자유도 등에 따라 분포가 달라지므로 임계값을 바로 알기 어렵다. (따라서 모수에 대한 신뢰구간 계산이 어렵다.)
> 따라서 검정통계량을 구한 뒤, 유의확률(p-value)을 계산하여 가설의 기각 여부를 판단한다.
> 실무에서는 z.test, t.test, prop.test 등을 사용하지만, 이러한 기본 흐름을 이해하는 것이 중요하다.
[ 연습 문제 ]
동일한 제품을 생산하는 두 라인이 있는데 두 라인에서 생산하는 불량률은 서로 같은 것으로 알려져 있다.
하지만 최근 품질관리팀에서 불량률이 서로 다른 의견이 제시되었다.
두 라인의 불량률이 같은지를 유의수준 5%에서 검정하시오.
두 라인 표본 수 : 130, 150
두 라인의 불량품 수 : 5, 8
H0 : p1 - p2 = 0
H1 : p1 - p2 ! = 0
# 1) 검정통계량
phat1 <- 5/130 # 첫 번째 불량률
phat2 <- 8/150 # 두 번째 불량률
n <- 130 # 첫 번째 샘플사이즈
m <- 150 # 두 번째 샘플사이즈
p <- (5+8)/(130+150)
Z* = (phat1 - phat2) - 0 / sqrt(p1(1-p1)/n + p2(1-p2)/m)
= (phat1 - phat2) / sqrt(p*(1-p)/n+p*(1-p)/m) # <- p1 = p2를 가정하였을 때
= -0.5898375
채택역 : [-1.96, 1.96]
# => 귀무가설 채택!
# 따라서 두 라인의 불량률이 서로 다르다고 말할 수 없다.
# 2) 유의확률
P(Z < -0.5898375) = pnorm(-0.5898375)
= 0.2776498 >>> 0.025 => 귀무가설 채택
# 3) prop.test
result <- prop.test(c(5,8), c(130,150), correct = F)
sqrt(result$statistic) # 0.5898375
result$p.value # alpha와 비교하기 위해서 0.552996
# 0.552996 >>> 0.05 => 귀무가설 채택!
> prop.test(c(5,8), c(130,150), correct = F)
2-sample test for equality of proportions without continuity correction
data: c(5, 8) out of c(130, 150)
X-squared = 0.34791, df = 1, p-value = 0.5553
alternative hypothesis: two.sided
95 percent confidence interval:
-0.06371665 0.03397306
sample estimates:
prop 1 prop 2
0.03846154 0.05333333
[ 연습 문제 ]
도시와 시골에 사는 사람들의 흡연율을 비교하면 도시에 사는 사람의 흡연율이 더 높다라는 연구 결과에 대한 가설 검정을 유의수준 5%에서 검정하시오.
도시와 시골의 표본 수 : 200, 150
도시와 시골이 흡연자 수 80, 50
H0 : p1 - p2 = 0
H1 : p1 - p2 > 0 (오른쪽 검정)
# 1) 검정통계량
phat1 <- 80/200
phat2 <- 50/150
n <- 80
m <- 50
p <- (80+50) / (200+150)
Z* = (phat1 - phat2) / sqrt(p*(1-p)/200 + p*(1-p)/150) # 1.277381
# 채택역 : [-inf, 1.645]
# 귀무가설 채택! : 도시흡연율과 시골흡연율의 차이는 유의하다고 볼 수 없음
# 2) 유의확률
P(Z > 14.05119) = 1 - pnorm(1.277381)
# 3) prop.test
result <- prop.test(c(80,50), c(200,150), alternative = 'greater', correct = F)
sqrt(result$statistic) # 1.277381
result$p.value # 0.1007339
04 카이제곱 분포
- 분산과 관련된 분포 (단일 집단의 모분산 추정 시 사용)
- 범주형 자료 분석과 관련된 분포 (적합도 검정, 독립성 검정)
- Z² ~ Chisq(1)
- 0 이상의 값만 가짐
- 왼쪽으로 치우친 (오른쪽 길이가 긴) 양의 왜도의 분포를 가짐
- 자유도가 커질수록 정규분포에 근사해짐
X ~ Chisq(k), k : 자유도
x가 어떠한 형태로 정의되는지에 따라 k가 될 수도 있고 n-1이 될 수도 있고 샘플사이즈(n)가 될수도 있다.
-01 카이제곱 분포 시각화
vx <- seq(0, 50, 0.01)
vy1 <- dchisq(vx, df = 1) # df:1
vy2 <- dchisq(vx, df = 5) # df:5
vy3 <- dchisq(vx, df = 10) # df:10
vy4 <- dchisq(vx, df = 20) # df:20
plot(vx, vy1, type = 'l', lwd = 2, col = 2,
xlab = 'chisq', ylab = '', ylim = c(0,0.2))
lines(vx, vy2, type = 'l', lwd = 2, col = 3)
lines(vx, vy3, type = 'l', lwd = 2, col = 4)
lines(vx, vy4, type = 'l', lwd = 2, col = 5)
legend('topright', inset = c(0.02,0.02),
legend = c('df:1','df:5','df:10','df:20'),
lty = 1, lwd = 2, col = 2:5)

-02 정규분포와 카이제곱분포와의 관계
정규분포를 따르는 확률변수 : Z
1. Z² ~ Chisq(1)
set.seed(0)
v1 <- rnorm(100)
hist(v1^2, prob = T) # 난수가 가지는 실제 분포
vx <- seq(0,6,0.1)
vy <- dchisq(vx, df = 1)
lines(vx, vy, type = 'l', col = 'red')

2. 정규분포를 따르는 난수 n개를 제곱하여 더한 확률변수
ΣZ² ~ Chisq(n)
vsum <- c()
for (i in 1:1000) {
v1 <- rnorm(100)
vsum <- c(vsum, sum(v1^2))
}
hist(vsum, prob=T, ylim = c(0,0.03)) # 난수가 갖는 실제분포
vx <- seq(from = 60, to = 160, by = 0.01)
vy <- dchisq(vx, df = 100)
lines(vx, vy, type = 'l', col = 'red')

'아이티윌_데이터 분석 55기 > 강의내용 필기_통계 및 분석' 카테고리의 다른 글
| #8 8일차_가설검정 절차, 문제풀이 (0) | 2026.04.22 |
|---|---|
| #7 7일차_카이제곱검정, F분포, ANOVA (0) | 2026.04.21 |
| #5 5일차_모집단의 가설검정, 두 집단의 모평균 차이 가설검정 (0) | 2026.04.17 |
| #4 4일차_가설검정, t-분포 (0) | 2026.04.16 |
| #3 3일차_이산확률분포, 중심극한정리, 모평균 추정, 가설검정 (0) | 2026.04.15 |