본문 바로가기
R/RSTAT101

[RSTAT101] 10강. 기초 통계분포 - 정규분포 갓벽 정리

by 슬통이 2023. 6. 10.
반응형

정규분포 곡선

정규분포 곡선(다른 이름은 확률밀도함수 입니다.)의 특징은 다음과 같습니다.

  • 대칭이며, 최대값이 하나 존재한다.
  • 곡선의 모양은 평균과 표준편차에 의하여 결정된다.
  • 평균은 곡선의 중심에 대한 정보를 포함하고 있다.
  • 표준편차는 곡선의 퍼짐과 관련이 있다.
  • 모든 정규분포는 68-95-99.7 규칙을 따른다.

앞으로 우리는 정규분포를 나타냄에 있어서 다음과 같은 기호를 사용하여 나타내기로 약속하도록 하겠습니다.

\[ \mathcal{N}(\mu, \sigma^2) \]

여기서 \(\mu\)는 평균을 나타내고, \(\sigma^2\)을 나타냅니다. 여기서 주목할 것은 항상 표준편차가 어떤 값인지 알 수 있도록 제곱꼴로 나타낸 다는 것입니다. 즉, \(\mathcal{N}(3, 4)\) 보다는 표준편차가 2인 것을 알 수 있도록 명시적으로 \(\mathcal{N}(3, 2^2)\) 기호를 사용합니다.

정규분포 곡선이 평균과 표준편차에 따라서 어떻게 변하는지에 대하여 알아봅시다.

68-95-99.7 규칙

68-95-99.7 규칙은 모든 정규분포들이 따르는 규칙이라고 생각하면 쉽습니다. 단, 정확한 룰이 아니라 근사적으로 따른다는 것에 주의해야 합니다.

  • 약 68%의 관찰값들은 평균에서부터 1 표준편차 떨어진 구간에 들어있다.
  • 약 95%의 관찰값들은 평균에서부터 2 표준편차 떨어진 구간에 들어있다.
  • 약 99.7%의 관찰값들은 평균에서부터 3 표준편차 떨어진 구간에 들어있다.

위의 세가지 규칙을 그림으로 나타내보면 다음과 같습니다.

68-95-99.7 예제

우리의 교수님이 이번에 내준 숙제를 채점한 점수의 분포가 위의 그래프와 같다고 말씀하셨다고 가정합시다. 내가 등록한 수업에 학생들이 100명이라는 가정하에 다음의 질문에 답해봅시다.

예제 1. 성적발표 사이트에서 확인 한 결과, 나의 점수가 12라는 것을 확인하였다. 대략 몇 명의 학생이 나보다 낮은 점수를 맞았을까요?

정답

12 점은 평균에서 오른쪽으로 1 표준편차 떨어진 점수라는 것을 알아 챌 수 있다면 정답을 맞출 수 있었을 것입니다.

84% = 50% + 34%

약 84 명의 학생들이 나보다 낮은 점수를 받았을 것입니다.

예제 2. 대략 몇명의 학생들의 숙제점수가 10점과 14점 사이일까요?

정답

평균에서 2 표준편차 떨어진 구간의 반절에 해당합니다. 그래서

47.5% = 95% / 2

그러므로, 약 48명의 학생들이 10점과 14점 사이의 점수를 받았을 것 입니다.

예제 3. 몇 명의 학생들이 8점에서 14점 사이의 점수를 받았을까요?

정답

81.5% = 47.5% + 34%

약 82 명의 학생들이 받았을 것입니다.

예제 4. 앞에서 우리는 IQR 개념에 대하여 배웠죠. 그렇다면 다음의 문장은 참일까요, 거짓일까요?

숙제점수 분포의 IQR은 4보다 크다.
정답

답은 거짓입니다. IQR은 평균으로부터 1 표준편차 떨어진 구간보다 짧습니다. 왜냐하면 IQR은 정규분포의 가운데 50% 관차값을 포함하는 반면에 1 표준편차 구간은 68%의 관찰값을 포함하기 때문입니다.

표준 정규분포

여러 정규분포 중에 표준이 되는 정규분포가 존재한다고 하니, 참으로 특별한 정규분포 인가 봅니다. 앞에서 우리는 평균과 표준편차에 의하여 정규분포는 결정이 된다고 배웠습니다. 그렇다면 수많은 정규분포가 있을 수 있겠네요. 그 중, 특별히 평균이 0, 표준편차가 1인 정규분포를 표준 정규분포라고 부릅니다.

\[ \mathcal{N}\left(0, 1^2 \right) \]

표준 정규분포를 나타낼 때, 보통 대문자 \(Z\)를 사용하여 나타냅니다. 따라서 어떤 \(Z\)가 표준정규분포를 따른다는 것을 통계적 기호로 표시하면 다음과 같습니다.

\[ Z \sim \mathcal{N}\left(1, 0 \right) \]

표준정규분포의 특별함

옛날에는 표준정규분포가 상당히 특별했습니다. 왜냐하면 확률을 계산할 수 있는 유일한 분포였기 때문입니다. 정규분포의 곡선을 수학적으로 나타내면 다음과 같이 복잡한 꼴이 나옵니다. 다만, 자주보면 아마 복잡했던 것이 복잡해지지 않는 신비한 경험을 하시게 될 것입니다.

\[ f(x)= {\frac{1}{\sigma\sqrt{2\pi}}}e^{- {\frac {1}{2}} (\frac {x-\mu}{\sigma})^2} \]

이 복잡한 식을 적분을 해야 확률을 구할 수 있는데, 문제는 이게 적분이 손으로는 안됩니다. 고등학교때 배운 적분 공식 이딴게 다 소용이 없어요..그래서 옛날 사람들은 무엇을 했야하면 일일히 구하고자 하는 부분을 사각형으로 쪼개서 더하는 수치적분을 사용했지요. 그리고 그게 너무 반복이 되니까 아예 대표적인 정규분포를 딱 하나 정하여 다음과 같은 테이블. 을 만들게 됩니다. 이 테이블 이름은 표준정규분포표이고, 이 테이블은 소수점 둘째 자리 단위로 웬만한 값에 대응하는 확률을 다 써놨습니다.

앞선 섹션에서는 정규분포의 67-95-99.7 규칙을 이용하여 대략적인 확률을 구할 수 있었던 반면, 표준정규분포는 웬만한 값에 대한 정확한 확률값을 모두 구할 수 있습니다. 즉, 표준정규분포 하에서는 확률 구하는 것을 쉽게 만들어놓은 셈인거죠. 컴퓨터가 발달한 요즘은 모든 정규분포에 대하여 확률값을 자유자재로 구할 수 있게 되었으니 사실 의미가 없어지긴 했죠.

따라서 앞으로 우리가 연습할 것은 두 가지 입니다.

  1. 첫번째로, 표준 정규분포에서 어떤 값이 주어지면, 그 값과 관련된 확률을 구하는 방법을 알아봅니다.
  2. 두번째로, 어떤 정규분포가 주어졌을때 그 정규분포를 표준정규분포로 바꾸는 방법에 대하여 알아봅니다. 어떤 정규분포이든 표준정규분포로 바꾸는 방법만 알고 있다면, 확률은 표준정규분포표가 있으니, 구하는 것이 어렵지 않은 것이죠!

표준정규분포표를 통한 확률 구하기

여러 해에 걸쳐서 쌓인 자료에 따르면 서울의 1월 28일의 오전 11시 기온은 표준정규분포를 따른다고 합니다. 얼마의 확률로 우리는 이번 년도의 기온이 \(-1.5\)°C 보다 작을 것이라고 예측할 수 있을까요?

서울시의 아침 기온이 표준정규분포를 따르므로, 우리는 다음의 기호를 사용해서 나타낼 수 있을 것 입니다.

\[ Z_{seoul} \sim \mathcal{N}(0, 1^2) \]

그리고 구하고자 하는 확률을 기호로 나타내면 다음과 같이 쓸 수 있습니다.

\[ P(Z_{seoul} \le -1.5) \]

위의 꼴은 앞에서 살펴본 표준정규분포표에 계산되어 있는 꼴과 똑같은 꼴입니다. 따라서 첫번째 테이블에서 \(-1.5\)을 왼쪽행에서 찾고, 그 다음 \(0.00\)을 열에서 찾아봅시다.

두 행과 열이 만나는 부분에 우리는 \(0.0668\)가 쓰여져 있다는 것을 알 수 있죠! 따라서 우리가 구하려고 하는 확률을 표준정규분포 표를 통해서 구하면 다음과 같습니다.

\[ P(Z_{s. city} \le -1.5) = 0.0668 \]

표준화: 정규분포를 표준정규분포로 변환하기

이전 섹션에서 우리는 어떤 (확률) 변수가 표준정규분포를 따른다는 조건 하에서 임의의 주어진 값에 대한 확률값을 구하는 것을 알아 보았습니다. 이번 섹션에서는 임의의 정규분포에 관한 확률을 계산하는 방법을 알아보도록 하겠습니다. 보통의 통계학에서는 표준화를 통해서 확률을 구하는 방법을 배우게 되는데, 이유는 예전에는 현재와 같이 컴퓨터가 발달하지 않는 시대였으므로, 앞에서 살펴본 정규분포 곡선을 일일히 손으로 계산을 했어야했고, 모든 경우에 대한 계산을 손으로 다 한다는 것은 불가능하기도 하고, 비효율 적이기도 했습니다. 따라서 사람들은 표준정규분포표만을 만들었고, 나머지 경우들은 표준화를 통하여 변환시켜서 계산하는 방법을 채택했습니다.

\[ X \sim \mathcal{N}(\mu, \sigma^2) \overset{convert}{\Rightarrow} Z \sim \mathcal{N}(0, 1^2) \]

표준화의 강력한 점은 어떠한 정규분포 이던지 표준화를 통하여 변환시키면 표준정규분포로 변환된다는 점입니다.

만약 표본 \(x\)가 평균이 \(\mu\)이고 표준편차가 \(\sigma\)인 정규분포에서 나온 표본이라고 하였을 때, \(x\)를 표준화를 시키는 과정은 다음과 같습니다.

\[ z = \frac{x - \mu}{\sigma} \] 이렇게 표준화 된 값을 보통 통계학에서는 \(z\) 기호를 사용하고, 너무 자주 등장하기 때문에서인지 그냥 \(z\)값이라고 부르기도 합니다.

예제: 숙제 점수의 표준화 점수 구하기


교수님이 이전에 내주신 숙제 점수에 대한 정보를 학교 시스템에 올리셨다면서 점수의 분포에 대한 정보를 공개했다고 가정해보록 합시다.

숙제 점수의 분포가 평균이 \(\mu =10\) , 표준편차가 \(\sigma = 2\) 인 정규분포를 따르고 있습니다. 반 전체의 학생 수는 75명이라고 가정합니다.

 

문제 1. 시스템에 접속을 한 후, 우리의 성적을 확인해보니 12점이라는 것을 알았습니다. 우리 숙제 점수 12점에 대한 표준화 값, \(z\) 값은 얼마인가요?

정답

\[ z_{score} = \frac{x_{score} - 10}{2} = \frac{12 - 10}{2} = 1. \]

 

문제 2. 반 전체에서 나보다 점수를 낮게 받은 학생들은 대략 몇 명일지 맞춰보도록 하세요.

정답

\(X\) 를 우리 반 학생들의 숙제 점수라고 생각해봅시다. 우리는 교수님의 공지를 통해서 숙제점수의 분포에 대한 정보를 알고 있죠. \[ X_{score} \sim \mathcal{N}(10, 2^2) \]

첫번째로 우리는 12점보다 낮게 숙제점수를 받은 학생들의 비율을 알아내야 합니다. 비율을 알아내면 전체 반 학생수를 곱하여, 정답을 알 수 있겠지요? 즉, 우리가 계산하고자 하는 것을 식으로 나타내보면 다음과 같습니다. \[ P(X_{score} \le 12) = ? \]

우리는 \(X\)가 표준 정규분포를 따르지 않고, \(\mathcal{N}(10, 2)\)을 따른다는 것을 알았죠. 하지만 우리가 배운 것은 어떤 확률 변수가 표준 정규분포를 따를때 확률을 배웠습니다. 그렇다면 우리가 배운 것을 어떻게 응용하여 원하는 값을 구할 수 있을까요? 바로 \(X\)를 표준정규분포를 따르도록 변환시키는 표준화를 이용해야 합니다.

표준화 공식에 따르면 다음과 같은 식이 성립합니다.

\[ Z_{score} = \frac{X_{score} - 12}{2} \sim \mathcal{N}(0, 1^2) \]

즉, 어떤 임의의 정규분포를 따르는 확률변수에 그것의 평균을 빼고, 표준편차로 나눠주면 변환된 확률변수는 언제나 표준정규분포를 따르게 됩니다. \(X\)에 대한 스케일이 변하므로, 우리가 구하고자하는 기준점인 12 역시도 변합니다. 주어진 예제에서 z-score는 1이 되겠네요. 이렇게 표준화 과정을 통해 변환된 값 1을 z-score라고 합니다.

1을 표준정규분포표에서 찾으면 다음과 같이 확률을 구할 수 있겠습니다. \[ P(X_{score} \le 12) \overset{stdardization}{=} P(Z_{score} \le 1) \overset{z-table}{=} 0.8413 \]

따라서, 우리가 구하고자 하는 반 전체 학생 중 12점보다 숙제 점수를 낮게 받은 학새의 비율은 약 84.13% 가 됩니다. 여기에 전체 학생 수 인 75를 곱하게 되면 정답이 나오겠네요.

\[ 75 \times 0.8413 \approx 64 \]

약 64명의 학생이 우리의 숙제 점수인 12점보다 낮게 받았다는 것을 알 수 있습니다.

 

문제 3. 반에서 몇 명의 학생이 숙제 점수를 10 점과 12 점 사이를 받았을까요?

정답

10점에 12점은 다음과 같이 쉽게 구할 수 있습니다.

\[ 75 \times 0.3413 \approx 26 \]

약, 26명이죠. 왜냐구요? 정규분포의 특성에 따르면, 전체의 반절, 즉 50%의 학생이 평균인 10점보다 낮은 점수를 받는다는 사실을 알 수 있기 때문입니다. 따라서, 문제 2번에서 계산한 값에서 0.5를 빼면? 0.3413이 되는 것을 알 수 있죠.

 

문제 4. (어렵지만 꼭 알아야하는 문제) 상황을 좀 바꿔보도록 하죠. 교수님께서 만약 우리에게 다음과 같이 말씀하셨다 가정합시다.

"이번에 숙제 점수를 잘 받았더구나. 위에서 8% 안에 들었어!"

이러한 말을 들었다면, 우리의 숙제점수는 과연 몇 점일까요?

 

정답

이 문제는 두 단계로 나눠서 풀어야 합니다.

  • 1단계. 어떤 \(z\) 값이 0.92 확률과 대응이 되는 지를 찾아봐야 합니다. (왜 일까요?)
  • 표준 정규분포표에서 찾아보면 1.41이 대응되는 \(z\) 값이라는 것을 알 수 있습니다.
  • 2단계. 찾은 \(z\) 값을 다시 숙제점수 분포의 스케일로 역변환 시켜줍니다.

\[ \begin{align*} 내점수 & =\mu+\sigma\times z\\ & =10+2\times1.41\\ & =12.82 \end{align*} \]

즉, 내 점수는 12.82 라는 것을 알 수 있습니다.

R 함수를 사용한 정규분포 다루기

확률을 구하는 pnorm()

현대에 들어서는 위에서 배운 트릭들을 사용할 필요가 없어졌습니다. 왜냐하면 컴퓨터로 바로 구해버릴 수 있기 때문입니다. R에서는 정규분포함수의 확률값들을 구할 수 있도록 pnorm()이라는 함수를 제공합니다. 확률을 뜻하는 p와 정규분포를 뜻하는 norm을 합친 작명법이네요. 함수의 기본 문법은 다음과 같습니다. 알고 싶은 기준값을 첫번째로 넣어주고, 평균과 표준편차 값을 함수에 집어넣어 줍니다. lower.tail 부분은 확률의 부등호에 따라서 기준값의 왼쪽부분을 구할때는 기본값으로, 오른쪽 부분을 구할 때는 FALSE로 설정해주면 되겠습니다.

pnorm(기준값, mean = 0, sd = 1, lower.tail = TRUE)

이전 섹션에서 풀어본 문제 2번에서 구했던 확률, 즉, 반에서 12점 보다 낮은 점수를 받는 학생 비율은 다음과 같이 구할 수 있습니다.

pnorm(12, mean = 10, sd = 2)
>> [1] 0.8413447

분위수를 구하는 qnorm()

정규분포의 분위수를 구할때에는 quantile의 앞글자를 딴 qnorm()을 사용할 수 있습니다. qnorm()의 문법도 pnorm()과 비슷합니다. 대신, 원하는 확률값을 첫번째 입력값으로 설정해 줍니다.

qnorm(원하는 확률값, mean = 0, sd = 1, lower.tail = TRUE)

이전 섹션의 문제 4번의 경우, 상위 8%에 대응하는 z값을 구했어야 했었습니다. 이 경우 qnorm을 사용하면 다음과 같이 구할 수 있습니다.

qnorm(0.08, lower.tail = FALSE)
>> [1] 1.405072

혹은

qnorm(0.92)
>> [1] 1.405072

따라서, 문제 4번의 좀 더 정확한 값은 다음과 같이 약 12.8 이라는 것을 알 수 있습니다.

10 + 2 * qnorm(0.92)
>> [1] 12.81014
반응형

댓글