반응형
※ 확률밀도 함수란?
연속확률변수가 주어진 어떤구간 내에 포함될 확률입니다.
이를 함수형태로 나타낸 것이 확률밀도함수라고 합니다.
확률밀도 함수는 X축에는 확률변수의 값을 Y축에는 확률변수가 갖는 일정 구간 값이 나타날 확률을 표현한 곡선입니다.
확률밀도 함수는 구간을 정해서 넓이를 구하면 그 값이 확률이 됩니다.
즉, 확률밀도 함수에서 전체 넓이는 1을 의미합니다.
※ 연속 확률 밀도에 대해서 정리한 포스팅을 참고하세요
2021/02/16 - [데이터 분석] - [데이터 분석] 확률 밀도 함수
예제를 통해 파이썬으로 확률 밀도 함수를 표현하는 방법을 알아보겠습니다.
### 확률 밀도 함수 확률 나타내기
전체 초등학생의 수는 10만명 입니다.
평균 키는 140 , 표준 편차는 5 입니다.
무작위로 한 명을 추출할 때 키가 145 이상 , 150 미만일 확률은 어떻게 될까요?
# 진행 과정
1. 10만명의 초등학생 키 데이터 만들기
2. 평균 140, 표준편차 5인 결과로 만들기
3. 145~150 확률 구해보기
4. 그래프로 나타내기
4-1. 곡선으로 나타내기
4-2. 아래 면적 색칠하기
1&2. 데이터 생성
numpy 모듈의 random 기능을 사용하여 생성합니다.
- numpy.random.randint(n) : 균일분포의 정수 난수 n개 생성
- numpy.random.rand(m,n) : 0 ~ 1 사이의 균일분포의 난수 (m,n) 생성
- numpy.random.randn(m,n) : 평균 0, 표준편차 1의 가우시안 표준 정규분포 난수 (m,n) 생성
import numpy as np
data=np.random.randn(100000)*5+140
print(data.mean())
print(data.std())
3. 확률 구하기
cnt=[i>=145 and i<150 for i in data].count(True)
print(cnt/100000)
4. 그래프로 나타내기
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import norm
data=np.random.randn(100000)*5+140
data.sort()
y=norm.pdf(data,140,5) # 평균 0, 표준편차 1
plt.plot(data, y, color='red')
plt.fill_between(data, y, where= (data >= 145) & (data <150), interpolate=True, color='yellow', alpha=0.5)
반응형
'알고리즘' 카테고리의 다른 글
[VScode] C++ 환경 설정 (0) | 2023.11.25 |
---|---|
[Python algo] 분산 구하기 | 표준편차 구하기 (2) | 2021.01.21 |
[Python algo] 중앙값 계산 | 중앙값 사용 (0) | 2021.01.20 |
[Python algo] 탐욕 알고리즘 | Greedy algorithm (7) | 2021.01.19 |
[Python&SQL] 치환문자를 통해 피타고라스 정리 구현 (1) | 2021.01.18 |
[Python&SQL] 각 자리수 합 더하기 (2) | 2021.01.15 |
[Python&SQL] 적어도 불량품 1개일 확률 ? (7) | 2021.01.14 |
[Python & SQL] 몬테 카를로 | 원주율 구하기 (1) | 2021.01.09 |