통계학( 추정과 가설검정)
통계학( 추정과 가설검정)
1. 추정과 분산
표본 추정
- 점추정: 단일 값(예: 표본 평균)으로 모수를 추정.
- 구간추정: 신뢰구간(예: 95% 신뢰구간)을 사용해 모수를 추정.
- 95% 신뢰구간:
평균 ± 1.96 × 표준오차.
- 95% 신뢰구간:
분산과 표준편차
- 표본 분산 계산식:
\(S^2 = \frac{1}{n-1} \sum_{i=1}^n (X_i - \bar{X})^2\)n-1로 나누는 이유: 불편추정량을 얻기 위해 표본 편향 보정.
- 표본 표준편차:
\(S = \sqrt{S^2}\)
최대우도 추정법(MLE)
- 주어진 데이터가 관찰될 확률(우도)을 최대화하는 모수를 추정.
- 모집단 분산 추정 시
N으로 나눔:
\(\sigma^2 = \frac{1}{N} \sum_{i=1}^N (X_i - \mu)^2\)- MLE는 편향되지 않은 추정량을 제공하지 않을 수 있음.
2. 가설검정과 확률분포
가설검정 유형
- 양측검정: 모집단 평균이 특정 값과 다른지 검정 (예: “차이가 있다”).
- 단측검정: 모집단 평균이 특정 값보다 크거나 작은지 검정 (예: “크다”).
정규분포와 Z-점수
- 정규분포 확률밀도함수:
\(f(x) = \frac{1}{\sigma \sqrt{2\pi}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)\) - Z-점수 정규화:
\(Z = \frac{X - \mu}{\sigma}\)
누적확률과 분위수
3. 적률, 왜도, 첨도
적률(Moment)
- 1차 원점 적률: 산술평균 (
E(X)). - 2차 중심 적률: 분산 (
Var(X)). - 3차 중심 적률: 왜도 (분포의 비대칭성, 정규분포 = 0). 3승 -> +-되서 0
- 4차 중심 적률: 첨도 (분포의 뾰족함, 정규분포 = 3). 4승
가설검정 과정
- 귀무가설(H₀): “차이가 없다” (예: μ = μ₀).
- 대립가설(H₁): “차이가 있다” (예: μ ≠ μ₀).
- 유의수준 95%: 검정통계량이 임계값 밖에 있으면 H₀ 기각.
- 효과 크기: Cohen’s d로 측정.
4. 검정통계량과 분포
주요 분포
- 카이제곱(χ²) 분포: 범주형 데이터 분석 (예: 적합도 검정).
- t-분포: 모집단 분산을 모를 때, 소표본 평균 검정.
- F-분포: 두 개 이상의 분산 비교 (예: ANOVA).
검정통계량 예시
- t-검정 (두 집단 평균_평균차/표준오차):
\(t = \frac{\bar{X} - \mu}{S / \sqrt{n}}\) - F-검정:
\(F = \frac{\text{집단간 분산}}{\text{집단내 분산산}}\)
5. 중심극한정리와 정규분포 변환
중심극한정리
- 정의: 표본 크기가 30개 이상이면 표본 평균의 분포가 정규분포에 가까워짐.
- 표준오차:
\(\text{표준오차} = \frac{\sigma}{\sqrt{n}}\)- 표본 크기가 커질수록 표준오차 감소.
예제
표준오차
# 표준오차 계산 함수 stderr <- function(x) sd(x, na.rm = TRUE) / sqrt(length(na.omit(x))) # 예시: 비행시간 데이터 (평균 120시간, 표준편차 30시간) t9 <- rnorm(9, 120, 30) t1000 <- rnorm(1000, 120, 30) cat("n=9의 표준오차:", stderr(t9), "\n") cat("n=1000의 표준오차:", stderr(t1000)) 정규분포 변환
- 로그 변환: log(x + 1) (0값 처리)
- 제곱근 변환: sqrt(x)
- Box-Cox 변환: Lambda(λ) 값 조정하여 분포 정규화.
library(UsingR) data(cfb) # INCOME 변환 예시 cfb <- transform(cfb, INCOME_log = log(INCOME + 1), INCOME_sqrt = sqrt(INCOME)) par(mfrow = c(1, 3)) hist(cfb$INCOME, breaks = 500, main = "원본 데이터") hist(cfb$INCOME_log, breaks = 500, main = "로그 변환") hist(cfb$INCOME_sqrt, breaks = 500, main = "제곱근 변환") 정규분포 활용 예제
- 확률 계산
문제: 평균 100, 표준편차 10인 정규분포에서 50 이하 확률pnorm(50, mean = 100, sd = 10) # 결과: 약 2.87e-07 - 분위수 계산
문제: 평균 500kg, 표준편차 50kg인 분포 상위 5% 경계값qnorm(0.95, mean = 500, sd = 50) # 결과: 582.2427
포아송 분포
평균 10명/시간인 응급실에서 12명 도착 확률
dpois(12, lambda = 10) # 정확히 12명: 0.0948 8명 이하 도착 확률
ppois(8, lambda = 10) # 결과: 0.3328 카이제곱 분포
카이제곱 분포 시각화
x <- seq(0, 20, 0.1) plot(x, dchisq(x, df = 3), type = "l", main = "자유도 3 카이제곱 분포") Titanic 데이터 분석
# 성별 생존 여부 분석 xtabs(Freq ~ Sex + Survived, data = Titanic) # 출력: # Survived # Sex No Yes # Male 682 162 # Female 127 339 균등분포
# 0~10 사이 균등분포 시각화 library(ggplot2) ggplot(data.frame(x = c(0, 10)), aes(x)) + stat_function(fun = dunif, args = list(min = 0, max = 10)) + ggtitle("균등분포 U(0, 10)") 초기하분포
- 비복원 추출 시 특정 사건이 발생할 확률을 모델링합니다.
- 예시: 200개 USB 중 20개가 불량일 때, 10개를 뽑아 k개가 불량일 확률.
N=200 # 총개수 M=20 # 불량메모리 개수 n=10 # 뽑는 개수 x=0:11 # 불량 개수 round(dhyper(x,M,N,n),3) # 소수점 셋째 자리에서 반올림
음이항분포
성공확률 p를 가진 베르누이 시행에서 k번째 성공이 나올 때까지의 실패 횟수를 모델링한 분포
pnbinom(3,size=12,0.95) # 최대 3번 실패할 확률 1-pnbinom(3,size=12,0.95) # 4개 이상 실패할 확률 카이제곱 검정 (Chi-Square Test)
적합도 검정 (Goodness-of-Fit Test)
- 귀무가설 (H₀): 사이다 종류별 선호도 차이가 없다.
- 대립가설 (H₁): 선호도 차이가 있다.
- 유의수준: 0.05
# 데이터 입력 data <- textConnection( "사이다종류 관측도수 1 14 2 32 3 17 4 9 5 18" ) x <- read.table(data, header = TRUE) # 카이제곱 검정 실행 chisq.test(x$관측도수) 결과 해석
- 검정통계량: 16.333
- p-value: 0.001159
- 결론: p < 0.05 → H₀ 기각. 선호도 차이가 있음.
독립성 검정 (Independence Test)
library(gmodels) data(survey) # 성별과 운동량 교차표 생성 xt <- xtabs(~ Sex + Exer, data = survey) # 카이제곱 검정 chisq.test(xt) 결과 해석
- p-value: 0.125
- 결론: p > 0.05 → H₀ 채택. 성별과 운동량은 독립적.
동질성 검정 (Homogeneity Test)
# 교차표 생성 및 검정 xt <- xtabs(~ W.Hnd + Clap, data = survey) chisq.test(xt) 결과 해석
- p-value: 0.01048
- 결론: p < 0.05 → H₀ 기각. 두 변수는 관련이 있음.
피셔의 정확 검정 (Fisher’s Exact Test)
기대빈도가 5 미만인 셀이 25% 이상일 때 사용합니다.
# 피셔 검정 실행 fisher.test(xtabs(~ W.Hnd + Clap, data = survey)) 시각화
카이제곱 분포 시각화
library(ggplot2) ggplot(data.frame(x = c(0, 10)), aes(x)) + stat_function(fun = dchisq, args = list(df = 1), color = "black") + stat_function(fun = dchisq, args = list(df = 2), color = "blue") + stat_function(fun = dchisq, args = list(df = 3), color = "red") + ggtitle("카이제곱 분포 (자유도 1, 2, 3)") Titanic 데이터 분석
# 성별 생존 여부 교차표 ftable(Titanic, row.vars = "Sex", col.vars = "Survived") # 시각화 barplot(margin.table(Titanic, 4), main = "Titanic 생존자 분포") 문제 : Arthritis는 ID, Treatment:”Placebo”, “Treated” 위약효과
- Sex, Age, Improved의 변수로 이뤄졌고 개선의 종류는 (None 변화무, Some 약간, Marked 현격하게 )
- 류마티스 관절염에 대한 처치 데이터 : 처치에 대한 성별 나이별 개선효과
- 귀무가설 : 플라시보효과나 처치나 별차이가 없다.
- 대립가설 : 플라시보나 처치가 차이가 있다.
install.packages("vcd") library(vcd) str(Arthritis) xtabs(~Treatment+ Improved, data=Arthritis) CrossTable(xtabs(~Treatment+Improved, data=Arthritis), expected = T) # p = 0.001462643 # 결론 : 귀무가설을 기각하고 대립가설을 채택한다. 플라시보나 처치나 차이가 있다. This post is licensed under CC BY 4.0 by the author.