Must Learning With Statistics

10. 기초통계 이론 1단계 본문

MustLearning with R 1편

10. 기초통계 이론 1단계

Doublek Park 2020. 1. 29. 20:50

Chapter10. 기초통계이론 1단계

엑셀 통계와 R 통계가 다른 부분

흔히, 통계를 전공하지 않은 사람들은 엑셀을 활용하여 데이터 분석을 진행합니다. 피벗테이블을 통해 데이터를 집계 내고, 함수를 이용하여 평균과 분산을 구하기도 합니다. 이러한 기초통계 분석은 R로도 할 수가 있으며, 언뜻보기에는 크게 다른점이 없어 보입니다. 오히려 프로그램이 더 직관적으로 구성이 되어 있는 엑셀이 편합니다. 그렇다면 R을 왜 해야 되는 것일까요? 바로 ’통계학’에 기반한 데이터 분석을 진행하기 위해서입니다. 그렇다면 통계학이 일반적인 기초분석과 다른 점은 무엇일까요? 그 부분은 바로 같은 평균을 계산할 때, 기초 통계는 정말 평균만을 뽑아내지만 통계학에서는 평균과 함께 ’분산’을 계산합니다. 즉 더 많은 정보를 활용하여 데이터를 분석하는 것이 목표입니다. 여기서 분산이란, 변동의 개념으로 데이터가 중심으로부터 얼마나 산포했는지 값을 나타냅니다. 통계학에서는 같은 평균을 보더라도, 분산을 함께 고려하여 해당 평균의 값이 맞는지 틀린지 검정과 추정을 진행하게 됩니다. 이는 나중에 점추정과 구간추정에서 자세히 다루게 됩니다.

1. 표본공간과 확률변수

확률실험과 표본공간

  • 확률 실험 : 같은 조건 하에서 실험을 반복할 때, 그 결과가 예측불가능한 실험

  • 표본 공간 : 확률 실험의 모든 가능한 결과들의 집합

    통계 이론을 공부할 때 가장 먼저 알아야 될 용어는 확률실험입니다. 확률실험은 쉽게는 주사위 던지기부터 시작하여, 오늘 지각을 할지 안할지 실험하는 것 까지 모든 일상생활을 확률실험이라고 할 수 있습니다. 여기서 확률실험의 모든 가능한 결과들의 집합을 표본공간(Sample Sapce)이라고 합니다. 예를 들어, 동전을 던져 앞, 뒷면이 나오는지 확인하는 확률실험을 진행하였을 경우, 표본공간은 {앞, 뒤}가 됩니다.

확률변수(Random Variable)

  • 확률변수 : 발생 가능한 모든 경우에 대해서 각각의 실숫값을 대입해주는 하나의 함수

    다음으로는 통계학에서 가장 중요하다고 할 수 있는 확률변수(Random Variable)가 등장합니다. 표본공간의 각 원소 하나하나에 원하는 목적에 따라 그에 걸맞은 실수를 대입해 주는 함수입니다. 여기서 확률변수는 변수의 척도(이산형, 연속형)에 따라 2가지로 나뉩니다.

  • 이산형 확률변수(Discrete Random Variable) : 어떤 값을 가질 확률을 계산하는 확률변수

  • 연속형 확률변수(Conituous Random Variable) : 어떤 구간 내에 포함될 확률을 계산하는 확률변수

예시1) 성별

어떤 팀에서 한 명을 리더로 선출하려고 하는데 성별에 관심이 있습니다. 이 경우 표본공간은 (남자,여자) 두 가지로 이루어진 집합이 될 것입니다. 이때 확률변수 \(X\)를 ‘여자는 0 남자는 1’ 이라고 정의해 봅시다. 반대로 해도 상관 없습니다. 그렇다면 리더가 선출되었을 때 0또는 1이라는 확률변수 값을 얻을 수 있을 것입니다. 이는 (남자, 여자)라는 표본공간에서 각 원소들을 0과 1이라는 실수로 전화해주는 변환 함수 입니다.

예시2) 주사위

눈이 3까지 있는 주사위 두 개를 굴리는 상황입니다. 확률변수 \(Y\)를 ’두 주사위 눈의 합’이라고 정의해 봅시다. 변수 \(Y\)라고 하면 나올 수 있는 경우는 다음과 같습니다.

가능한 경우는 총 9가지입니다. 이는 표본공간이 9개의 원소를 가지고 있는 집합이라는 뜻이고 ‘두 눈의 합’ 이라는 함수인 확률변수는 총 5개의 값을 갖게 됩니다. 위 표에서 보면 표본공간은 왼쪽 부분이 되겠고 확률변수가 가질 수 있는 실수는 오른쪽이겠지요. 이렇게 표본공간에서 실수로 변환해주는 변환 함수가 확률변수입니다. 또한 확률변수의 특징은 각 경우가 나올 확률이 알려져 있다는 것입니다.

주의해야 할 점은 확률변수는 그 자체로도 함수라는 사실입니다. 흔히 많은 분들이 확률변수와 확률함수를 헷갈리시는데, 확률변수는 표본공간에서 실수로 가는 함수이고 확률함수는 확률변수가 어떤 값을 가질 때(혹은 어떤 범위 내에 포함될 때)의 확률을 계산하는 함수입니다. 위 표에서는 세 번째 열이 확률함수 값이라고 할 수 있습니다.

2. 이산형 확률분포

첫 번째 챕터에서 확률변수의 개념을 말씀드리면서 확률변수는 가능한 값들에 대한 확률이 알려져 있고 그것을 계산하는 계산하는 함수가 확률함수(Probability Function)라는 것을 말씀드렸습니다. 그렇다면 이러한 확률들은 어떻게 알 수 있을까요. 그 확률변수들이 가지고 있는 확률의 구조를 알아야 하며 이 확률 구조를 흔히 확률분포(Probability Distribution)라고 합니다.

이산형 확률변수 => 이산형 확률분포 => 확률질량함수(Probability Mass Function, \(pmf\))
연속형 확률변수 => 연속형 확률분포 => 확률밀도함수(Probability Density Function, \(pdf\))

일반적으로 확률을 계산하는 대부분의 분석들은 이 확률분포와 그에 따른 확률함수를 이용한 분석들입니다. 앞으로 배우게 될 추정과 검정과 같은 통계분석 역시 이 확률분포를 통해서 하게 됩니다. 그렇지만 실제 데이터에서 정확히 일치하는 확률분포를 고안해 내기는 쉬운 일이 아닙니다. 이산형 확률분포는 데이터의 수집 상황에 따라 결정될 수 있으나 연속형의 경우는 사실 뚜렷한 방법이 없기에 얻은 데이터를 기반으로 추측하는 것이 대부분입니다. 하지만, 사람들이 실험과 연구를 하다보니, 수 많은 확률분포에서 특정한 패턴을 나타내는 분포들을 발견하였고, 이를 정리하여 이론을 성립했습니다. 이제부터 해당 확률분포들에 대해 알아보도록 하겠습니다.
이산형 확률분포는 데이터가 수집되는 상황에 따라 결정될 수 있다고 했습니다. 이 말은 곧 어떤 식으로 데이터를 수집하냐 혹은 어떤 방식으로 데이터를 분류하냐에 따라 우리가 가장할 수 있는 분포의 종류가 바뀔 수 있다는 의미입니다.

확률질량함수(\(pmf\))는 다음의 수식으로 표현합니다.

\[ f_{x}(x)=P[X=x] \]

수식의 해석은 간단합니다. \(x\)에 해당할 확률을 구한 값입니다.

3. 이항분포(Binomial distribution)

  • 베르누이 시행 : 가능한 결과가 배타적인 두 가지 중 하나로 나타나는 확률 실험
  • 이항분포 : 성공확률이 \(p\)인 베르누이 시행을 독립적으로 \(n\)번 실행하였을 때, 성공의 수를 확률변수로 정의하는 분포
    이항분포는 확률변수가 배타적인 두 가지 범주를 갖고 각 시행은 독립적인 경우에서의 분포입니다. 이 시행을 베르누이 시행이라고도 합니다.

여기서 독립적이라는 것은 각 시행이 다른 시행에 전혀 영향을 미치지 않는다는 것입니다. 간단한 예로 팀원 중 10주 동안 무작위로 돌아가면서 당직을 서는데 남자가 당식을 서는 횟수에 관심이 있다고 합시다. 성별은 남자, 여자 두 가지 경우만 상호 배타적으로 존재하므로 조건에 부합합니다. 그런데 만약 한 번 뽑힌 사람을 다음 당직 때 후보에서 제외하게 된다면 이는 각 시행이 독립적이지 않습니다. 그렇지 않고 계속 동일한 후보군에서 무작위로 뽑게 된다면 각 시행은 독립적이라고 할 수 있을 것입니다.

조금 더 상황을 일반화시켜 봅시다. 시행은 총 \(n\)번의 독립적인 베르누이시행에서 관심 있는 범주가 나올 확률이 \(p\)라고 해봅시다. 이런 조건들이 이항분포를 결정짓는 ’상황’이며, 여기서 이항분포는 관심 있는 범주가 나오는 횟수 \(y\)를 확률변수로하는 분포입니다.

이제 이항분포의 확률함수를 만들어 볼 수 있습니다.

성공확률이 0.6인 이항분포 생성

library(ggplot2)

# 난수 생성
RB = rbinom(n = 400 , size = 1,prob = 0.6)

ggplot(NULL) +
  geom_bar(aes(x = as.factor(RB), fill = as.factor(RB))) +
  theme_bw() +
  xlab("") + ylab("") +
  scale_x_discrete(labels = c("실패","성공")) +
  theme(legend.position = 'none')  

\[ Y \sim Bin(n,p) \ 이면, \]

\[ P(Y=y) = \left(\begin{array}{r} n\\ y\\ \end{array}\right) p^{y} (1-p)^{n-y}\, \\y=0,1,2\cdots n \]

이 \(pmf\)를 통해서 관심 있는 범주가(편의상 성공이라고 하겠습니다.) \(n\)개중 하나도 나오지 않을 확률부터 \(n\)개 중 \(n\)개를 성공할 확률을 구할 수 있습니다. 또한 이러한 형태의 이항분포의 평균과 분산은 각각 \(np\), \(np(1-p)\)입니다. 이를 다음과 같이 표현합니다.

\[ E[Y]=np\qquad V[Y]= np(1-p) \]

예시

위의 수식을 R로 구현해보면 다음과 같습니다.

library(ggplot2)

# 난수 생성

X = c()
P = c()

for(k in 1:10){

  RDB = dbinom(x = k, size = 10,prob = 0.4)

  X = c(X,k)
  P = c(P,RDB)

}

ggplot(NULL) +
  geom_bar(aes(x = X, y = P),stat = 'identity') +
  theme_bw() +
  scale_x_continuous(breaks = seq(1,10)) +
  xlab("성공횟수") + ylab("확률")


X = c()
P = c()


for(k in 1:10){

  RDB = dbinom(x = k, size = 10,prob = 0.8)

  X = c(X,k)
  P = c(P,RDB)

}


ggplot(NULL) +
  geom_bar(aes(x = X, y = P),stat = 'identity') +
  theme_bw() +
  scale_x_continuous(breaks = seq(1,10)) +
  xlab("성공횟수") + ylab("확률")

)

총 10번 실험을 한다고 가정하였을때, 왼쪽은 성공확률이 0.2일 때, 성공횟수에 따른 성공확률을 나타내며, 우측은 성공확률이 0.8일 때, 성공횟수에 따른 성공 확률을 의미합니다.

4. 다항분포(multinomial distribution)

  • 다항분포 : 실험결과가 \(k\)개인 확률실험을 \(n\)번 반복하였을 때, 각 범주에 속하는 횟수를 확률변수로 하는 분포

다항분포는 이항분포의 확장입니다. 이항분포가 \(n\)번 시행에서 확률변수가 가질 수 있는 범주가 성공/실패 두 가지였다면, 다항분포에서는 \(n\)번 시행에서 확률변수가 가질 수 있는 범주가 \(k\)가지로 확장됩니다. 반대로 \(k=2\)인 경우, 이항분포가 됩니다. \(K=3\)인 경우인 다음 표를 보겠습니다.

RM = as.data.frame(t(rmultinom(n = 1,size = 10,prob = c(0.2,0.5,0.3))))
RM = colSums(RM)

ggplot(NULL) +
  geom_bar(aes(x = names(RM), y= RM,fill = names(RM)),stat = 'identity') +
  theme_bw() +
  theme(legend.position = 'none') +
  scale_x_discrete(labels = c("1","2","3")) +
  xlab("") + ylab("")

)

위의 경우는 총 \(n\)개의 독립적인 시행 중 범주1이 \(x\)개 범주2가 \(y\)개 나올 확률을 나타내는 다항분포입니다. \(n\)번의 시행이니 당연히 마지막 범주는 \(n-x-y\)개가 될 것이고 확률은 \(1-p1-p2\)가 될 것입니다. 즉, 확률변수가 2개입니다. 한 분포에 꼭 확률변수가 한 개만 있으리란 법은 없습니다. 이를 확장해서 범주가 \(k\)개 있는 경우를 상상하면 \(k-1\)개의 확률변수를 갖는 확률분포가 됨을 짐작할 수 있습니다. 마지막 범주는 위 표처럼 나머지 범주에 종속되기 때문입니다.

범주가 \(k\)개인 다항분포의 확률함수를 보겠습니다.

\[ (X_1, X_2,\cdots ,X_{k-1} ) \sim Multin(n,p_1 ,\; p_2, \;\cdots ,\; p_{k-1}) \]

\[ P(X_1 = x_1 , \; X_2 = x_2,\cdots X_{k-1} =x_{k-1}) = \frac {n!}{x_1!\; x_2!\; \cdots\; x_{k-1}!\; x_k!} \;p_1^{x_1}\;p_2^{x_2}\cdots p_{k-1}^{x_{k-1}}\;p_k^{x_k} \]

\[ x_k = (n-x_1 - x_2 - \cdots -x_{k-1} )\ , \\ p_k = (1-p_1 -p_2-\cdots -p_{k-1}) \]

식은 조금 복잡하지만 어렵게 생각하실 필요 없이 다음과 같은 논리를 생각하시면 됩니다.

\[ (첫 \;범주\; 확률)^{첫 \;범주\; 갯수}\quad \times \quad (다음 \;범주\; 확률)^{다음 \;범주\; 갯수} \quad \times \quad \cdots \\ \quad \times \quad (마지막 \;범주\; 확률)^{마지막 \;범주\; 갯수} \]

그리고 그 범주의 조합을 곱해주어서 해당 확률을 구하는 것이죠. 이 역시 데이터의 상황이 분포를 결정합니다. 다음의 예시를 통해 다항분포 문제를 다루어보도록 하겠습니다.

예시

눈이 3까지 있는 주사위를 10회 던졌을 때,

위 경우의 결과가 나오게 되는 확률을 계산하도록 하겠습니다.

# p.m.f 계산
n_F = factorial(10)
x_F = factorial(5) * factorial(3) * factorial(2)
Prob = (n_F / x_F) * (1/3)^5 * (1/3)^3 * (1/3)^2
Prob
[1] 0.04267642
# 명령어 활용
dmultinom(c(5,3,2),prob = c(1/3,1/3,1/3))
[1] 0.04267642

\[ P[x_1=5,x_2=3,x_3=2]=0.04 \]

5. 포아송분포(Poisson Distribution)

  • 포아송분포 : 일정 단위에서 평균 성공 수가 \(\lambda\)일 때 성공 횟수를 확률변수로 하는 분포

    포아송 분포는 \(n\)이 충분히 크고 성공확률 \(p\)가 매우 작을 때, 이항분포에 대한 근사로 활용이 됩니다. 예를 들어 어떤 공장에서 10시간(일정 단위)마다 평균적으로 2개의 불량품(평균 성공 수 \(\lambda\))이 발생된다면 불량품이 하나도 발생하지 않을 확률부터 수십, 수백개가 발생할 확률까지 성공 횟수에 따른 확률을 다루는 분포입니다.

RP = rpois(n = 100 ,lambda = 2)

ggplot(NULL) +
  geom_bar(aes(x = as.factor(RP),fill = as.factor(RP))) +
  theme_bw() +
  xlab("성공횟수") + ylab("빈도") +
  theme(legend.position = 'none')

포아송분포는우리 실생활에 정말 많이 적용될 수 있는 분포입니다. 빈도로 조사된 데이터는 전부 포아송분포를 적용하여 분석할 수 있기 때문이죠. 또한 포아송분포는 ’\(n\)번 중 성공 횟수’의 분포인 이항분포와 매우 밀접한 관련이 있습니다. 이항분포의 평균은 \(np\)이고 이는 곧 ’평균 성공 수’의 관점으로 바라 볼 수 있기 때문입니다. 포아송분포의 확률을 계산하는 확률함수는 다음과 같습니다. 또한 위 그래프에서 성공 횟수가 증가할 수록 빈도 수가 급격히 줄어드는 것을 확인할 수가 있습니다.

\[ Y\sim Poisson(\lambda)\sim 이면, \]

\[ p(Y=y) = \frac {e^{-\lambda} \lambda^y} {y!}, \; \;\; y= 0 ,1,2 ,\cdots \]

\[ E(Y)= \lambda \qquad V(Y)= \lambda \]

포아송분포는 특이하게도 평균과 분산이 같습니다. 그래서 빈도 데이터에 적용하기가 적절하죠. 평균 빈도가 높다는 것은 그만큼 바운더리가 커진다는 것이고 바운더리가 커진다는 것은 분산이 크다고 해석할 수 있습니다.

예시

A도로의 1시간 당 통과 차량 수가 \(\lambda = 20\)인 포아송 분포를 따를 경우, 15대 이하의 차량이 통과할 확률을 계산하도록 하겠습니다.

ppois(q = 15,lambda = 20, lower.tail = TRUE)
[1] 0.1565131

\[ P[Y \leq 15] = 0.15 \]

6. 연속형 확률분포

연속형 확률분포는 이산형과는 다르게 상황이 분포를 결정짓지 못합니다. 데이터들의 형태를 보고 추측하는 정도가 전부입니다. 통계에서는 그것을 분포 가정이라고 표현하며 실질적으로 저희가 분석하는 대부분의 것들은 이 분포 가정을 통해 이루어집니다. 연속형 확률변수는 이산형 확률변수와는 다르게, 구간으로 정의역이 정의됩니다.

\[ P[a <X<b] = \int_a^bf(x)dx \]

또한 누적된 확률 분포를 누적 확률 밀도 함수(cumulative probability density function, \(cdf\))라고 합니다. \(cdf\)는 \(pdf\)를 적분한 것이라고 생각하면 됩니다. R코드를 통해 알아보도록 하겠습니다.

\[ F[x] = \int_{-\infty}^{x}f(x)dx \]

R = rnorm(n = 100000, mean = 0, sd = 1)

ggplot(NULL) +
  geom_histogram(aes(x = R, y= ..density..),binwidth = 0.2,fill = "white",col = 'black') +
  geom_density(aes(x = R), col = 'red', size = 1) +
  scale_y_continuous(expand = c(0,0),limits = c(0,0.5)) +
  scale_x_continuous(limits = c(-3,3)) + 
  xlab("") + 
  theme_bw()

다음과 같은 분포가 있다고 가정하였을 때, 위 분포에 대한 누적확률분포는 다음과 같이 구할 수 있습니다.

CR = ecdf(R) # CDF 계산
x = seq(from = -3, to = 3, by = 0.2)
CP = CR(x)

ggplot(NULL) +
  geom_line(aes(x = x, y = CP)) +
  geom_area(aes(x = x, y = CP), fill = 'royalblue', alpha = 0.4) +
  theme_bw()

위 그래프를 확인하시면, x값이 증가함에 따라 그에 따른 누적확률도 증가하는 것을 알 수 있습니다. 즉, \(p[x<3] \simeq 1\)인 것을 확인할 수가 있습니다.

7. 정규분포(Normal Distribution)

정규분포는 주어진 데이터의 형태가 산봉우리일 때 가정되는 분포입니다. 흔히 ’종모양’에 비유하기도 합니다. 종모양이라함은 중심에 많은 데이터들이 모여있고 중심에서 멀어질수록 적은 데이터를 포함합니다. 또한 중심을 기준으로 좌우가 대칭적인 형태를 가지고 있습니다. 이는 곧 데이터의 중심과 산술적인 평균이 동일함을 의미합니다. 과거의 학자들은 많은 분야의 연속형 데이터들이 이런 형태를 띈다는 것을 발견하였고 그에 착안하여 정규분포를 고안하였습니다. 위에서 언급했던 것처럼 연속형 자료는 수집 상황이 분포를 결정하는 것이 아니고 데이터의 형태를 보고 그에 알맞는 분포를 선택한다는 것을 생각하면 지극히 상식적인 관점에서 만들어진 분포라고 생각할 수 있습니다.

그렇다면 이 산봉우리 분포는 어떤 식으로 표현될 수 있을까요?

두 가지를 이용합니다.

  • 산봉우리 정상을 나타내는 ‘데이터의 중심’ : 평균
  • 산의 경사를 나타내는 ‘데이터의 퍼짐 정도’ : 분산

평균에 따라 산은 좌우로 이동이 가능하며 분산에 따라 산의 경사가 완만한지 가파른지를 가늠할 수 있습니다. 만약 완만하다고 하면 데이터는 비교적 중심에 덜 모여 있을 것입니다. 이 경우 분산은 높다고 할 수 있습니다. 반대로 경사가 가파르다면 데이터들은 중심에서 밀도가 높고 이 경우 분산은 낮습니다.

이해를 돕기 위해 간단한 그림 하나를 보겠습니다.

library(reshape)
library(dplyr)

k1 = c()
p1 = c()

for(k in seq(-15,15,by = 0.01)){

  p = dnorm(x = k,mean = 0,sd = 3)
  k1 = c(k1,k)
  p1 = c(p1,p)

}

k2 = c()
p2 = c()

for(k in seq(-15,15,by = 0.01)){

  p = dnorm(x = k,mean = 0,sd = 5)
  k2 = c(k2,k)
  p2 = c(p2,p)

}


DF = data.frame(
  k = k1,
  p1 = p1,
  p2 = p2
)


DF %>%
  melt(id.vars = c("k")) %>%
  ggplot() +
  geom_line(aes(x = k, y = value, col = as.factor(variable))) +
  geom_vline(xintercept = 0,linetype = 'dashed') +
  theme_bw() +
  theme(legend.position = 'none') +
  xlab("") + ylab("") +
  scale_y_continuous(expand = c(0,0))

위 그림을 보면 두 가지의 정규분포가 있습니다. 데이터의 중심이자 평균은 동일하고 분산은 파란색이 붉은색보다 높습니다. 그래서 산봉우리 형태의 경사가 파란색이 더 완만한 것을 볼 수 있습니다. 정규분포의 형태를 결정해주는 평균과 분산은 각각 \(\mu\) 와 \(\sigma^2\)로 표현합니다.

\[ Y \sim N(\mu , \; \sigma^2) \ 이면, \]

\[ f(y) = \frac {1 }{ \sqrt{2\pi}\cdot \sigma} \; e^{-\frac12 (\frac {y-\mu} {\sigma})^2}\; , \quad -\infty < y<\infty \]

\[ E[Y]=\mu \qquad V[Y]=\sigma^2 \]

정규분포에서는 분산 \(\sigma^2\) 의 양의 제곱근인 \(\sigma\)를 표준편차라고 부릅니다. 이 역시 데이터가 얼마나 퍼져있는지에 대한 척도로 볼 수 있습니다. 분산이 있는데도 불구하고 굳이 표준편차가 쓰이는 이유는 단위(스케일)의 문제입니다. 분산이라는 것은 실제 자료의 제곱을 이용해서 만들어집니다. 그렇기에 분산은 실제 자료에서 제곱된 단위(스케일)을 가지고 있고 양의 제곱근을 통해 구해진 \(\sigma\)는 실제 데이터들과 같은 단위를 가지고 있습니다.

정규분포의 중요한 특징 중 하나는 정규분포를 따라는 확률변수의 선형조합 역시 정규분포를 따른다는 사실입니다. 예를 들어 평균이 10인 정규확률변수가 가정된 데이터에 모두 -10씩 해주면 그들 역시 정규분포를 따르고 평균은 0이 될 것 입니다. 같은 식으로 분산이 100인 정규확률변수가 가정된 데이터에 모두 10씩 나누어 주면 그들 역시 정규분포를 따르고 분산은 1이 됩니다. 이는 곧 중심과 단위(scale)를 자유자재로 바꾸어 줄 수 있는 유연성을 가졌다는 의미입니다.

이 성질을 이용해 정규분포 데이터의 단위를 맞추어 줄 수 있습니다. 각 데이터에서 평균을 빼고 표준편차를 나누어 주면 어떤 정규확률 변수든 평균이 0, 분산이 1인 동일한 단위를 갖게 됩니다. 이를 정규화한다고 표현하며 정규화된 분포를 표준정규분포(standard normal distribution)라고 합니다.

\[ Y \sim N(\mu, \; \sigma^2 ) 일 \; 때, \quad (\frac { Y-\mu } {\sigma}) \; \sim N(0,1) \]

정규화의 실질적 의미는 각 데이터들의 단위를 제거하여 서로 다른 집단끼리도 비교할 수 있는 것입니다. 대부분의 비교 검정은 다 이런 컨셉을 근간에 두고 진행됩니다.

정규분포가 중요한 이유는 비단 많은 연속형 데이터가 정규분포를 따르기 때문만은 아닙니다. 표본들을 뽑아서 표본들의 평균을 구해보면 그것들이 따르는 분포가 정규분포이기 때문에 더욱 중요합니다. 이를 표본분포(통계량의 확률분포)라고 합니다.

예시

\(Y\sim N(20,5)\)인 확률변수에 대해 표준화를 진행해보도록 하겠습니다.

x1 = rnorm(n = 1000, mean = 20, sd = 5)
x2 = scale(x1)

DF = data.frame(
  x1 = x1,
  x2 = x2
)

DF %>%
  melt() %>%
  mutate(variable = ifelse(variable == "x1", "비표준화","표준화")) %>%
  ggplot() +
  geom_density(aes(x = value, fill = variable), alpha = 0.4) +
  theme_bw() +
  theme(legend.position = c(0.8,0.6)) +
  xlab("") + ylab("") + labs(fill = "")

다음으로는 수리영역 모의고사 문제를 R로 한번 풀어보도록 하겠습니다.

문제) 어느 실험실의 연구원이 어떤 식물로부터 하루 동안 추출하는 호르몬의 양은 평균이 \(30.2mg\), 표준편차가 \(0.6mg\)인 정규분포를 따른다고 한다. 어느 날 이 연구원이 하루 동안 추출한 호르몬의 양이 \(29.6mg\) 이상이고 \(31.4mg\) 이하일 확률을 오른쪽 표준정규분포표를 이용하여 구한 것은?(2016년 9월 모의고사 가형 10번)

\[ Y\sim N(30.2,0.6)\ 일때, \\ P[29.6 \leq Y \leq 31.4] =\ ? \]

\[ Z_1= \frac{29.6-30.2}{0.6}\\ Z_2= \frac{31.4-30.2}{0.6} \]

Z1 = (29.6-30.2) / 0.6
Z2 = (31.4-30.2) / 0.6

print(paste("Z1 :",round(Z1),",","Z2 :",Z2))
[1] "Z1 : -1 , Z2 : 2"

\[ P[-1 \leq Z \leq 2] = P[Z \leq 2]-P[Z \leq -1] \]

k1 = c()
p1 = c()

for(k in seq(-5,5,by = 0.01)){

  p = dnorm(x = k,mean = 0,sd = 1)
  k1 = c(k1,k)
  p1 = c(p1,p)

}


ggplot(NULL) +
  geom_line(aes(x = k1, y = p1)) +
  geom_area(aes(x = ifelse(k1 > -1 & k1 <  2, k1, 0), y = p1),fill = 'royalblue',
            alpha = 0.4) +
  theme_bw() +
  scale_x_continuous(breaks = seq(-5,5, by = 1)) +
  scale_y_continuous(expand = c(0,0),limits = c(0,0.45)) +
  xlab("") + ylab("")

# pnorm => 누적확률 구하기
Answer = pnorm(q = 2, mean = 0,sd = 1, lower.tail = TRUE) - 
  pnorm(q = -1, mean = 0,sd = 1, lower.tail = TRUE) 

print(paste("Answer : ", round(Answer,5)))
[1] "Answer :  0.81859"

다음 분포를 배우기 전에 이 모수와 통계량, 그리고 평균의 표본분포에 대해 다루도록 하겠습니다.

8. 모수(parameter)와 통계량(statistic)

  • 모수 : 통계적 추론에서 분석자의 최종목표이자 모집단(population)의 특성

  • 모집단 : 분석 대상이 되는 집단의 전체

  • 통계량 : 해당 모집단에서 추출한 표본(sample)을 이용해 만든 것으로 표본들의 함수

  • 표본 : 모집단으로부터 무작위 추출이 되었으며, 모집단을 대표하는 분석 대상

  • 검정 : 주장하고자 하는 가설이 맞는지 틀린지에 대한 의사결정 과정

  • 추정 : 표본(통계량)을 이용하여 모집단(모수)를 추정하는 과정

    • 점추정량 : 하나의 값(점)으로 모수를 추정한 값
    • 구간추정량 : 신뢰구간을 통해 모수를 포함하고 있을 범위를 추정한 값들의 범위

    때로는 통계적 검정을 위해 특수한 통계량을 사용하기도 하고 모수를 추정하기 위해 통계량을 구해보기도 합니다. 전자의 경우는 검정통계량(test statistic)이라 부르고 후자의 경우는 특별히 추정량(estimator)라고 부릅니다.

간단한 예를 하나 들어 보겠습니다.
우리가 원하는 정보는 대한민국 남성의 평균 키입니다. 우리는 이것을 알아보기 위해서 무작위로 100명의 남성을 뽑아서 그들의 키를 평균 내 보았습니다. 이 경우 모집단은 대한민국 남성이며 표본은 뽑은 100명의 남자입니다. 또한 우리의 최종 목표이자 모집단의 특성인 모수는 대한민국 남성의 평균 키라고 할 수 있겠고 표본들을 통해 구한 표본들의 평균 키는 통계량이자 모수를 추정하는 추정량입니다. 또한 많은 분들이 착각하는 부분이 있는데, 통계량은 꼭 표본평균, 표본분산과 같이 모수를 추정하는 것들만이 아닙니다. 표본들의 함수는 전부 통계량입니다. 다만 다음과 같은 표본평균과 표본분산이 매우 자주 사용되는 통계량일 뿐입니다.

\[ \overline X = \frac 1 n \sum_{i=1}^n x_i \]

\[ s^2 = \frac 1 {n-1} \sum_{i=1} ^n (x_i-\bar x )^2 \]

굳이 이런 함수가 아니더라도 표본들을 이용해서 만든 모든 값들은 통계량이라고 할 수 있습니다. 예를 들어 표본들 중 가장 큰 수, 표본 중 홀수 번째 표본만 더한 값 등도 사용할 일은 별로 없을 수 있지만 하나의 통계량입니다.

자유도

대표적인 점추정량인 표본평균(\(\overline X\) )과 표본분산(\(s^2\))은 다음과 같이 구해집니다. \[ \overline{X} = \frac{1}{n}\sum_{i=1}^{n}X_i \]

\[ s^2 = \frac{1}{n-1}\sum_{i=1}^{n}(X_i-\overline{X})^2 \]

분명 두 점추정량 모두 \(n\)개의 전체자료를 반영하여 구하는데, 표본평균은 \(n\)으로 나누어 주는 것에 반에 표본분산은 \(n-1\)로 나누어줍니다. 이것은 표본분산을 구하는 과정에서 표본평균으로 사용하였기 때문입니다. 이는 자유도와 관련된 것으로, 간단한 예시와 함께 알아보도록 합시다.

자유도(degree of freedom)는 자유롭게 값을 선택할 수 있는 데이터의 갯수로, 통계량의 관점에서 봤을 때, 온전히 해당 통계량의 정보를 생성하는 데에 사용되는 자료 수라고 생각할 수 있습니다.

이 아이디어를 떠올릴 만한 간단한 예를 하나 들어보겠습니다. 4명의 아이들에게 아이스크림을 사주려고 하는 상황을 떠올려 봅시다.

마켓에서 아이스크림은 종류가 다른 4개의 아이스크림밖에 없습니다. 첫 번째로 골라가는 아이는 4개 중에 먹고 싶은 것을 고를 수가 있습니다. 두 번째로 골라가는 아이는 3개 중에 골라가고, 세 번째 아이는 2개 중에 골라갑니다. 마지막 아이는 남는 것을 먹어야 됩니다. 여기서 아이스크림을 자유롭게 선택한 아이는 총 3명, 자유도는 3이 됩니다.

이 상황을 표본분산에 적용해보겠습니다.

우선 \(\overline X\) 에 대해 생각해 봅시다. 점추정량인 \(\overline X\) 은 확률변수이지만, 실제 표본분산은 구하는 데 사용된 값은 조사된 표본에서 얻어진 값입니다. 즉, 값이 고정되어 있습니다. 순차적으로 생각하면, \(X_1\)은 값을 자유롭게 선택할 수 있습니다. \(X_2\), \(X_3\)도 마찬가지입니다. 그렇게 쭉 진행되어서 \(X_{n-1}\)까지, 확률변수 \(X_i\)는 자유롭게 값을 선택할 수 있습니다. 하지만 마지막에 해당되는 \(X_n\) 은 자유롭게 값을 선택할 수가 없습니다. 그 이유는 고정되어 있는 값, 표본을 통해 구해진 평균(\(\overline{X}\))을 맞추어 주는 값을 가져야 하기 때문입니다. 이와 같은 이유로 표본평균을 사용하게 될 시, 자유도는 n이 아닌 n-1로 계산이 됩니다. 또한 이 \(n-1\)은 온전히 표본분산에 대한 정보를 생성하는데 사용된 자료의 갯수입니다. 1개의 자료는 위와 같은 논리로 \(\overline X\) 라는 표본평균을 맞춰주어, \(s^2\) 을 성립하게 하는 데 사용했으나 \(s^2\) 이 가지고 있는 퍼짐의 정도를 나타내는 정보를 평가하는 데는 아무 기여를 하지 못했기 때문입니다.

9. 표본분포(Sample Distribution)

  • 표본분포 : 통계량의 확률분포

    표본분포를 한 마다로 정리하면 통계량의 확률분포입니다. 모집단이 어떤 특정한 분포를 따르고 있을 때 \(n\)개의 표본을 추출했다면 그 표본들은 모집단의 확률분포에 기반하여 추출된 것이라고 할 수 있습니다. 이 관점으로 보면 표본들은 확률표본(random sample)이고 통계량은 그 표본들의 함수이므로 당연히 특정한 확률 구조를 갖는 확률변수로 볼 수 있습니다. 이 통계량의 확률 구조를 표본분포라고 합니다.

평균이 \(\mu\)이고 분산이 \(\sigma^2\)인 정규 모집단에서 \(n\)개의 표본을 뽑았다고 하면, 표본평균 \(\overline X\)는 정규확률샘플들의 선형 결합이고 이는 위에서 언급한 정규분포의 특성으로 인해 정규분포를 따를 것입니다. 구체적으로 보면 다음과 같은 정규분포를 따릅니다.

\[ 모집단의 \; 분포가 \; N(\mu , \sigma^2)\;라면, \quad \overline X \; \sim N(\mu, \frac {\sigma^2} {n}) \]

이것이 \(\overline X\)라는 통계량의 확률분포, 즉, 평균의 표본분포입니다. 물론, \(\overline X\) 외의 다른 통계량들도 특정한 확률구조가 알려져 있는 것들이 있습니다. 그렇지만 우리는 \(\overline X\) 까지만 알고 가겠습니다.

재밌는 것은 표본 수 \(n\)이 어느정도 큰 상황이면 굳이 모집단이 정규분포를 따르지 않다고 하여도 표본평균은 위와 같은 정규분포를 근사적으로 따르게 된다는 것입니다. 이를 중심극한정리(Central Limit Theorem, CLT)라고 하며 모든 통계 검정의 근간이 됩니다. 이 중심극한정리 덕분에 정규분포는 가장 중요한 분포 중 하나로 취급 받습니다. 모집단이 어떤 분포여도, 심지어 우리가 절대 일반화할 수 없는 매우 복잡한 확률구조를 가지고 있어도 표본평균의 분포는 정규분포로 통일됩니다.

그렇다면 이를 난수를 이용해 그림으로 살펴보겠습니다. 두 가지 경우만을 갖는 이항변수의 평균을 가지고도, 무수히 반복하면, 그 평균은 다음과 같이 정규분포 모양을 띈다는 것을 확인 할 수 있습니다.

library(ggplot2)

K = c(10, 100, 1000, 10000, 100000)

for(k in K){
  PROB_LIST = c( )

  for( i in 1:k){
    BI = sample(c("H","T"),size = 200, replace = TRUE, prob = c(0.5,0.5))
    PROB = ifelse(BI == "H" , 1, 0 )
    PROB = sum(PROB) / 200
    PROB_LIST = c(PROB_LIST, PROB)
  }
  CLT = data.frame(PROB = PROB_LIST)

  graph = ggplot(CLT,aes(x = PROB)) +
    geom_bar(fill = 'royalblue', alpha = 0.3) + 
    theme_bw() +
    xlab("") + ylab("")


  ggsave(file = paste("D:\\Dropbox\\MustLearning with\\Graph/",k,'.jpg',sep=""))
}

보시는 것과 같이 표본평균의 분포는 횟수가 많아질수록, 정규분포에 근사해지는 것을 알 수 있습니다. \[ 모집단의\; 분포와 \;상관\; 없이\; 평균이\; \mu,\;분산이 \; \sigma^2 \;일\;때,\quad\overline X \approx N(\mu , \frac { \sigma^2}{n}) \]

이는 표본평균이 ‘근사적으로’ 정규분포를 따른다는 것이고, 표본 수 \(n\)이 커질수록 더욱 정확히 따른다는 뜻을 내포하고 있기도 합니다. 매우 중요한 부분이니 꼭 기억하고 가시기 바랍니다.

10. \(t\)분포(student’s t-distribution)

\(t\)분포를 쉽게 이해하려면, 이 분포는 순전히 평균 검정을 하기 위해 고안되었다는 점을 알고있어야 합니다.

만약 모집단이 정규분포를 따른다고 하면, 표본평균은 \(N(\mu, \; \frac {\sigma^2}{n})\) 을 따른다는 것을 기억하실 겁니다. 그래서 과거에는 이를 이용하여 평균 검정을 해왔는데, 일반적으로 우리는 모분산인 \(\sigma^2\)을 알 길이 없습니다. 만약 \(n\)이 매우 크다면 표본평균은 더욱 정확히 정규분포를 따를 것이고, 표본평균의 분산 역시 0으로 점차 수렴하게 될 것입니다. 이 경우, 사실상 \(\sigma^2\)의 영향이 미미하게 되어 무시할 수 있지만, 표본 수가 작을 때는 문제가 될 수 있습니다. 모분산 \(\sigma^2\)을 정확히 알 수 없을 뿐 아니라, 그 값에 따라 정규분포의 모양이 크게 좌지우지되어, 정규분포를 이용한 검정이 그 신뢰성을 잃게되기 때문입니다.

이 경우의 검정을 위해, 정규분포와 형태는 비슷하지만 모분산 항을 포함하고 있지 않고, 대신 표분분산을 이용한 분포를 고안해 내는데, 그것이 \(t\)분포입니다.

\(t\)분포는 정규분포와 같이 중심을 기준으로 좌우 대칭이고 종모양의 형태를 갖고 중심은 0으로 고정되어있습니다. 즉, 위에서 다룬 표준정규분포와 중심이 같고 자유도(degree of freedom, df)에 따라 종의 형태가 조금씩 변화합니다. df는 표본 수와 관련이 있는 개념으로, 표본이 많아지면 표준정규분포와 거의 동일한 형태를 보입니다.

\[ Y \sim t(n) 이면, \]

\[ f(y) = \frac {\Gamma(\frac {n+1}{2})} {\Gamma(\frac n 2 ) \cdot \sqrt{\pi n}} \cdot (\frac n {y^2 +n})^{\frac {n+1}{2}}\; ,\qquad -\infty < y < \infty \]

\[ E[Y] = 0 \qquad V[Y]= \frac n {n-2} \]

\(t\)분포의 또 다른 특징은 표본 수가 적으면 적을수록 표준정규분포에 비해 양쪽 꼬리가 더 두껍다는 것입니다. 이는 데이터들이 그만큼 중심에 덜 모여있다는 것입니다.

정규분포와 \(t\)분포는 검정의 관점에서 바라볼 필요도 있습니다. 정규분포를 이용한 검정의 경우, 중심에서 비교적 조금만 벗어나도 다르다는 결과를 보이지만 \(t\)분포는 정규분포에 비해 상대적으로 더 벗어나도 같다는 결과를 줍니다. 이는 표본 수가 적은데서 나오는 우연에 의한 극단적인 값에 대해서도 어느정도 유연한 검정 결과를 준다고 할 수 있습니다.

물론 이 역시 표본이 적을 때의 경우이고 표본이 많아진다면 표준정규분포와 거의 동일한 결과를 보입니다. 극단적으로 표본이 무한에 가까워진다면 \(t\)분포는 표준정규분포와 동일한 확률 구조를 갖게될 것입니다.

아래 그림은 표준정규분포와 \(t\)분포의 차이를 보여주는 그림으로 \(t\)분포의 경우 자유도가 3인 경우입니다.

각 그래프의 색칠한 부분은 좌우 각각 데이터의 2.5% 씩, 합쳐서 5%의 영역입니다. 위 그림에서 확인할 수 있듯, 표준정규분포 보다는 \(t\)분포가 훨씬 더 중심에서 많이 퍼져있음을 볼 수 있습니다. 만약 이대로 검정을 하게 된다면 표준정규분포는 중심과 2정도만 차이나도 다르다는 결과를 주겠지만, t분포는 중심과 3이 차이난다고 하여도 같다는 결과를 줄 것입니다. 이와 같은 결과를 ‘보수적이다’ 혹은 ‘보수적인 검정이다’ 라고 표현하는데 웬만큼 확신이 없으면 다르다는 결과를 주지 않기 때문에 그렇게 불립니다.

즉, 평균에 대한 검정에서 표준정규분포를 이용한 검정보다 \(t\)분포를 이용한 검정이 더 보수적인 접근방법이라고 할 수 있습니다. 자세한 것은 \(t\)검정 파트에서 데이터와 함께 다시 다루겠지만 세 가지 정도는 기억해두고 가도록 합시다.

  • 정규분포와 다르게 \(t\)분포는 모분산 \(\sigma^2\) 를 포함하고 있지 않다. 이는 표본 수가 적을 때 신뢰성을 더해준다.

  • 표본 수가 적을 때, \(t\)분포는 표준정규분포보다 양쪽 꼬리가 더 두텁다. 이는 보다 보수적인 검정을 하게 해준다.

  • 표본수가 많아지면 \(t\)분포와 표준정규분포에 근사한다.

11. \(\chi^2\) 분포와 \(F\) 분포 (Chi-square distribution and F-distribution)

통계에서는 변동(분산)은 비교, 관계 등 모든 분석에서 사용되는 개념입니다. 변동은 단순히 해당 변수의 퍼짐 정도를 나타내는 것뿐 아니라 비교의 신뢰성을 표현하기도 합니다. 예를 들어, 두 집단의 평균이 큰 차이가 없어도 그 평균의 변동이 크다면 신뢰하기 힘듭니다. 또한 변동은 볼륨을 뜻하기도 합니다. A라는 변동과 B라는 변동이 있을 때, 비교를 통하여 더 큰 볼륨(파워, 확장성)을 가진 변동을 알 수 있습니다. 우리는 이러한 변동을 측정하는 도구로 제곱합 구조 (\(\sum a^2\)) 사용하게 됩니다. 그 이유는 변동을 측정하는 방법에 있습니다. 변동은 어떤 값을 기준으로 각 관찰값들이 그 기준값과 얼만큼 떨어져 있는지 평가하는 방식으로 측정하게 되는데, 대부분의 경우 평균을 사용하게 됩니다. 그렇지만 단순히 평균과 관찰값들의 거리를 이용하면 그 합이 0이 되어 의미가 없어지기 때문이죠. 이 구조적인 문제를 해결하고자 기준값과의 거리의 제곱을 이용하게 됩니다. 그렇기에 변동은 오로지 양적인 값으로만 표현됩니다.

또한 두 집단의 변동을 비교하는 방법으로 두 변동의 차이를 사용하면 곤란합니다. 비교하려는 집단의 단위가 다를 수 있을 뿐더러 각 집단의 수를 반영해주어야 하기 때문입니다. 예컨대, 한 집단은 cm 단위로 조사되었고 다른 집단은 m단위로 표현되어 있는 길이를 생각해 봅시다. 같은 수준의 변동을 가졌다고 해도 막상 제곱합을 구해보면 cm로 조사된 집단의 더 크게 나올 것입니다. 단위가 다르기 때문이죠. 또한 10개 데이터에서와 100개 데이터에서의 분산을 똑같이 보면 곤란합니다. 이는 ‘제곱의 합’ 꼴로 표현되므로 자료 수가 많으면 많을수록 더욱 커질 수 밖에 없는 구조이기 때문이죠.

이러한 특성들 때문에, 변동을 이용하여 검정, 추정을 하고 싶으면 위와 같은 상황들을 전부 고려한 확률구조가 필요합니다. 변동의 ‘단위’ 와 ‘자료 수’ 를 반영할 수 있도록 고안된 분포가 바로 \(\chi^2\) 분포이고 \(\chi^2\) 들의 비(ratio)가 따라는 분포가 \(F\) 분포입니다. \(\chi^2\) 들의 비는 두 변동을 비교하기 위해 사용되는 것으로, 이 역시 자료 수와 관련된 자유도가 반영됩니다.

Chi_2 = rchisq(n = 100, df = 2)
Chi_3 = rchisq(n = 100, df = 3)
Chi_10 = rchisq(n = 100, df = 10)
Chi_30 = rchisq(n = 100, df = 30)

DF_Chi = data.frame(
  `df=2` = Chi_2,
  `df=3` = Chi_3,
  `df=10` = Chi_10,
  `df=30` = Chi_30
)

DF_Chi %>%
  melt() %>%
  ggplot() + 
  geom_density(aes(x = value, fill = variable),alpha = 0.4) +
  theme_bw() + 
  xlab("") + ylab("") + labs(fill = "") +
  theme(legend.position = "bottom") +
  ggtitle("카이제곱 분포")

F_11 = rf(n = 100, df1 = 1, df2 = 1)
F_21 = rf(n = 100, df1 = 2, df2 = 1)
F_52 = rf(n = 100, df1 = 5, df2 = 2)
F_101= rf(n = 100, df1 = 10, df2 = 1)


DF_F = data.frame(
  `df=1,1` = F_11,
  `df=2,1` = F_21,
  `df=5,5` = F_52,
  `df=10,1` = F_101
)

DF_F %>%
  melt() %>%
  ggplot() + 
  geom_density(aes(x = value, fill = variable),alpha = 0.05) +
  theme_bw() + 
  xlab("") + ylab("") + labs(fill = "") +
  theme(legend.position = "bottom") + xlim(0,5) +
  ggtitle("F분포")

)

\(\chi^2\) 변수를 만드는 아이디어는 정규분포를 따르는 변수에서 시작합니다. 우선 단위를 일반화하기 위해 표준화를 한 후 제곱을 하면 자유도 1인 \(\chi^2\) 변수가 됩니다. 또한 \(\chi^2\) 변수는 가법성이라고 불리는 성질이 있어, 독립적인 \(\chi^2\) 변수끼리 더해도 \(\chi^2\) 분포를 따르게 됩니다.

\[ Z \sim N(0, 1 ) \\\; \\ \Rightarrow \quad Z^2 \sim \chi^2 (df=1)\\ \;\\ \Rightarrow \quad \sum_{i=1}^{n}Z_i ^2 \sim \chi^2(df=n) \quad (Z_i \;끼리는 \; 서로\; 독립) \]

이것을 조금 풀어서 생각해 봅시다. iid는 독립적으로 같은 분포를 따른다는 뜻입니다.
\[ X_i \; \sim \; iid \; N(\mu, \sigma^2 ) \\ \; \\ \Rightarrow \quad \left( \frac{ X_i -\mu } {\sigma} \right) = Z_i \; \sim \ iid \; N(0,1) \\ \; \\ \Rightarrow \quad \left( \frac{ X_i -\mu } {\sigma} \right)^2 = {Z_i}^2 \; \sim \; iid \; \; \chi^2 (1) \\ \; \\ \Rightarrow \quad \sum_{i=1 }^n \left( \frac{ X_i -\mu } {\sigma} \right)^2 = \sum_{i=1}^n {Z_i}^2 = Q \; \sim \; \chi^2 (n) \]

위와 같이 정규분포의 제곱합은 \(\chi ^2\) 분포를 따릅니다.

또한 \(F\) 분포는 독립적인 \(\chi^2\) 변수의 비가 따르는 분포라고 하였습니다. \[ Q_1\sim \chi^2 (n_1) \;, \quad Q_2 \sim \chi^2 (n_2) \\ \;\\ \Rightarrow \quad \frac { Q_1 /n_1} {Q_2/n_2} \; \sim F(n_1 , n_2) \; , \quad( Q_1 과 \; Q_2는 \; 독립) \]

\(F\) 분포를 이용하면 자유도를 반영한 비교가 가능합니다. 이는 후에 분산분석 등에서 실습하도록 하겠습니다.

12. 통계적 추정과 검정

선거철이 다가올 경우, 여러분들은 수없이 많은 표본조사 결과를 여러 매체를 통해 접할 수가 있습니다. ‘어느 후보의 지지율이 OO%이며 신뢰수준 95%에서 조사가 되었다.’ 이런 문구는 매우 익숙하실 것입니다. 통계 분석의 목적은 모집단을 대표할 수 있는 표본을 수집한 뒤, 모집단에 대해 추정을 진행하는 것입니다. 추정은 점추정량과 구간추정량으로 나뉘게 됩니다.일반적으로 추정량이라고 하면 점추정량을 의미하며 이는 모수를 단 하나의 점으로 추측하는 통계량입니다. 예를 들어, 우리가 A카페에 방문한 고객들의 연령대를 조사해야하는데, 모든 고객의 나이정보를 수집할 수가 없는 경우를 가정하겠습니다. 이 경우, 주어진 고객들의 나이 정보를 통해 전체 고객의 평균 나이를 소수점까지 예측하는 것을 ’점추정’이라고 합니다. 하지만, 한정된 정보만으로 전체 집단(모집단)의 정보를 완벽하게 맞추는 것은 불가능합니다. 그렇기에 우리는 모수(고객연령의 평균)를 포함하는 신뢰구간을 구하게 됩니다. 이를 구간추정이라고 합니다. “통계학이 무엇을 하는 학문인가?” 라는 질문이 주어지면 통계학은 ’추정’을 하는 학문이라고 간단하게 설명을 할 수가 있습니다. 검정이란 여러분들이 많이 들어보셨을법한 ’가설검정’을 의미합니다. 주어진 가설이 통계적으로 참인지 거짓인지 밝혀내기 위한 과정입니다. 앞으로 등장하는 모든 분석 모형은 추정과 가설검정을 진행하게 되어 있습니다. 다만, 예외의 경우도 있으나 그 예외의 경우들에 대해서 이 책에서는 다루지 않습니다.

13. 점추정

추정량은 우리가 알고 싶어하는 모수를 표본들을 이용하여 단 하나의 점으로 추측하는 통계량입니다. 그 과정을 점추정(Point estimation)이라고 하며, 그렇게 얻어진 통계량을 점주청량(Point estimator)라고 합니다. 점추정량은 다양한 방식으로 구할 수 있습니다.

모평균을 추정하기 위한 표본평균, 모분산을 추정하기 위한 표본평균 등이 대표적인 점추정량입니다. 물론 하나의 모수를 다른 방법을 통해 추정할 수도 있습니다. 각 끝의 일정 부분씩은 무시하고 나머지 표본들의 평균 계산(절사평균, Trimmed Mean) 역시 모평균을 추정하는 하나의 점추정량이라고 할 수 있습니다. 하지만 역시 가장 많이 쓰는 척도는 표본평균입니다. 그 이유는 수리적인 확장성과 표본평균의 분포를 비교적 쉽게 알 수 있다는 점을 들 수 있습니다.

다만, 이런 점추정에도 몇 가지의 장점과 단점이 있습니다.

점추정의 장점

  • 점추정량은 지극히 직관적이다.

    통계를 모르는 누군가가 한국의 30대 여성의 평균 수입을 묻는다면 점추정량으로 즉각적인 답을 줄 수 있을 것입니다. 점추정량은 매우 직관적이며 합리적입니다.

  • 점추정량은 우리가 원하는 수치를 대체할 구체적인 값을 제시해준다.

    우리가 통계적인 모델링 혹은 함수를 작성하기 위해 30대 여성 수입의 평균치가 필요하나 모평균을 알 수 없을 때, 점추정량으로 간단히 대체할 수 있습니다. 사실상 이는 대부분에 통계이론을 전개하는데 가장 중요한 역할을 합니다. 간단한 예를 말씀드리자면 모분산을 추정하기 위해서는 평균이 필요하기 때문에 표본평균을 이용합니다. 여기서 분산은 각 개별 값들이 평균에서 얼만큼 멀리 떨어져있는지에 대한 척도입니다. 그런데 우리는 ’진짜 평균’을 알 수 없으니 표본들의 평균으로 대체하는 것입니다.

  • 점추정량은 수리적 연산이나 비교에 유연하다.

    경우에 따라서는 다른 집단과의 결합이나 다른 집단으로부터의 분리가 필요할 수 있습니다. 이 뿐 아니라 데이터가 수정되거나 추가되었을 때도 흔히 만나게됩니다. 이런 경우에도 점추정량은 유연히 대처할 수 있습니다.

점추정량의 단점

  • 점추정량은 그저 하나의 점입니다.

    점추정량은 그 이름에서 알 수 있듯이 하나의 점으로 추정합니다. 이 것은 장점이면서 단점이 될 수 있습니다.직관적이지만 하나의 점만 믿고 다음 분석을 진행하기에는 너무 리스크가 많습니다. 점추정량이 정확하게 모수를 추정하지 않고 동 떨어진 값을 보여줄 수 있을 뿐더러, 설령 정확하게 모수에 근접했다고 하여도 점추정량 하나만 보고서는 그 사실을 알 수 없습니다. 또한 같은 맥락으로, 점추정량을 이용해 만든 다른 추정량 및 통계 모형들은 무용지물이 될 수 있습니다.

  • 점추정량은 변동을 가집니다.

    통계량 역시 확률변수이며, 확률분포를 가지는 특성이 있습니다. 이는 점추정량은 정해진 값이 아닌 변동(분산)을 갖는다는 것을 의미합니다. 예컨대, ’남성 키’라는 모평균을 추정하기 위해 샘플링을 통해 표본평균을 구해보니 170이 나온 경우를 생각해봅시다. 이 170은 단지 이번 조사에서 나온 값에 불과합니다. 다음 조사에서는 168이 나올 수도 있고 172가 나올 수도 있습니다. 이것이 첨추정량의 변동(분산)이고 이는 점추정량의 분포와 표본 수 n에 의하여 결정됩니다. 중요한 것은 점추정량 하나만 보고는 이 점추정량이 얼마나 높은 변동을 갖고 있는지 알 수 없다는 것입니다. 만약, 추정량의 변동이 너무 크다면 해당 추정량은 신뢰할 수 없고, 다시 조사하면 지금 값과 완전히 다른 값이 나올 것이기 때문이죠. 그렇기에 추정량은 꼭 추정량의 변동과 함께 보아야 합니다. 이것이 구간추정이자 가설검정의 원리입니다. 자세한 것은 다음 챕터에서 다루도록 하겠습니다.

  • 너무 적은 표본에서의 점추정량은 의미가 없다.

    이는 2번과 근본적으로 같은 이유지만 표본 수라는 관점에서 바라보기 위해 일부러 분류하였습니다. 표본 수가 크지 않다면, 어떤 방법을 이용하든, 점추정은 이상치에 매우 취약합니다. 실제와는 전혀 상관없는 값이 나올 수도 있습니다. 물론 추정 방법에 따라 상대적으로 이상치의 영향을 덜 받는 추정량도 있기는 합니다만, 그 어떤 것도 완전히 자유로울 수는 없습니다. 또한 자주 사용되는 추정량의 대부분은 평균에 기인한 것들인데, 평균은 모든 자료가 동등하게 반영되므로 이상치에 취약합니다. 우리는 때때로 매우 적은 양의 표본만을 이용해야 할 때가 있습니다. 이 경우 점추정량을 해석하기 어려운 경우가 많습니다.

14. 구간추정

구간추정(interval estimation)은 점추정량의 변동을 이용해서 어느 정도의 구간을 추정하는 방법으로 그 결과물이 많이 들어보셨을 신뢰구간(confidence interval, C.I)입니다. 신뢰구간의 길이는 당연히 짧으면 짧을 수록 좋고 길면 사실상 실무적으로 아무 의미가 없을 가능성이 큽니다. 구간추정의 방법은 추정량의 분포를 근사 혹은 가정하여 그 확률 구조를 이용하는 방법부터 여러번의 재추출을 통해 경험적인 방법을 이용하는 것까지 다양하지만 여기서는 전자만 다루도록 하겠습니다. 구간추정의 기본적인 원리는 점추정 값에 그 점추정량의 확률 구조와 점추정량의 변동 정도를 가미하는 것입니다. 구간추정의 기본 요소는 다음 3가지라고 할 수 있습니다.

점추정값

점추정을 한 값입니다. 예를 들어, 모평균의 신뢰구간을 구하고 싶다면 일반적으로 표본평균이을 사용합니다.

점추정량의 확률 구조

구간추정은 점추정의 확률분포를 반영합니다.

  • 정확한 확률분포를 알고 있을 때

    이를 통해 구한 신뢰구간을 정확한 신뢰구간(exact confidence interval)이라고 합니다. 그러나 사실 실제로 우리가 이렇게 정확하게 분석을 할 수 있는 상황은 많지 않습니다.

  • 여러가지 통계적인 방법을 통하여 추정량의 근사적인 분포를 이용하는 방법

    이 경우, 신뢰구간은 점근적 신뢰구간(asymptotic confidence interval) 혹은 근사적 신뢰구간(approximate confidence interval)이라고 합니다. 사실 우리가 구하는 대부분의 신뢰구간은 이 점근적 신뢰구간입니다.

그렇다면 이 확률구조를 어떤 식으로 이용할 수 있을까요?

어떤 확률 하에서, 나올 수 있는 값을 반영하는 방법입니다. 그래서 95% 신뢰구간, 90% 신뢰구간 등, 앞에 신뢰 정도를 확률로 나타내주는 것입니다. 다시 말해, 추정량의 분포를 통해 허용할 수준을 결정하게 되는 것이지요. 만약 신뢰성을 높인다면 신뢰구간은 길어질 것이고 약간 느슨한 신뢰성을 요구하면 신뢰구간은 짧아질 것입니다.

추정량의 표준편차(변동의 척도)

마지막으로 추정량의 표준편차를 반영합니다. 이 추정량의 표준편차를 흔히 표준오차(standard error)라고 표현하고 이는 단순히 모 표준편차처럼 각 점들이 평균과 얼마나 떨어져 있냐에 대한 것 말고도 해당 추정량의 변동 정도로, 신뢰성을 의미합니다. 변동이 적으면 신뢰할만한 추정량이고 그렇지 않다면 신뢰하기 힘든 추정량이 되겠지요. 만약 표준오차가 크다면 신뢰구간은 길어질 것이고 크지 않다면 짧아질 것입니다.

분포라는 것에 변동이 포함되어있기 때문에 2번과 3번은 사실 같은 내용입니만 표준오차에 대한 개념설명을 위해 분리해 두었습니다. 위 내용은 처음 읽고는 직관적으로 이해하기 어려울 수 있으니 꼭 밑의 예와 그래프를 보고 다시 읽어보시기 바랍니다.

신뢰구간의 길이는 곧 우리가 이 구간을 의미있게 사용할 수 없는가에 대한 척도인 동시에 가설검정을 했을 때의 기각할 범위를 알려줍니다. 구간추정의 원리는 가설검정의 원리와 정확히 일치합니다. 가설검정 역시 점추정량과 그확률분포, 변동 정도를 반영하여 실시하게 됩니다. 다만 가설검정은 한 점에대한 검정 결과고 구간추정은 전체적인 신뢰할만한 범위를 알려줍니다. 당연히 신뢰구간이 정보력이 훨씬 많습니다.

그럼 구체적인 예를 들어 알아보도록 하겠습니다.

한국 남성의 키는 정규모집단을 따른다고 했을 때 100명의 표본을 뽑아 평균 키를 구간추정 해보려고 합니다. 샘플링 결과 표본 평균은 170, 표본 표준편차는 10이 나왔고 이를 이용해 95% 신뢰구간을 구하려고 합니다. 이제 우리는 이 표본평균과 관련된 확률 구조가 필요합니다. 유명한 정리를 하나 사용해보도록 합시다. 모집단이 정규분포를 따른다고 가정하면 도 정규분포를 따를 것입니다. 그렇다면 스튜던트 정리에 의해 다음이 성립합니다.

\[ T=(\frac{\overline{X}-\mu}{s/\sqrt{n}}) \sim t(n-1) \]

검정통계량의 분포를 도출하였기 때문에, t분포를 이용해 다음과 같이 검정통계량과 관련된 확률을 계산할 수 있습니다.

\[ P \left[ \left| \frac{\overline{X}-\mu}{s/\sqrt{n}} \right|\leq t_{0.975}(n-1) \right]=0.95 \]

만약 \(T\)가 정확하게 \(t\)분포를 따른다면 위 식은 자명한 사실일 것입니다. 풀어서 생각해보면 어렵지 않습니다.

  • \(T\)는 자유도가 \(n-1\)인 \(t\)분포를 따르므로 좌우 끝에 2.5%씩 제외한 영역에 포함될 확률이 95%입니다.

  • \(t\)분포는 0을 기준으로 좌우가 동일한 대칭분포이기 때문에, 좌우 2.5%의 영역을 나누는 기준 값은 부호만 다를 뿐, 절댓값은 동일합니다.

  • \(t_{0.975}(n-1)\)는 자유도가 \(n-1\)인 \(t\)분포에서 97.5%가 누적되었을 때의 값입니다. 그리고 \(t_{0.025}(n-1)\)과 부호만 다를 뿐, 절댓값은 똑같습니다. 이를 역확률값이라고 부릅니다.

우리는 100명의 표본을 뽑았으니 \(T\)값은 자유도가 99인 \(t\)분포를 따르게 되고, 양쪽 극단에 2.5%씩 남겨둔 역확률 값을 그림으료 표현하면 다음과 같습니다.

k1 = c()
p1 = c()

for(k in seq(-5,5,by = 0.01)){

  p = dt(x = k,df = 99)
  k1 = c(k1,k)
  p1 = c(p1,p)

}

DF = data.frame(
  k1 = k1,
  p1 = p1
)

ggplot(DF) +
  geom_line(aes(x = k1, y = p1)) +
  geom_area(aes(x = ifelse(k1 > qt(p = 0.025, df = 99) &
                             k1 < qt(p = 0.975, df = 99), k1, 0), y = p1),
            fill = 'red', alpha = 0.2) +
  geom_text(aes(x = 0, y = 0.2), label = "95%") +
  theme_bw() +
  scale_x_continuous(breaks = seq(-4,4, by = 1)) +
  scale_y_continuous(expand = c(0,0),limits = c(0,0.45)) +
  xlab("") + ylab("")

15. 가설검정

통계적 가설검정은 어떤 가설을 세우고 그 가설이 사실일 가능성과 사실이 아닐 가능성을 비교해서 의사결정을 하는 하나의 추론과정입니다. 그리고 언제나 강조하지만, 가능성은 곧 확률로 표현되고 확률을 계산하기 위해서는 확률분포가 필요합니다. 결국 추정량의 확률분포를 가정하거나 근사시키는 방법으로 구간추정과 동일한 아이디어, 동일한 결과를 보여줍니다. 가설검정을 이해하기 위해서는 몇 가지 용어에 대한 학습이 필요합니다. 정리해 보도록 하겠습니다.

귀무가설(Null Hypothesis, \(H_0\))

귀무가설은 분석자가 검정하기를 원하는 가설입니다. 또한 통계적 가설검정의 시작이자 끝입니다. 왜 그런지는 가설검정의 과정을 간단하게 요약하면 다음과 같습니다.

  1. 얻어진 표본을 이용해 귀무가설 하에서 가정되는 확률분포를 계산할 수 있는 형태를 만듭니다.
  2. 귀무가설 하에서 가정되는 확률분포를 검토해서 의사결정을 합니다.

귀무가설이 사실일 것 같으면 ‘귀무가설을 기각하지 못한다’ 라고 표현하며 그렇지 않으면 ‘귀무가설을 기각한다’ 라고 표현합니다. 위의 표현을 보면 알 수 있듯이 모든 가설검정은 귀무가설 중심으로 이루어집니다. 이는 통계적으로 매우 중요한 관점입니다. 검정의 모든 과정은 귀무가설이 사실이라는 가정하에 이루어지고 일반적으로 우리의 목표는 귀무가설이 사실이 아니라는 것을 증명하는 것입니다. 그렇기에 귀무가설을 기각하지 못한다고 하더라도 귀무가설이 사실이라고 해석하기 보다는 ‘귀무가설이 틀렸다는 확실한 증거를 찾지 못했다’ 정도로 생각하시는게 정확한 시각입니다.

대립가설(Alternative hypothesis, \(H_1\))

대립가설은 귀무가설이 기각 되었을 때 받아들여지는 가설입니다. 그렇기에 당연하게도 귀무가설과 수학적으로 배타적입니다(exclusive). 두 가설의 교집합은 없고 두 가설의 합집합은 전체집합입니다. 대립가설은 검정의 대상이 아닙니다. 다만 우리가 선택한 귀무가설에 반하는 결과가 나올 시 선택되는 것 뿐이죠. 그래서 대부분 대립가설은 귀무가설은 사실이 아니다(\(H_1 : not\; H_0\) ) 라고 표현하곤 합니다.

제 1종 오류(type 1 error)와 제 2종 오류(type 2 error) 그리고 유의수준(significance level)

  • 1종 오류는 귀무가설이 사실일 때 귀무가설을 기각할 확률이고, 일반적으로 \(\alpha\)라고 표현합니다.
  • 2종 오류는 귀무가설이 사실이 아닐 때, 귀무가설을 기각하지 않을 확률이고 \(\beta\)라고 표현합니다.

즉, 두 경우 모두 분석자가 잘못된 선택을 하게 될 확률(오류율)입니다.

오류(Error)는 어떤 오류를 막론하고 일단은 낮은 것이 중요합니다. 하지만 같은 표본 하에서 우리는 이 두가지의 오류를 동시에 줄이지 못합니다. 흔히 Trade - off관계라고 할 수 있습니다. \(\alpha\)를 줄이려고 하면 \(\beta\)가 늘어나며, 반대로 \(\beta\)를 줄이려고 하면 \(\alpha\)가 늘어나게 됩니다. 이 두 경우를 동시에 줄이는 방법은 오로지 표본 수 n을 늘려가는 방법밖에 없습니다.

그렇기에 고정된 표본 수 하에서 우리는 하나의 오류율을 고정시키고 분석을 진행합니다. 우리가 관심있는 것은 언제나 귀무가설이므로 일반적으로 귀무가설이 사실일 때 귀무가설을 기각할 확률, 즉 1종 오류를 고정시킵니다. 여기서 고정시킨다는 것은 그 한계치를 정해둔다는 의미입니다.
가설검정을 할 때 \(\alpha = 0.05\) 혹은 \(\alpha = 0.1\)과 같은 문구들을 보았을 것입니다. 여기서 알파가 바로 제 1종오류의 허용치입니다. 귀무가설이 사실일 때 귀무가설을 기각할 확률의 한계치를 5% 혹은 10%로 고정시키고 분석을 하는 것이죠. 이 최대 허용치를 유의수준이라고 부릅니다.
일반적으로 유의수준과 1종오류는 같지만 이산형과 같이 확률을 연속적으로 컨트롤할 수 없는 경우에는 유의수준보다 1종오류가 작을 수 있습니다. 하지만 우리는 대부분 연속형 검정을 다루기 때문에 대부분 같다고 생각하시면 될 것 같습니다.

검정통계량(test statistic)

검정통계량은 검정에 사용되는 통계량입니다. 이 역시 하나의 통계량이므로 표본들의 함수입니다. 표본들의 함수라는 말을 조금 가볍게 표현하면 표본들을 이리 저리 조합해서 만든다는 말이죠. 그렇다면 여기서 하나의 궁금증이 생기게 됩니다. ’이리 저리 조합’하는 기준은 뭘까요? 즉, 검정통계량의 형태에 대한 궁금증입니다. 어렵게 생각하시지 마시고 위에서 학습한 구간추정과 같은 아이디어라고 생각하시면 편합니다. 귀무가설 하에서 우리가 원하는 확률분포를 따르도록 조합하는 것입니다. 그리고 그 조합의 결과물이 검정통계량인 것이죠. 이는 확률을 계산하기 위한 핵심 아이디어 입니다.

검정통계량은 검정하고자 하는 가설의 분포에 따라 다양하게 조합이 됩니다. 평균검정을 하는 경우 우리는 \(t\)분포를 활용하여야 합니다. 이 때 검정통계량은 t분포의 스튜던트 정리르 활용하여 계산이 됩니다. 만약 분산을 검정하는 경우에는 검정통계량은 \(\chi^2\)분포 혹은 \(F\)분포를 활용하여 계산이 됩니다.

유의확률(significance probability, p-value)

유의확률은 귀무가설 하에서 계산된 검정통계량 값보다 더 극단적인 값이 나올 확률입니다. 흔히 \(p-value\) 혹은 \(p\)값이라고 부르며 가설검정에서 의사선택을 하게 해주는 중요한 지표라고 할 수 있습니다. 귀무가설 하에서 검정통계량은 분석자가 의도했던 확률분포를 따르기 때문에 우리가 계산한 검정통계량이 그 확률 구조에서 어느 영역에 포함되어 있는지 알 수 있습니다. 그리고 그 검정통계량보다 더 극단적인 영역에 있을 확률이 바로 유의확률입니다. (만약 오른쪽 검정을 한다면 더 오른쪽에 있을 확률이고 양측 검정을 한다면 양쪽 극단에 있을 확률일겁니다.)

위에서 사용하였던 남성 키를 예로 들어보겠습니다.

정규모집단에서 100명의 표본을 뽑아서 모평균이 167.5이 맞는지 검정을 하려합니다. (참고로 이는 일표본 \(t\)검정이라 불리는 가설검정입니다.)

표본평균은 170, 표본표준편차는 10이 나왔습니다. 정리하면 다음과 같습니다. \[ n = 100 \; ,\;\overline{X}=170\;,\;s=10 \]

\[ H_0 : \mu = 167.5 \;\;\;\; H_1:\mu \neq 167.5 \;\;\; \alpha = 0.05 \]

귀무가설은 모평균이 167.5인 경우이고 대립가설은 167.5가 아닌 경우입니다. 즉, 대립가설은 167.5보다 큰 경우도 167.5보다 작은 경우도 포함합니다. (이를 양측 검정이라고 부릅니다.)

위에서 말씀드렸던 것처럼 가설검정을 하기 위해서는 확률 구조가 필요하기 때문에 우리가 아는 확률분포를 따르도록 표본들을 조합해서 검정통계량을 만들어야 합니다. 확률 구조를 알아보기 위해 구간추정의 경우와 마찬가지로 스튜던트 정리를 이용해서 검정통계량을 구하도록 하겠습니다.

\[ (\frac{\overline{X}-\mu}{s/\sqrt{n}})\sim t(n-1) \]

만약 귀무가설이 사실이라면, \(\mu= 167.5\)일겁니다. 그렇다면 다음의 식이 성립하게 됩니다.

\[ (\frac{\overline{X}-167.5}{s/\sqrt{n}})\sim t(n-1) \]

여기서 n = 100이므로, 위의 검정통계량은 자유도가 99인 \(t\)분포를 따를 것입니다. \[ (\frac{170-167.5}{10/\sqrt{100}}) = 2.5 \]

계산된 검정통계량 값을 \(t(99)\)의 그래프 상에 이를 표현해 보겠습니다.

xbar = 170
sd = 10
n = 100
mu = 167.5

T_Statistics = (xbar - mu) / (sd / sqrt(n))

1 - pt(q = T_Statistics,df = n-1)
[1] 0.007031298
ggplot(DF) +
  geom_line(aes(x = k1, y = p1)) +
  geom_area(aes(x = ifelse(k1 > qt(p = 0.025, df = 99) &
                             k1 < qt(p = 0.975, df = 99), k1, 0), y = p1),
            fill = 'red', alpha = 0.2) +
  geom_text(aes(x = 0, y = 0.2), label = "95%") +
  geom_vline(xintercept = qt(p = 1-0.007,df = 99),linetype = 'dashed') +
  geom_area(aes(x = ifelse(k1 < qt(p = 1-0.007, df = 99),0,k1), y = p1),fill = 'royalblue') +
  theme_bw() +
  scale_x_continuous(breaks = seq(-4,4, by = 1)) +
  scale_y_continuous(expand = c(0,0),limits = c(0,0.45)) +
  xlab("") + ylab("")

보시는 바와 같이 \(t(99)\)의 분포에서 2.5보다 더 극단적인 값을 나올 확률은 오른쪽에서 0.007입니다. 우리는 양측검정을 하였으니 반대쪽도 계산해 주어야 합니다.

\(H_1 : \mu \neq 167.5\)이란 말은 곧 \(H_1:\mu > 167.5 \; or\; \mu < 167,5\)을 의미하기 때문입니다. \(t\)분포는 대칭분포이니 같은 확률을 보이며, 우리가 구한 값보다 더 극단적인 값이 나올 확률(유의확률, \(p-value\))는 0.014 즉, 1.4%가 됩니다.

조금 넓은 의미에서 해석해보자면, \(p\)값은 (귀무가설이 사실일 때) 우리가 얻은 표본들이 일반적으로 나올 법한 표본들이냐 아니냐를 말해주는 값입니다.

즉, 모평균이 정말 167.5일 때, 우리가 구한 170은 그것보다 극단적인 값이 나올 확률이 1.4% 정도 밖에 안될 정도로 꽤나 이상한 값이라는 뜻입니다. 다시 말해 귀무가설이 사실이어도 우연히 나올 수 있는 값이긴 하지만 그 확률이 1.4% 정도 밖에 안된다는 의미로 해석할 수가 있습니다. 우리는 귀무가설이 사실일 때, 귀무가설을 기각할 확률의 허용한계를 0.05로 고정하였기 때문에 이 예에서의 \(p\)값 0.014는 우리가 허용할만한 수준이 아닙니다. 그렇다면 귀무가설이 사실이 아니라는 결론을 내리고 기각하게 되는 것입니다.

만약 \(p\)값이 큰 값이 나왔다면 귀무가설 하에서 충분히 나올 만한 값이라고 판단할 수 있으므로 귀무가설을 기각하지 않게 될 것입니다.

가설검정은 결국 단순비교를 통해 맞냐 아니냐를 결정하는 것이 아닌, 추정량의 분포를 반영하여 변동을 포함해도 맞을 수 있냐 아니냐를 결정하는 것입니다. 즉, 추정량과 그 추정량의 분포를 반영하는 구간추정과 아이디어의 방향이 똑같습니다. 실제로 이 둘은 같은 분포를 이용했다면 정확히 같은 결과를 알려줍니다.

구간추정에서 신뢰구간이 포함하고 있는 값은 (주어진 신뢰도 하에서) 분포를 반영하여도 충분히 나올 수 있는 값이라는 뜻입니다. 위에서 설명한 가설검정과 같은 의미죠. 그래서 신뢰구간에 포함된 값들은 가설검정을 하여도 전부 귀무가설을 기각할 수 없습니다. 반대로 신뢰구간이 포함하지 않는 값들은 가설검정에도 기각될 값들입니다. 이번 예제를 통해 간단히 확인할 수 있습니다. 같은 표본분포(자유도 99의 t분포)를 활용한 구간추정의 경우 신뢰구간이 [168.016, 171,984]이었습니다. 우리가 이번에 검정한 값은 167.5 였죠. 구간에 포함되어있지 않고 그렇기에 당연히 \(\mu = 167.5\)라는 귀무가설은 기각되었습니다. 이는 다른 수를 넣어봐도 같은 결과를 보일겁니다. 계산이 그리 복잡하니 않으니 몇 가지를 넣어서 확인해보시기 바랍니다.

97.5%의 누적 역확률값은 1.984이고 2.5%의 누적 역확률 값은 -1.984입니다. \(T\)는 자유도가 99인 \(t\)분포를 따르므로 \(T\)가 -1.984와 1.984사이에 포함될 확률은 95%라는 것이 성립합니다.

이제 저 사실을 기초하여 식을 조금 바꿔 보겠습니다. \(t_{0.975}(n-1)\)은 자유도 \(n-1\)의 \(t\)분포에서 누적 확률 0.975의 역확률 값입니다. 교재에 따라 역확률 값의 표현을 뒤부터 누적하는 경우가 있으니 주의 바랍니다.

\[ P[\left| \frac{\overline{X}-\mu}{s/\sqrt{n}} \right| \leq t_{0.975}(n-1)]=0.95 \]

\[ \Leftrightarrow P[-t_{0.975}(n-1)\leq \frac{\overline{X}-\mu}{s/\sqrt{n}} \leq t_{0.975}(n-1)] = 0.95 \]

\[ \Leftrightarrow P[\overline{X}-t_{0.975}(n-1)\cdot\frac{s}{\sqrt{2}}\leq \mu \leq \overline{X}+t_{0.975}(n-1)\cdot\frac{s}{\sqrt{2}}]=0.95 \]

이런 식으로 정리하면 주어진 조건에서 모평균 \(\mu\)가 저 구간에 포함될 확률이 95% 라는 식이 나옵니다. 이것이 구간추정의 원리이자 95% 신뢰구간입니다. 위의 한국 남성 키를 그대로 대입해보면 \(\overline X\)는 170, \(s\)는 10, \(n\)은 100이므로, 한국 남성 키의 95% 신뢰구간은 \([168.016, 171.984]\)가 됩니다.

다시 한번 강조하지만 가장 중요한 것은 추정량은 확률 구조를 가지고 있는 확률변수라는 것이고 이는 구간추정에도 그대로 적용됩니다. 신뢰구간은 매 조사마다 달라집니다. 위에서 우리가 구한 \([168.016, 171,984]\)는 절대적인 신뢰구간이 아닌 그냥 이번 조사에서 우리가 구한 하나의 신뢰구간에 불과합니다. 한번 더 조사하면 분명히 변할 것입니다.

그렇기에 엄밀히 따지면 [모수가 해당 신뢰구간 안에 있을 확률이 95%다] 라는 말은 정확한 말이 아닙니다. [해당 신뢰구간이 모수를 포함할 확률이 95%다] 라는 말이 정확합니다. 모수는 변수가 아닌 이미 정해진 수이고 바뀌는 건 신뢰구간이기 때문이죠. 더 정확히 이야기하면 [100번 조사를 해서 100개의 신뢰구간을 얻었을 때 그 중 평균적으로 95개의 신뢰구간은 모수를 포함하고있다] 정도가 될 것입니다.

이러한 분석을 일표본 \(t\)검정(One Sample \(t\) Test)라고 합니다.

Height = rnorm(n = 98, mean = 170, sd = 10)

print(paste("평균 : ", round(mean(Height),2)))
[1] "평균 :  169.51"
print(paste("표준편차 : ", round(sd(Height),2)))
[1] "표준편차 :  9.87"
t.test(x = Height, mu = 167.5,alternative = "two.sided")
    One Sample t-test

data:  Height
t = 2.0176, df = 97, p-value = 0.0464
alternative hypothesis: true mean is not equal to 167.5
95 percent confidence interval:
 167.5328 171.4891
sample estimates:
mean of x 
 169.5109 

위 결과는 난수발생을 통한 분석 결과이기 때문에 결과가 100% 일치하지는 않는다는 점을 유의해주시길 바랍니다.

'MustLearning with R 1편' 카테고리의 다른 글

12. 범주형 자료분석  (0) 2020.01.29
11. 기초통계이론 2단계  (0) 2020.01.29
9. ggplot2를 활용한 다양한 그래프 그리기  (0) 2020.01.29
8. R 데이터 시각화  (0) 2020.01.29
7. R 중급문법 3단계  (0) 2020.01.29
Comments