11. 하나의 모집단에 대한 가설검정(분산)

Statistics
교재 8장
Author

Kim Jae Sook

Published

February 2, 2024

[엑셀] 실습하기

[R기초] 실습하기

카이제곱 분포(\(\chi^2\)분포)

  • R에서 제공되는 카이제곱 분포와 관련된 함수

  • dchisq() : \(P(X=x)\)

  • pchisq() : \(P(X<x)\) 또는 \(P(X \leq x)\)

  • qchisq() : \(P(X<x)=p\)가 되는 \(x\)

  • rchisq() : 주어진 카이제곱에서 난수를 뽑는 방법

# chi_squares distribution
dchisq(1, df=4) # 자유도가 4인 분포에서 1에서의 확률
[1] 0.1516327
pchisq(1, df=4, lower.tail = TRUE) # 자유도가 4인 분포에서 1보다 작을 확률(옵션 안줄때의 기본값)
[1] 0.09020401
pchisq(1, df=4, lower.tail = FALSE) # 자유도가 4인 분포에서 1보다 클 확률
[1] 0.909796
qchisq(0.05, df=4, lower.tail = TRUE) # 자유도가 4인 분포에서 확률이 0.05일때의 x값
[1] 0.710723
qchisq(0.05, df=4, lower.tail = FALSE) # 자유도가 4인 분포에서 오른쪽 면적이 0.05일때의 x값
[1] 9.487729
sample = rchisq(1000, df=4) # 자유도가 4인 카이제곱분포에서 1000개의 수를 임의로 뽑기
hist(sample) # 히스토그램 그리기

모분산의 신뢰구간

  • \(\chi^2\)분포가 모분산의 신뢰구간을 추정하는 데에 어떻게 사용되는지 알아보자. Y식품은 캔음료를 생산하는 공장을 운영하며, \(350\textrm{mL}\) 캔음료를 가장 많이 생산하고 있다. 생산공정은 캔에 평균 \(350\textrm{mL}\)의 음료가 담기도록 조절하였음에도 표기된 용량보다 적다는 소비자들의 불만이 접수되었다. 용량의 변동성을 알아보기 위해 25개의 캔이 단순확률추출되었고, 표본분산은 \(4(\textrm{mL}^2)\)로 계산되었다. 그러나 25개로 이루어진 표본에서 얻은 분산이 전체 음료 용량의 모분산의 정확한 값이라고 기대할 수 없으므로, 모분산의 신뢰구간을 추정하게 된다. 모분산 \(\sigma^2\)의 95% 신뢰구간을 구하시오.
sample_variance <- 4  # 표본 분산과 표본 크기
n <- 25
alpha <- 0.05  # 신뢰 수준

# 카이제곱 분포의 하위 및 상위 분위수
lower_chi_sq <- qchisq(alpha / 2, n - 1)
upper_chi_sq <- qchisq(1 - alpha / 2, n - 1)

# 모분산의 95% 신뢰구간 계산
lower_variance <- ((n - 1) * sample_variance) / upper_chi_sq
upper_variance <- ((n - 1) * sample_variance) / lower_chi_sq

# 결과 출력
cat("모분산의 95% 신뢰구간: [", lower_variance, ",", upper_variance, "]\n")
모분산의 95% 신뢰구간: [ 2.438772 , 7.741217 ]

모분산에 대한 가설검정

모분산에 대한 단측검정

  • Y식품은 모분산이 2.25 이하이면 현재의 생산과정을 유지하기로 하였다. 이에 귀무가설을 모분산이 2.25이고, 대립가설은 모분산이 2.25보다 크다고 세웠다. 가설검정을 하시오.
sample_variance <- 4  # 표본 분산과 표본 크기
n <- 25  # 귀무가설 하의 모분산
sigma_squared_0 <- 2.25

# 카이제곱 검정 통계량 계산
chi_sq_stat <- (n - 1) * sample_variance / sigma_squared_0

# p-값 계산 (단측 검정)
p_value <- 1 - pchisq(chi_sq_stat, n - 1)

# 결과 출력
cat("검정 통계량:", chi_sq_stat, "\n")
검정 통계량: 42.66667 
cat("p-값:", p_value, "\n")
p-값: 0.01085479 
# 결정 규칙: p-값이 유의 수준(alpha)보다 작으면 귀무가설 기각
alpha <- 0.05
if (p_value < alpha) {
  cat("귀무가설 기각: 모분산은 2.25보다 크다.\n")
} else {
  cat("귀무가설 기각할 충분한 증거가 없음: 모분산이 2.25보다 크다고 할 수 없다.\n")
}
귀무가설 기각: 모분산은 2.25보다 크다.
# Y식품은 캔에 음료를 주입하는 공정에 조정을 하여야 한다.

모분산에 대한 양측검정

  • H고등학교의 수학선생님들은 최근 새로운 입시에 알맞은 시험 방식을 도입하고자 한다. 적절한 변별력을 유지하기 위해 새로운 시험 방식도 종전까지 사용된 시험 방식과 같이 200이라는 시험 점수의 분산을 유지하고자 한다. H고등학교의 학생들의 시험 점수는 정규분포를 따른다고 가정하고, 새로운 시험 방식에서의 시험 점수의 분산을 평가하기 위한 가설은 \[H_o : \sigma^2 = 200~~vs~~H_1 : \sigma^2 \ne 200\] 이 될 것이다. 만일 귀무가설을 기각하게 되면, 즉 새로운 시험 방식이 기존 시험의 변별력을 유지하지 못한다면, 기존의 방식과 비슷한 분산 수준으로 조정을 할 것이다. 새로운 시험의 변별력을 검정하기 위하여, 학생들 중 30명을 단순확률추출하여 새로운 방식의 시험을 치르게 하였으며, 10% 유의수준에서 검정을 한다. 30명이 응시한 시험 점수의 분산은 정규분포를 다르며 175이었다. 가설을 검정하시오.
# 표본 분산과 표본 크기
sample_variance <- 175
n <- 30
# 귀무가설 하의 모분산
sigma_squared_0 <- 200

# 카이제곱 검정 통계량 계산
chi_sq_stat <- (n - 1) * sample_variance / sigma_squared_0

# p-값 계산 (양측 검정)
p_value <- 2 * min(pchisq(chi_sq_stat, n - 1), 1 - pchisq(chi_sq_stat, n - 1))

# 결과 출력
cat("검정 통계량:", chi_sq_stat, "\n")
검정 통계량: 25.375 
cat("p-값:", p_value, "\n")
p-값: 0.6826982 
# 결정 규칙: p-값이 유의 수준(alpha)보다 작으면 귀무가설 기각
alpha <- 0.10
if (p_value < alpha) {
  cat("귀무가설 기각: 모분산은 200이 아니다.\n")
} else {
  cat("귀무가설 기각할 충분한 증거가 없음: 모분산이 200이 아니라고 할 수 없다.\n")
}
귀무가설 기각할 충분한 증거가 없음: 모분산이 200이 아니라고 할 수 없다.
  • 단일 기계에서 생산된 플라스틱 판 두께의 분포가 정규분포를 따른다고 하자. 완성된 플라스틱 판들에 대한 두께의 분산이 2.25\(\textrm {mm}^2\)이상이면, 이는 공정에 이상이 있는 것이라고 한다. 생산된 제품 중 10장의 확률표본을 추출하여 두께를 측정하였더니 다음과 같았다. \[226, 226, 232, 227, 225, 228, 225, 228, 229, 230\] 이 자료를 통해 모분산의 95% 신뢰구간을 구하고, \(\sigma^2 \ge 2.25\)인지 여부를 유의수준 5%로 검정하시오.
# 샘플 데이터
sample_data <- c(226, 226, 232, 227, 225, 228, 225, 228, 229, 230)

# 샘플 분산 계산
sample_variance <- var(sample_data)
n <- length(sample_data)

# 모분산의 95% 신뢰구간 계산
alpha <- 0.05
lower <- qchisq(alpha / 2, n - 1)
upper <- qchisq(1 - alpha / 2, n - 1)
conf_interval_lower <- ((n - 1) * sample_variance) / upper
conf_interval_upper <- ((n - 1) * sample_variance) / lower
cat("모분산의 95% 신뢰구간: [", conf_interval_lower, ",", conf_interval_upper, "]\n")
모분산의 95% 신뢰구간: [ 2.439182 , 17.18271 ]
# 모분산이 2.25 이상인지 검정
sigma_squared_0 <- 2.25
chi_sq_stat <- (n - 1) * sample_variance / sigma_squared_0
p_value <- pchisq(chi_sq_stat, n - 1, lower.tail = FALSE)
cat("검정 통계량:", chi_sq_stat, "\n")
검정 통계량: 20.62222 
cat("p-값:", p_value, "\n")
p-값: 0.01443764 
# 결정 규칙: p-값이 유의 수준보다 작으면 귀무가설 기각
if (p_value < alpha) {
  cat("귀무가설 기각: 모분산은 2.25보다 크다.\n")
} else {
  cat("귀무가설 기각할 충분한 증거가 없음: 모분산이 2.25보다 크다고 할 수 없다.\n")
}
귀무가설 기각: 모분산은 2.25보다 크다.