03. 연속확률변수, 정규분포

Statistics
교재 4장
Author

Kim Jae Sook

Published

January 25, 2024

연속확률분포 요약

대표적인 연속확률분포를 간단히 정리하면 다음과 같다.

대표적인 연속확률분포

분포 확률밀도함수 평균(\(\mu\)) 분산(\(\sigma^2\))
균등분포\((a,~b)\) \(\dfrac{1}{b-a},~a<x<b\) \(\dfrac{a+b}{2}\) \(\dfrac{(b-a)^2}{12}\)
정규분포\((\mu,~\sigma^2\)) \(\dfrac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}},~-\infty<x<\infty\) \(\mu\) \(\sigma^2\)
지수분포\((\lambda)\) \(\lambda e^{-\lambda x},~x>0\) \(\dfrac{1}{\lambda}\) \(\dfrac{1}{\lambda^2}\)
감마분포\((\alpha,~\lambda)\) \(\dfrac{\lambda^{\alpha}}{\Gamma(\alpha)}x^{\alpha-1}e^{-\lambda x},~x>0\) \(\dfrac{\alpha}{\lambda}\) \(\dfrac{\alpha}{\lambda^2}\)

이외에도 웨이블분포, 베타분포, 코쉬분포, 로그노말분포, 레일리분포 등이 있다.

각 분포들의 특징

지수분포

  • 위험률함수 \(\lambda(t)=\lambda\), 비기억성을 가짐
  • 작은 \(p\)에서의 기하분포 \(Geo(p)\)의 근사분포, 포아송과정에서의 도착간격시간

감마분포

  • \(X\sim \Gamma (n,~\lambda)\)일 때 \(P(X \le t) = 1- \sum_\limits{k=0}^{n-1} \dfrac{(\lambda t)^{k} e^{-\lambda t}}{k!}\)
  • \(\chi ^2 (n) = \Gamma \left( \dfrac{n}{2},~\dfrac{1}{2}\right)\)
  • 포아송과정에서 \(n\)번째 사건이 일어날 때까지 기다린 시간
  • 모수 \(r,~p\)인 음이항분포에서 \(p\)가 작을 때의 근사분포

정규분포

  • \(Z\)가 표준정규분포이면 \(E(Z^m )=0\), \(m\)이 홀수
  • \(E(Z^{2m})=\dfrac{(2m)!}{m!2^m},~m=0,1,2, \cdots\)
  • \(E(|Z|)=\sqrt{\dfrac{2}{\pi}}\)
  • \(Z^2 \sim \Gamma \left( \dfrac{1}{2},~\dfrac{1}{2}\right)\)
  • \(Z_1 ,~Z_2\)가 서로 독립이고 표준정규분포를 따르면 \(Z_1 / Z_2 \sim\)표준코쉬분포

정규분포의 공식 유도

[엑셀] 실습하기

[R기초] 실습하기

R명령어 설명

위에 링크로 달아놓았지만, ChatGPT에게 정규분포에 관련된 r명령어를 묻고, 명령어는 알지만 더 자세한 사용법을 알고 싶을때는 프로그램에서 명령어에 커서를 두고 F1을 누르면 설명이 나옵니다.

# dnorm() : P(X = x) = P(x-e < X < x+e)
dnorm(0, mean = 0, sd = 1)  # 평균이 0이고 표준편차가 1인 정규분포에서 0에서의 밀도 계산
[1] 0.3989423
# pnorm() : P(X < x) = P(X <= x)
pnorm(0, mean = 0, sd = 1)  # 평균이 0이고 표준편차가 1일 때, 0 이하의 값이 나올 누적확률 계산
[1] 0.5
pnorm(0.5, mean = 0, sd = 1, lower.tail = TRUE)  # 0.5 이하의 면적을 계산하며, 이것이 기본값임
[1] 0.6914625
pnorm(0.5, mean = 0, sd = 1, lower.tail = FALSE)  # 0.5 보다 큰 쪽의 면적을 계산함
[1] 0.3085375
# qnorm() : P(X < x) = p ==> x
qnorm(0.5, mean = 0, sd = 1)  # 평균이 0이고 표준편차가 1일 때, 50%의 확률로 발생할 수 있는 값 계산
[1] 0
qnorm(0.95, mean = 0, sd = 1, lower.tail = TRUE) # 95%의 확률로 발생할 수 있는 값
[1] 1.644854
qnorm(0.05, mean = 0, sd = 1, lower.tail = TRUE) # 5%의 확률로 발생할 수 있는 값
[1] -1.644854
# rnorm() : random number from normal distribution
rnorm(5, mean = 0, sd = 1)  # 평균이 0이고 표준편차가 1인 정규분포에서 5개의 무작위 값 생성
[1] -1.8068673 -0.1546857 -0.4480584 -0.6627734 -0.1325052

연속확률분포에서 특정한 지점에서의 확률은 수학적으로 생각하면 선의 넓이이므로 0이다. 그런데 dnorm에서 구하는 값은 0이 나오지 않는데, 이는 아주 작은 크기의 직사각형을 만들어 면적을 계산하여 도출한다고 생각하면 된다. 직관적으로 그 점에서의 높이를 계산한다고 생각하면 된다.

* 그림 출처: 통계교육원, R을 활용한 통계분석

# 정규분포에서 1000개의 난수를 뽑아 표본을 만든 후, 히스토그램 그려보기
sample = rnorm(1000, mean = 0, sd = 1)
hist(sample)

# curve함수를 이용해서 정규분포의 확률밀도함수 그리기
mean <- 0
sd <- 1
curve(dnorm(x, mean, sd), from = -4, to = 4, 
      xlab = "x", ylab = "Density",
      main = "Normal Distribution Density (mean=0, sd=1)", col = "blue")

# 정규분포의 누적분포함수 그리기
mean <- 0
sd <- 1
curve(pnorm(x, mean, sd), from = -4, to = 4, 
      xlab = "x", ylab = "Cumulative Probability",
      main = "Normal Distribution CDF (mean=0, sd=1)", col = "red")

정규분포의 확률 구하기

  • \(P(Z<-0.155\) 또는 \(Z>1.6)\)를 구하시오.
# pnorm함수는 정규분포의 확률값을 구해주는 함수이다. 
# pnorm(x, mean=a, sd=b)의 형태로 입력되며, 
# 뒤의 mean, sd 항목을 생략하면 mean=0, sd=1의 표준정규분포의 확률값을 구하는 것으로 인식하게 된다.
pnorm(-0.1555)+1-pnorm(1.6)
[1] 0.4930129
  • \(P(-z≤Z≤z)=0.95\)를 만족시키는 양의 실수 \(z\)를 구하시오.
# qnorm함수는 확률값을 입력하였을때, 그에 해당하는 표준정규분포를 따르는 변수 Z값을 구해주는 함수이다.
qnorm(0.025)
[1] -1.959964
  • 어느 저울의 성질을 알아보기 위하여 질량이 1kg인 추를 반복적으로 잰다고 하자. 이때 측정된 질량은 평균이 1kg이고, 표준편차가 20g인 정규분포를 따른다고 한다. 이러한 측정을 계속 반복할 때, 측정된 값이 1kg으로부터 10g 이내에 있는 비율은 얼마인지 구하시오.
pnorm(1010,mean=1000,sd=20)-pnorm(990,mean=1000,sd=20)
[1] 0.3829249

이항분포의 정규분포로의 근사

  • 확률변수 \(X\)가 이항분포 \(B(400, 0.2)\)를 따르고, 확률변수 \(Y\)가 정규분포 \(B(80, 8^2)\)을 따를 때, \[\left| P(X=k)-P(k-0.5 \le Y \le k+0.5) \right|\]의 최댓값을 구하시오.(단, \(k\)\(0\le k \le 400\)인 정수)
k <- 0
prob <- 0
newprob <- 0

while(k<=400){
  a <- dbinom(k, 400, 0.2)
  b <- pnorm(k+0.5, 80, 8)-pnorm(k-0.5, 80, 8)
  if(a>=b){newprob <- a-b}
  else{newprob <- b-a}
  if(prob<=newprob){prob <- newprob; k <- k+1}
  else{ k <- k+1 }
}
prob
[1] 0.0008873549

주어진 자료의 정규성 알아보기

모집단이 정규분포인지 알려져 있지 않은 경우

  • 정규분포를 따르는지 여부를 우선 파악해야 함.

  • 모평균을 추정하는 내용을 배울 때, 모집단이 정규분포임을 가정하고, 표본평균의 분포를 살펴보기 때문에 이때 필요함.

정규분포를 따르는지 알아보는 방법

  • 히스토그램을 그려 좌우대칭인지 확인함.

  • 정규확률그림(normal probability plot)을 그려서 확인함. 정규확률그림이란 정규분포의 분위수와 표본자료의 분위수를 각각 가로축과 세로축으로 두고 그림을 그린 것임. 직선으로 증가하는 형태이면 정규분포를 따른다고 판단함. 히스토그램과 정규확률그림은 시각적으로 판단하여 사람에 따라 다르게 판단할 수 있음.

  • 통계적 가설검정을 통해 판단하는 방법이 있으며, 이 방법이 객관적이고 과학적인 방법임. 이 내용은 카이제곱검정에서 배울 것임.

정규확률그림으로 확인하는 방법

  • 어떤 자료가 정규분포에 얼마나 근접한지 알고 싶으면 Q-Q(Quantile-Quantile) plot을 그려본다. Q-Q plot에서 직선은 정확한 정규분포 수식에서 나오는 값인데, 관찰값인 점들이 직선에서 크게 벗어나지 않으면 자료가 정규분포를 따른다고 할 수 있다.

  • MASS 라이브러리에 있는 Cars93의 price라는 자료가 정규분포인지 확인해보자.

library(MASS)
str(Cars93$Price)  # 자료의 구조를 살펴보기
 num [1:93] 15.9 33.9 29.1 37.7 30 15.7 20.8 23.7 26.3 34.7 ...
price = Cars93$Price
hist(price)  # 히스토그램을 그려서 좌우대칭인지 살펴보기

qqnorm(price)
qqline(price)  # qqnorm으로 그린 그림에 직선을 추가하기

  • BodyWeight에 있는 자료의 정규확률그림을 그려보자.
body <- read.table("BodyWeight.txt", header=T)
qqnorm(body$몸무게)
qqline(body$몸무게, col="blue")

  • 직선에 어느 정도 근접하느냐는 주관적이므로, 위 자료(100개)와 비교해보기 위해 정규분포를 이루는 난수를 발생하여 같은 그래프를 그려보자.
x = rnorm(n=100, mean=0, sd=1) #평균이 0이고, 표준편차가 1인 표준정규분포에서 100개의 난수를 발생하여 x에 넣기
qqnorm(x)
qqline(x, col="blue")