1 과제 안내

수업 시간에 진행한 sleep_hours 분석과 동일한 절차stress 변수를 분석하세요.

제출 방법: 아래 빈 코드 청크를 채우고, “무엇을 의미하는가?” 부분에 직접 해석을 작성한 뒤 Knit하여 HTML 파일로 제출.


2 시나리오

대학생 300명의 생활습관을 조사했다.
일반 성인의 평균 스트레스 수준은 5.0점(10점 만점)이고, 모표준편차는 σ = 1.5로 알려져 있다.
우리 대학 학생들의 스트레스 수준이 일반 성인 평균과 다른가?

  • \(H_0\): \(\mu = 5.0\)
  • \(H_1\): \(\mu \neq 5.0\)
  • 유의수준 \(\alpha = 0.05\) (양측검정)

3 패키지 준비

# 필요한 패키지를 불러오세요 (psych, BSDA, effectsize, pwr)

library(psych)
library("BSDA")
library(effectsize)
library(pwr)

4 데이터 불러오기

# sleep.csv 파일을 불러오세요
sleep <- read.csv("sleep.csv")
head(sleep)
##   id gender exercise       major age sleep_hours stress
## 1  1 Female       No  Psychology  22         6.2    4.7
## 2  2 Female      Yes  Psychology  24         7.1    3.9
## 3  3 Female       No  Psychology  24         7.5    4.1
## 4  4 Female       No    Business  21         6.4    4.9
## 5  5   Male      Yes Engineering  23         6.2    6.2
## 6  6 Female       No Engineering  20         6.7    5.1
# 분석 대상 변수: stress
# 모집단 정보: mu0 = 5.0, sigma = 1.5
stress <- sleep$stress

mu0 <- 5.0
sigma <- 1.5

5 1단계: 기술통계

5.1 describe() 함수로 기술통계량 출력

describe(stress)
##    vars   n mean   sd median trimmed  mad min max range  skew kurtosis   se
## X1    1 300 4.21 1.48    4.3    4.22 1.48   1 7.9   6.9 -0.05    -0.36 0.09

5.2 히스토그램 그리기

# 히스토그램, mu0 (빨강 점선), 표본평균 (파랑 실선) 표시

hist(stress, 
     breaks = 15, col = "skyblue", border = "white",
     main = "University student stress",
     xlab = "stress")
abline(v = mu0,
       col = "red", lwd = 2, lty = 2)
abline(v = mean(stress),
       col = "blue", lwd = 2)
legend("topright",
       legend = c("5.0", paste0("sample mean", round(mean(stress), 2))),
       col = c("red", "blue"), lty = c(2, 1), lwd = 2, bty = "n")

5.3 무엇을 의미하는가?

(여기에 해석을 작성하세요)

  • 표본 평균: 4.21
  • 표준편차: 1.48
  • 분포의 모양: 전반적으로 완만한 좌우대칭 표본평균은 4.21로, 모집단 평균(5.0)보다 낮고, 왼쪽에 위치한다. —

6 2단계: z검정

6.1 z.test() 수행

result <- z.test(x = stress,
                 mu = mu0,
                 sigma.x = sigma,
                 alternative = "two.sided",
                 conf.level = 0.95)
result
## 
##  One-sample z-Test
## 
## data:  stress
## z = -9.1029, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 5
## 95 percent confidence interval:
##  4.041929 4.381405
## sample estimates:
## mean of x 
##  4.211667

6.2 필요한 값 추출 (z_stat, p_val, ci, xbar)

z_start <- result$statistic
p_val <- result$p.value
ci <- result$conf.int
xbar <- result$estimate

cat("z 통계량 = ", round(z_start, 4), "\n")
## z 통계량 =  -9.1029
cat("p-value = ", format(p_val, scientific = TRUE, digits = 4), "\n")
## p-value =  8.796e-20
cat("표본평균 = ", round(xbar, 4), "\n")
## 표본평균 =  4.2117

6.3 결정

# p-value를 기준으로 H0 기각 여부 판단

if(p_val < 0.05) {
  cat("p < 0.05 -> H0 기각\n")
  cat("-> 우리 대학 학생의 스트레스 수준은 평균과 유의하게 다르다.\n")
} else {
  cat("p >= 0.05 -> H0 기각 못 함\n")
  cat("-> 우리 대학 학생의 스트레스 수준은 평균과 다르다고 보기 어렵다.\n")
}
## p < 0.05 -> H0 기각
## -> 우리 대학 학생의 스트레스 수준은 평균과 유의하게 다르다.

6.4 무엇을 의미하는가?

(여기에 해석을 작성하세요)

  • z 통계량의 의미: z = -9.1로 기준값인 +-1.96을 벗어나 있음을 알 수 있다.
  • p-value의 의미: p = 8.796e-20로 0에수렴할 정도로 희박한 확률을 의미하고 있음을 알 수 있다.
  • 결론:영가설H0 기각한다. 스트레스 수준은 평균과 통계적으로 유의하게 다르다고 해석할 수 있다.

7 3단계: 신뢰구간

7.1 신뢰구간 출력 및 5.0 포함 여부 확인

ci
## [1] 4.041929 4.381405
## attr(,"conf.level")
## [1] 0.95
cat("95% CI: [", round(ci[1], 3), ",", round(ci[2], 3), "]\n")
## 95% CI: [ 4.042 , 4.381 ]
cat("5.0이 신뢰구간에 포함?: ", (mu0 >= ci [1] & mu0 <= ci[2]), "\n")
## 5.0이 신뢰구간에 포함?:  FALSE

7.2 무엇을 의미하는가?

(여기에 해석을 작성하세요)

  • 95% 신뢰구간이 의미하는 것: 95% 신뢰구간[4.042, 4.381]은 이 방법으로 만든 구간들이 장기적으로 약 95%의 비율로 모평균을 포함한다는 의미다.
  • 5.0이 포함되는지 여부와 검정 결과의 관계: 해당 구간에 5.0은 포함되지 않는다. 따라서 영가설을 기각한다.

8 4단계: 효과크기 (Cohen’s d)

8.1 cohens_d() 계산 및 자동 해석

d_result <- cohens_d(stress, mu = mu0)
d_result
## Cohen's d |         95% CI
## --------------------------
## -0.53     | [-0.65, -0.41]
## 
## - Deviation from a difference of 5.
d_interp <- interpret_cohens_d(d_result$Cohens_d)
d_interp
## [1] "medium"
## (Rules: cohen1988)

8.2 무엇을 의미하는가?

(여기에 해석을 작성하세요)

  • Cohen’s d 값과 그 의미: -0.53은 표본평균과 H0 평균의 차이가 표준편차 단위로 0.53만큼 낮은 효과에 해당한다.
  • 효과크기의 분류: 일반적인 Cohen의 기준에 따르면, 중간 순준의 효과에 해당한다.
  • 통계적 유의성 vs 효과크기: 표본이 크면 작은 차이도 통계적으로 유의해질 수 있어 효과크기를 함께 비교해야 된다. 효과크기가 중간 수준으로 나타난 것은 이 차이가 단순히 표본 수가 많아서 나타난 결과가 아니라, 실질적으로도 의미 있는 수준이라는 사실을 지지한다.

9 5단계: 검정력

9.1 pwr.norm.test() 수행

power_result <- pwr.norm.test(d = abs(d_result$Cohens_d),
                              n = length(stress),
                              sig.level = 0.05,
                              alternative = "two.sided")

power_result
## 
##      Mean power calculation for normal distribution with known variance 
## 
##               d = 0.5321056
##               n = 300
##       sig.level = 0.05
##           power = 1
##     alternative = two.sided
cat("Power =", round(power_result$power, 3), "\n")
## Power = 1
cat("β     =", round(1 - power_result$power, 3), "\n")
## β     = 0

9.2 무엇을 의미하는가?

(여기에 해석을 작성하세요)

  • 검정력의 의미: 검정력 1은 실제 차이가 있을 때 잡아낼 확률이다.
  • β의 의미: 0은 차이가 있는데 못 잡아낼, 즉 2종 오류의 확률이다.
  • 본 연구의 검정력은 충분한가?: 본 연구의 검정력은 1로 충분하다고 볼 수 있다.

10 종합 해석

대학생 300명의 평균 스트레스 점수는 4.21점(SD = 1.48)이었다.
일반 성인 평균(5.0점)과 다른지 z검정한 결과,
z = -9.1, p = 8.796e-20  로 H0를 기각함.

95% 신뢰구간은 [ 4.042 , 4.381 ]이며 5.0이 포함 안 됨.

Cohen's d = -0.53으로 중간 수준의 효과에 해당한다.
검정력은 1이다.

결론: 우리 대학 학생의 평균 스트레스 수준은 일반 성인보다 통계적으로 유의하게 낮다이다.