Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- MySQL
- Ga
- Blog
- Python
- 티스토리
- SQL
- 월간결산
- Google Analytics
- 텐서플로
- 파이썬
- Visualization
- 통계학
- 시각화
- 블로그
- matplotlib
- 서평
- 리눅스
- 한빛미디어
- Pandas
- 파이썬 시각화
- 매틀랩
- python visualization
- 딥러닝
- 독후감
- 서평단
- Tistory
- tensorflow
- MATLAB
- Linux
- 한빛미디어서평단
Archives
- Today
- Total
pbj0812의 코딩 일기
[통계학] python으로 포아송 분포 함수 구현하기 본문
0. 목표
- python으로 포아송 분포 함수 구현
1. 사전 이론 준비
- 시행 횟수가 아주 많고, 사상 발생의 확률이 아주 작을때의 이항분포
- ex) 공장에서의 불량품 수
2. 실습
1) 네이피어 수 구현 및 확인
- 1000번 까지만 구함
- 결과 :2.7169239322355936
def exp(inp):
result = (1 + 1/1000) ** 1000
result = result ** (inp)
return result
print(exp(1))
2) factorial 함수 구현 및 확인
- 0을 input으로 넣었을 때는 1이 출력되도록 조건 추가
- 결과 : 6
def factorial(inp):
result = inp
i = inp
while i > 1:
i -= 1
result *= i
if result == 0:
result = 1
return result
print(factorial(3))
3) 포아송분포 구현 및 확인
# inp1 : 시행횟수
# inp2 : 확률
# inp3 : 사상 발생 횟수
def poisson(inp1, inp2, inp3):
mean = inp1 * inp2
result = ((exp(-mean)) * (mean ** inp3)) / factorial(inp3)
return result
- 문제 : 불량품이 나올 확률이 0.002(0.2 %)인 공장이 있다고 할 때 1000번을 돌려서 불량품이 0개가 나올 확률
- 결과 : 0.1354705959640027
poisson(1000, 0.002, 0)
4) 0 ~ 10회가 일어날 확률의 데이터 프레임화
- inp3 부분을 list 형태로 받아 내부의 for 문을 통하여 계산하는 형태
# inp1 : 시행횟수
# inp2 : 확률
# inp3 : 사상 발생 횟수리스트
def make_list(inp1, inp2, inp3):
result = []
for i in inp3:
result.append(poisson(inp1, inp2, i))
result_df = pd.DataFrame({'standard' : inp3, 'result' : result})
return result_df
inp_list = [i for i in range(11)]
result = make_list(1000, 0.002, inp_list)
print(result)
5) 그래프 생성을 위한 library 호출
- 한글 입력을 위한 rc 호출
import matplotlib.pyplot as plt
from matplotlib import rc
rc('font', family='AppleGothic')
plt.rcParams['axes.unicode_minus'] = False
6) 그래프 생성
plt.bar(result['standard'], result['result'])
plt.title('1000번 중 해당 개수의 불량품이 나올 확률')
plt.xlabel('불량품의 개수')
plt.ylabel('불량품이 나올 확률')
- 결과
4. 참고
- 푸아송 분포
'Science > 통계학' 카테고리의 다른 글
[통계학] python으로 F 분포 그래프 그리기 (0) | 2020.08.19 |
---|---|
[통계학] python을 통한 자유도에 따른 카이제곱 분포 그리기 (0) | 2020.08.19 |
[통계학] python을 통한 왜도 / 첨도 구현 (0) | 2020.08.16 |
[통계학] 동전 던지기 게임을 통한 정규분포 그래프 만들기 (0) | 2020.08.15 |
[통계학] Python으로 피어슨의 상관계수 구현하기 (0) | 2020.08.14 |
Comments