Degrees of Freedom (df)
어떤 모집단에서 샘플을 취하였다면, 그 샘플의 평균과 분산 값은 그 모집단의, 그것들과 일치할 수는 없지만, 비슷해야 할 것이다. 따라서, 흔히 우리는 샘플의 평균과 분산값을 가지고 모집단의 그것을 추정하게 된다. 모집단의 분산을 구하는 공식은 아래와 같다 (Variance 참조).
\begin{equation*} \sigma^2 = \frac {\displaystyle \sum_{i=1}^N {(X_i-\mu)}^2}{N} \end{equation*}
그러나, 샘플을 취하는 이유는 모집단의 성격을 잘 모르므로 이를 추정하기 위해서이다. 즉, 위의 공식은 모집단의 성격을 (Mean과 Variance) 알고 있어야 구하는데 현실은 그렇질 못한 경우가 많으므로, 아래의 공식이 흔히 쓰여지게 된다.
\begin{equation*} s^2=\frac {\displaystyle \sum_{i=1}^{n} (X_i-\overline{X})^2} {(n-1)} \end{equation*}
모집단의 평균치인 $\mu$ 를 쓰는 대신에 샘플의 평균인 $\overline{X}$ 를 사용하였다는 점과
모집단 구성원의 숫자인 $ N $ 대신에 샘플의 숫자인 $ n $ 에서 $1$ 을 뺀, $n-1$ 을 사용하였다는 점이다 (n-1을 사용하는 이유에 대해서는 다른 곳에서 언급을 하였다 (estimated standard deviation)).
여기에서 사용된 n-1을 degrees of freedom 혹은 자유도라고 말한다. 자유도는 해당 샘플의 평균 값을 유지하면서 자유롭게 어떤 값을 가질 수 있는 사례 수를 말한다.
- 위에서 평균값을 $\overline{X}$
- 샘플 개체의 숫자를 `n`이라고 가정하면,
- 샘플 개체 중 `n-1`개의 개체는 자유롭게 아무 값이나 가져도 되지만, 샘플의 평균인 $\overline{X}$ 를 유지하기 위해서 마지막의 갯체는 어쩔 수 없는 고정값을 가져야 한다.
샘플 평균을 유지하면서 각 개체의 점수가 자유로울 수 있는, 최대 허용된 사례수를 자유도(degrees of freedom, $df$)이라고 한다.
예를 들면 아래는 어느 한 모집단의 구성원이 한달 동안 읽는 책의 숫자를 정리한 표이다.
1, 3, 1, 4, 2, 5, 2, 2, 4, 1, 1, 4, 5, 2, 3
Xi | ds | ds2 | |
1 | 2 | -1 | 1 |
2 | 3 | 0 | 0 |
3 | 2 | -1 | 1 |
4 | 4 | 1 | 1 |
5 | 5 | 2 | 4 |
6 | 5 | 2 | 4 |
7 | 2 | -1 | 1 |
8 | 2 | -1 | 1 |
9 | 4 | 1 | 1 |
10 | 1 | -2 | 4 |
sum | 30 | 0 | 18 |
N | 10 | ||
average | 3 | ||
var | 1.8 |
위의 사례를 정리해 보면, 평균은 3, 분산은 1.8인 성격을 갖는 모집단이 된다. 이제 여기서 4개의 샘플단위를 뽑아서 샘플을 만들면 아래와 같다.
Xi | ds | ds2 | ||
2 | -1.5 | 2.25 | ||
5 | 1.5 | 2.25 | ||
3 | -0.5 | 0.25 | ||
4 | 0.5 | 0.25 | ||
sum | 14 | 5 | ||
average | 3.5 | |||
variance | n | 4 | 1.25 | |
variance | n-1 | 3 | 1.67 |
위에서 보면, 샘플의 평균은 3.5이고 (모집단 분산에서 사용되는 분산식을 사용한) 분산은 1.25이다. 이는 실제 모집단의 분산값인 1.8에 훨씬 못 미치는 수치이다. 그러나 n대신에 n-1로 나누어 주면, 샘플의 분산값은 1.67이 된다. 이 분산 값이 모집단의 분산값에 더 가깝다.
또한 샘플의 분산값 계산에 쓰인 n-1인 3은 3개의 개체가 어떤 값을 가져도 나머지 한개의 값이 조정만된다면 전체 샘플의 평균값인 3.5를 유지할 수 있다. 다시 이야기 하면, 마지막 한 개의 값은 다른 개체와는 달리 어떤 숫자라도 가질 수 있는 자유를 잃게 된다. 따라서 우리는 이 샘플이 n-1의 자유도를 가졌다고 한다. 이 자유도는 'df'로 줄여서 많이 쓰인다.
n-1 로 나누는 예
아래는 r에서 이를 확인하는 작업이다. 집합 k의 parameter가 아래와 같을 때
- n = 10,
- mean = 3,
- sd = sqrt(2) = 1.414214
4개의 샘플을 (ks) 구했을 때, ks의 statistics는 아래와 같다.
- mean = 2.25
- sd = 1.258306
- n-1 대신 n을 사용했을 때는 0.9437293
############ set.seed(1010) n.pop <- 20 k <- sample(1:20, n.pop, replace = T) k.mean <- mean(k) k.pvar <- var(k)*((n.pop-1)/n.pop) ## population var(k) k.mean k.pvar ############ n.samp <- 3 ks <- sample(k, n.samp) ks ks.mean <- mean(ks) ks.var <- var(ks) ks.pvar <- var(ks)*((n.samp-1)/n.samp) ks.mean ## sample mean ks.var ## sample variance ks.pvar ## sample variance as population k.mean ## population mean k.pvar ## population variance as pop ############
수학적인 증명을 보려면 why n-1 참조