User Tools

Site Tools


c:mrm:2022:qs_from_stu

This is an old revision of the document!


Qs from students

질문 1

교수님께서 샘플 분산값을 설명하실 적에 집합 x{3,4,3,4,6}을 예시로 드시면서, 샘플평균은 항상 모집단의 평균보다 작아 이를 극복하기 위해 n-1로 나누어준다고 하셨던 것 같습니다. 따라서 이 집합의 갯수 n=5가 아니라 n-1값인 4로 나누어 분산 값 1.5를 얻었구요. 그런데 뒤에 N(70,15^2), n=100인 샘플을 취할때나 그 이후 샘플 분산을 구할 때는 n-1을 하지 않은 것 같아서요.
혹시 어떤 차이점이 있어서 그런 걸 까요?

위 학생의 질문에서 앞부분, X = {3, 4, 3, 4, 6} 의 분산값을 구하기 위해서 SS를 n-1로 나눈다는 이야기는 맞습니다. 그러나, 뒤의 N(70, 15^2) 부분에 대한 이해는 약간 정리가 안되어 있습니다. 이를 설명해 보겠습니다.

위에서 N(70, 15^2)은 평균이 70이고 표준편차가 15인 (따라서 분산이 15^2인) 모집단을 (population) 의미하는 것입니다. 선생님은 이 모집단에서 n=100인 샘플을 구해 (샘플링을 하여서) 그 평균값을 기록하고, 다시 이 샘플을 모집단에 다시 넣고, 샘플링을 하여 또 평균값을 기록하는 것을 반복하여 이 평균값의 집합을 모아 놓는다는 것을 말하였습니다. 이것을 기호로 다시 표현하면 아래와 같이 표현할 수 있습니다.
$$ \overline{X } \sim N(\mu_{\overline{X}}, {\sigma_{\overline{X}}}^2) $$
위에서

  • $\overline{X}$ 는 X bar 즉 평균을 의미하고
  • $\sim $ 사인은 앞의 X bar 들의 집합을 의미합니다. 그리고
  • 이 집단에서의 평균 $\mu_{\overline{X}}$ 값은 $70$ 이 되고
  • ${\sigma_{\overline{X}}}^2 = \frac{\sigma^2}{n}$ 이 된다는 뜻입니다.
    • 위에서 뒤쪽의 $\sigma^2$ 은 모집단의 (population) 시그마 제곱을 (분산) 의미합니다.
  • 그런데 이 두번째 식이 이 집단의 분산값을 구하는 공식이고 이것이 SS를 df로 나눈다는 식을 대체하는 것은 아닙니다.
  • 사실 위의 집합에서 (이것을 distribution of sample means라고 부른다고 했습니다) 직접 분산값을 구한다고 하면 아래와 같이 구해야 할 것입니다.

$$ \begin{eqnarray*} (\sigma_{\bar{X}})^2 & = & \frac {SS} {df} \\ & = & \frac {\Sigma{(\overline{X_{i}} - \mu_\overline{X})}} {n-1} \\ \end{eqnarray*}
$$ * 선생님이 이야기 하는 것은 바로 위의 분산 값이 $\frac{\sigma^2}{n}$ 와 같은 값이 된다는 뜻입니다.

  • 즉, 다시 한번 쓰면

$$ \begin{eqnarray} (\sigma_{\bar{X}})^2 & = & \frac {SS} {df} \\ & = & \frac {\Sigma{(\overline{X_{i}} - \mu_\overline{X})}} {n-1} \\ & = & \frac{\sigma^2}{n} \end{eqnarray}
$$
위에서 (2)와 (3)은 그 값이 (value) 같다는 뜻입니다. 아래는 그것을 R에서 시뮬레이션하는 스크립트입니다.



그런데 추가로 . . .

set.seed(10)
n <- 10
s1 <- rnorm(n, mean = 100, sd = 10)
mean(s1) # r 펑션으로 평균구하기
sd(s1) # r 펑션으로 표준편차구하기

error <- s1-mean(s1)
error.sq <- error^2
sum.error.sq <- sum(error.sq) # 이 값이 ss 파트
df <- n-1 # 이 값이 df 값 
var.cal <- sum.error.sq/df # 실제 계산한 분산값
sd.cal <- sqrt(var.cal) # 실제 계산한 표준편차 값
sd.cal # 계산한 sd값 출력
sd.cal == sd(s1) # 같은 값인지 확인

# n이 아주 크다면 n 이나 n-1이나 차이가 없다
# 아래는 샘플의 크기가 일억인 경우
set.seed(10)
n <- 100000000
s1 <- rnorm(n, mean = 100, sd = 10)
mean(s1)
sd(s1) # 이것이 n-1로 구한 r 펑션에서의 sd값

error <- s1-mean(s1)
error.sq <- error^2
sum.error.sq <- sum(error.sq) # 분산값 구하기에서 SS 파트
df <- n-1 # df 파트
var.cal <- sum.error.sq/df # 계산해서 구한 분산값 
sd.cal <- sqrt(var.cal) # 계산해서 구한 표준편차값
sd.cal
sd.cal == sd(s1) # 동일함. 여기까지는 위의 예와 같음

# tweak 여기에 더하여 만약에 n-1 대신 n으로 나눠주면 어떻게 될까?
var.cal2 <- sum.error.sq/n
sd.cal2 <- sqrt(var.cal)
sd.cal2
sd.cal2 == sd(s1)
c/mrm/2022/qs_from_stu.1650501488.txt.gz · Last modified: 2022/04/21 09:38 by hkimscil

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki