# [ 연습 문제 ]
# 화학공정 온도 100, 150, 200, 250도 4개의 수준에서 랜덤하게 반복 실험하여
# 수율(양품비율)을 측정, 각 온도별로 수율값이 달라지는지
# (온도의 변화가 수율에 영향을 미치는지 검정)
# 관찰대상 : 각 온도별 양품수
a100 <- c(79, 83, 88, 78, 75)
a150 <- c(81, 89, 91, 84, 86, 82)
a200 <- c(86, 91, 93, 90, 89)
a250 <- c(76, 81, 82, 79)
# 가설
# 영가설) 세집단의 모평균이 같다(온도의 변화가 수율에 영향을 미치지 않는다)
# 대립가설) 세집단의 모평균이 다르다(온도의 변화가 수율에 영향을 미친다)
[ 내 답변 ]
# SST = SSE + SSt
df1 <- c(a100, a150, a200, a250)
#
se100 <- sum((a100-mean(a100))^2)
se150 <- sum((a150-mean(a150))^2)
se200 <- sum((a200-mean(a200))^2)
se250 <- sum((a250-mean(a250))^2)
n <- length(df1)
k <- 4
n100 <- length(a100)
n150 <- length(a150)
n200 <- length(a200)
n250 <- length(a250)
# MSE
sse <- se100 + se150 + se200 + se250
mse <- sse / (n-k)
# SSt
st100 <- n100 * (mean(a100) - mean(df1))^2
st150 <- n150 * (mean(a150) - mean(df1))^2
st200 <- n200 * (mean(a200) - mean(df1))^2
st250 <- n250 * (mean(a250) - mean(df1))^2
sst <- st100 + st150 + st200 + st250
mst <- sst / (k-1)
# F 통계량
mst / mse
= 7.53613
qt(1-0.05, k-1, n-k) # 3.238872
# 기각역 : [3.238872, inf]
# 채택역 : [0, 3.238872]
# 귀무가설 기각 : 세집단의 모평균이 다르다(온도의 변화가 수율에 영향을 미친다)
# 유의확률
1-pf(7.53613, k-1, n-k) # 0.002307083
# ANOVA
value <- c(a100, a150, a200, a250)
group <- c(rep("a100", length(a100)),
rep("a150", length(a150)),
rep("a200", length(a200)),
rep("a250", length(a250)))
df1 <- data.frame(group = group, value = value)
df1$value <- as.numeric(as.character(df1$value))
df1$group <- factor(df1$group)
m1 <- lm(value~group, data =df1)
summary(aov(m1))
> summary(aov(m1))
Df Sum Sq Mean Sq F value Pr(>F)
group 3 320.0 106.68 7.536 0.00231 **
Residuals 16 226.5 14.16
---
Signif. codes:
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
[ 문제풀이 ]
df1 <- data.frame(x=c(rep(1,5), rep(2,6), rep(3,5), rep(4,4)), y=c(a100, a150, a200, a250))
df1$x <- factor(df1$x)
m1 <- lm(y ~ x, data =df1)
summary(aov(m1))
> summary(aov(m1))
Df Sum Sq Mean Sq F value Pr(>F)
x(요인) 3 320.0 106.68 7.536 0.00231 ** <<< 0.05 => 귀무가설 기각!
Residuals(오차) 16 226.5 14.16
n <- nrow(df1)
k <- 4
# sse)
sse1 <- sum((a100 - mean(a100))^2)
sse2 <- sum((a150 - mean(a150))^2)
sse3 <- sum((a200 - mean(a200))^2)
sse4 <- sum((a250 - mean(a250))^2)
sse <- sse1 + sse2 + sse3 + sse4
mse <- sse / (n-k)
# sst)
sst1 <- length(a100) * (mean(a100) - mean(df1$y))^2
sst2 <- length(a150) * (mean(a150) - mean(df1$y))^2
sst3 <- length(a200) * (mean(a200) - mean(df1$y))^2
sst4 <- length(a250) * (mean(a250) - mean(df1$y))^2
sst <- sst1 + sst2 + sst3 + sst4
mst <- sst / (k-1)
# f통계량
F* = mst/mse ~ F(k-1, n-k)
= 7.53613
qf(1-0.05, k-1, n-k) # 3.238872
# 기각역 : [3.238872, inf]
# 귀무가설 기각!
# 유의확률)
P(F > 7.53613) = 1 - P(F < 7.53613)
= 1 - pf(7.53613, k-1, n-k)
= 0.002307083
'아이티윌_데이터 분석 55기 > 문제풀이_통계 및 분석' 카테고리의 다른 글
| #13-2. 13일차 퀴즈에 대한 문제풀이 (0) | 2026.04.29 |
|---|---|
| #11-2. 11일차 퀴즈에 대한 문제풀이 (0) | 2026.04.27 |
| #5-2. 5일차 퀴즈에 대한 문제풀이 (0) | 2026.04.17 |
| #4-2. 4일차 퀴즈에 대한 문제풀이 (0) | 2026.04.16 |
| #3-2. 3일차 퀴즈에 대한 문제풀이 (0) | 2026.04.15 |