확률분포/연속형 확률분포

[python/파이썬] 정규분포

gilber 2023. 1. 18. 17:58
728x90

변수는 랜덤 하게 발생하거나, 일정한 확률을 가지고 발생합니다.

일정한 확률을 바탕으로 발생하는 변수를 확률변수(Random Variable)라고 합니다.

 

확률변수들이 모여 확률분포를 이루게 됩니다.

 

데이터의 확률분포를 알고 있다면, 

일어날 수 있는 사건의 확률을 알 수 있고, 확률에 근거한 판단을 내릴 수 있습니다. 

 

확률분포는 주사위처럼 결괏값이 떨어져 있는 이산형 확률분포

키와 몸무게와 같이 연속적으로 변하는 값들로 이뤄진 연속형 확률분포가 있습니다.

 

이산형 확률분포에는

베르누이 시행, 이항분포, 포아송분포, 기하분포, 음이항분포, 초기하분포 등이 있습니다.

 

연속형 확률분포에는

균등분포,  정규분포, 표준정규분포, 지수분포, 감마분포, 카이제곱분포, F분포, t분포 등이 있습니다.

 

 

정규분포(Normal Distribution)

정규분포는 평균값을 중심으로 좌우대칭인 확률분포입니다. 

따라서 평균이 분포의 중심위치를 결정하고, 표준편차는 분포의 두께를 결정합니다.

 

정규분포도 연속형 확률분포이므로, 그래프 밑의 면적이 확률이 됩니다. 

 

정규분포에서 확률을 알려주는 확률밀도함수는 다음과 같습니다.

정규분포의 형태를 결정짓는 요소는 평균과 표준편차입니다.

 

평균이 0이고 표준편차가 1인 정규분포는 다음과 같습니다. 

평균이 1이고 표준편차가 1인 정규분포는 다음과 같습니다. 

평균이 2이고 표준편차가 1인 정규분포는 다음과 같습니다. 

즉 평균이 변하면 그래프의 중심위치도 변하게 됩니다. 

 

평균이 0이고, 표준편차가 1인 정규분포는 다음과 같습니다.

평균이 0이고, 표준편차가 2인  정규분포는 다음과 같습니다.

평균이 0이고, 표준편차가 3인  정규분포는 다음과 같습니다.

즉, 분산이 커질수록 그래프의 두께는 낮아져서 넓게 퍼지는 모양이 됩니다.

 

몸무게의 평균이 70kg이고, 표준편차가 10kg인 집단의 분포가 정규분포를 따를 경우,

해당 정규분포는 다음과 같습니다.

이 집단에서 몸무게가 80kg 이상 90kg 이하일 확률을 구하면, 

80과 90 사이의 면적이 바로 확률이 되며,

이는 적분을 통해 구할 수 있습니다. 

 

적분계산을 위해 sympy를 가져옵니다.

파이썬은 문자인 'x'와 변수의 'x'를 구분하지 못하므로,

symbols를 통해 x가 변수라고 알려줍니다. 

Integral은 적분하는 메서드이며, 

첫 번째 인수는 적분할 수식을 입력하고,

두 번째 인수는 괄호 안에 변수, 적분을 시작하는 점, 적분을 끝내는 점을 입력합니다.

최종적으로 계산을 위해 evalf()를 덧붙여 주며, 결과는 동일합니다. 

 

이 집단에서 몸무게가 70kg이상일 확률을 구하면, 

다음과 같습니다. 

70kg부터 양의 무한대까지는 math.inf를 통해 입력을 하며, 결과는 50%입니다.

정규분포는 평균을 중심으로 양쪽이 대칭이므로, 평균부터 무한대까지의 값은 절반인 50%가 됩니다.

 

수식을 살펴보기 위해 직접 대입하여 값을 구하였으나, 

scipy의 norm을 활용하여 간단히 구할 수 있습니다. 

몸무게가 80kg 이상이고 90kg 이하인 확률입니다.

norm은 정규분포(normal distribution)를 뜻하며, 

첫 번째 인자인 loc는 평균을 입력하고, 두 번째 인자인 scale에는 표준편차를 입력합니다. 

이렇게 만들어진 정규분포를 rv로 정하고,

알고자 하는 구간을 cdf를 활용하여 구합니다. 

 

cdf는 누적분포함수(cumulative density function)를 뜻하며,

정규분포의 가장 왼쪽 끝에서부터 특정 지점까지의 면적, 즉 확률을 알려줍니다. 

따라서 구하고자 하는 구간의 큰 값에서 작은 값을 빼주면 우리가 알고자하는 확률이 됩니다.

 

몸무게가 70kg일 확률도 동일합니다. 

 

정규분포는 연속형 확률분포 중 실질적으로 가장 많이 활용되는 분포입니다. 

 

현재에는 컴퓨터를 활용하여 정규분포의 수식을 작성하고, 적분하는 과정은 간단합니다. 

그러나 컴퓨터가 발명되기 전에는 정규분포의 수식을 활용하여,

적분을 구하는 과정이 용이하지 않았습니다.

 

그래서 평균을 0으로, 표준편차를 1로 만드는 표준화 작업을 통해서, 

구간별 모든 값들을 계산하고, 표로 작성하여 활용하였습니다. 

이를 표준정규분포(Standard Normal Distribution)라고 합니다.

 

현재에도 표준정규분포는 평균과 표준편차가 상이한 집단 간의 비교 시에 활용합니다.

이는 우리가 표준정규분포의 주요 값들을 이미 인지하고 있는 상황에서 비교가 용이하기 때문입니다. 

 

예를 들어 표준정규분포에서 95%에 해당하는 값은 약 1.65입니다. 

표준정규분포에서 97.5%에 해당하는 값은 약 1.96입니다. 

표준정규분포에서 99.5%에 해당하는 값은 약 2.56입니다. 

확률변수를 표준화하는 방법은 다음과 같습니다. 

확률변수 X에서 평균을 빼주고, 표준편차로 나눠주면 됩니다.

앞서 예제의 80kg을 표준화하면 다음과 같습니다.

앞서 예제의 90kg을 표준화하면 다음과 같습니다.

이 집단에서 몸무게가 80kg 이상 90kg 이하일 확률은 다음과 같습니다. 

앞서와 같이 평균이 70kg이고 표준편차가 10kg인 정규분포를 별도로 만들고,

계산한 결과와 동일합니다.

 

 

정리하면,

정규분포는 연속형 확률분포로서 그래프 아래의 면적이 확률을 나타내며, 

평균과 분산에 의해 그래프의 개형이 결정됩니다. 

즉, 평균에 의해 중심위치가 결정되며,

분산에 의해 그래프의 두께가 결정됩니다. 

 

평균을 중심으로 좌우대칭이며,

그래프의 범주는 음의 무한대에서 양의 무한대까지입니다.

 

정규분포를 비교가 용이하도록 표준화하여 사용하며, 

이를 표준정규분포라고 합니다. 

반응형