★Multi Indexing★곱의 법칙★조건부 확률★기초통계학-[Chapter04 - 확률-04]
2022. 12. 12. 13:57
728x90
반응형
1. 조건부확률(Conditional Probability)
==> 0보다 큰 확률을 가지는 어떤 사건 A가 이미 발생했다는 조건 아래서, 사건 B가 일어날 확률을 의미
P(B|A)
EX-01)
avg_down = [24,65,14]
avg = [57 , 147, 48]
avg_up = [35 , 38 , 22]
A = pd.DataFrame([avg_down , avg , avg_up] , index = ['평균아래(B)' , '평균(A)' , '평균 위(U)'] , columns= ['나쁨(F)' , '좋음(G)' , '뛰어남(E)'])
A['합계'] = A[:].sum(axis=1)
A
a = pd.DataFrame(A[:].sum(axis = 0))
a = a.T
a.index = ['합계']
A = pd.concat([A,a])
A.index.names = ['판매능력']
P_F = round(A.loc['합계' , '나쁨(F)']/A.loc['합계' , '합계'] ,4)
P_G = round(A.loc['합계' , '좋음(G)']/A.loc['합계' , '합계'] ,4)
P_E = round(A.loc['합계' , '뛰어남(E)']/A.loc['합계' , '합계'] ,4)
P_A = round(A.loc['평균(A)' , '합계']/A.loc['합계' , '합계'] ,4)
P_B = round(A.loc['평균아래(B)' , '합계']/A.loc['합계' , '합계'] ,4)
P_U = round(A.loc['평균 위(U)' , '합계']/A.loc['합계' , '합계'] ,4)
# 1. P(E) = 0.1867
print(P_E)
# 2. P(E) & P(B) = 0.0311 // P(E) & P(A) = 0.1067 // P(E) & P(U) = 0.0489
P_E_int_P_B = round(A.loc['평균아래(B)' , '뛰어남(E)']/A.loc['합계' , '합계'] ,4)
print(P_E_int_P_B)
P_E_int_P_A = round(A.loc['평균(A)' , '뛰어남(E)']/A.loc['합계' , '합계'] ,4)
print(P_E_int_P_A)
P_E_int_P_U = round(A.loc['평균 위(U)' , '뛰어남(E)']/A.loc['합계' , '합계'] ,4)
print(P_E_int_P_U)
0.0311
0.1067
0.0489
# 3. P(E|B) = 0.1359 // P(E|A) = 0.1905 // P(E|U) = 0.2316
P_E_JO_P_B = round(P_E_int_P_B / P_B, 4)
print(P_E_JO_P_B)
P_E_JO_P_A = round(P_E_int_P_A / P_A, 4)
print(P_E_JO_P_A)
P_E_JO_P_U = round(P_E_int_P_U / P_U, 4)
print(P_E_JO_P_U)
0.1359
0.1905
0.2316
# 4. P_A_int_P_G = 0.3267
P_A_int_P_G = round(A.loc['평균(A)' , '좋음(G)']/A.loc['합계' , '합계'] ,4)
print(P_A_int_P_G)
0.3267
# 5. P(A) * P(G | A) = 0.3267 // P(G) * P(A|G) = 0.3267
print(round(P_A * (P_A_int_P_G / P_A), 4))
print(round(P_G * (P_A_int_P_G / P_G), 4))
0.3267
0.3267
EX-02)
man = [0.08,0.4]
woman = [0.15 , 0.37]
A =pd.DataFrame([man , woman] , index = ['남자' , '여자'] , columns = ['하고 싶다.' , '안 한다.'])
A['합계'] = A[:].sum(axis=1)
a = pd.DataFrame(A[:].sum(axis=0))
a = a.T
a.index = ['합계']
A =pd.concat([A,a])
A.columns.names = ['성향']
A.index.names = ['성별']
A
# 1. 청소년중 1명 선택 ==> 염색을 원할 확률 ==> P(청소년 | 하고 싶다.) =
p_handa = round(A.loc['합계' , '하고 싶다.'] , 4)
print(p_handa)
# 2. 남자가 선정 ==> 이 사람이 염색을 원할 확률 ==> P(남자 | 하고 싶다.) =
P_nam_handa = round(A.loc['남자' , '하고 싶다.'] / A.loc['남자' , '합계'] , 4)
print(P_nam_handa)
# 3. 여자가 선정 ==> 이 사람이 염색을 원할 확률 ==> P(여자 | 하고 싶다.) =
P_woman_handa = round(A.loc['여자' , '하고 싶다.'] / A.loc['여자' , '합계'] , 4)
print(P_woman_handa)
2. 조건부확률의 곱의 법칙(Multiplication Law)
EX-01) 52장의 카드에서 4장의 카드 뽑을때 4장의 카드가 모두 킹일 확률
1. 비복원추출에 의한 카드 뽑는 경우
1> 차례대로 꺼낸 카드가 king 인 사건을 A,B,C,D
P(A) = 4/52
P(B|A) = 3/51
P(C| (A M B) ) = 2 / 50
P(D | (A M B M C)) = 1 / 50
2> 복원추출에 의한 카드 뽑는 경우
P(A) = 4/ 52
P(B | A) = 4 / 52
P(C | (A M B)) = 4 / 52
P(D | (A M B M C)) = 4 / 52
EX-02) 흰 바둑돌 5개와 검은 바둑돌 3개 ==> 2개 추출 ==> 검은 돌 흰 돌 확률
1> 비복원 추출
P(A) = 5 / 8
P(A | B) = 3 / 7
print( (5/8) * (3/7))
==> 0.26785714285714285
2> 복원 추출
P(A) = 5 / 8
P(A | B) = 3 / 8
print( (5/8) * (3/8))
==> 0.234375
728x90
반응형