728x90
반응형

6. 자동차의 등급을 나타내는 수를 확률변수 X

https://knowallworld.tistory.com/241

 

이항분포식★이항실험★이항분포의 평균,분산★베르누이시행★기초통계학-[Chapter05 - 이산확률

1. 이항분포 ==> 많이 사용하는 확률 모형 : 이항분포, 푸아송분포 , 초기하분포 1. 이항실험(Bionomial Experiment) ==> 실험은 N번의 시행 ==> 실험 결과는 성공(S) , 실패(F) ==> 성공 확률 : p , 실패 확률 : q

knowallworld.tistory.com

x = np.arange(1,6)
cars = [6 , 11 ,18 ,49 ,16]

A = pd.DataFrame([cars] , columns = x)
A.index =['자동차 수(대)']
A.columns.names = ['등급(스타)']
A

이산확률분포

1> X의 확률 분포

A.loc['자동차 수(대)'] = A.loc['자동차 수(대)'] /A.loc['자동차 수(대)'].sum(axis=0)
A

확률분포 표

2> P(X>=3) 

 

b= A.iloc[0, [2,3,4]].sum(axis=0)
b

0.83

 

3> 평균등급

 

E(X) = 시그마 (x* f(x) ) 

 

e_x = 0
for i in range(len(x)):
    a = x[i]*A.iloc[0, i]
    print(a)
    e_x +=a
print(e_x)

==>

0.06
0.22
0.54
1.96
0.8
3.58

 

7. 자동차의 등급을 나타내는 수를 확률변수 X

 

par_3 =np.arange(2,6)
par_4 = np.arange(3,7)
par_5 = np.arange(4,8)
p_x = [[0.11 , 0.78 , 0.07 , 0.04] , [0.15 , 0.78 , 0.04 , 0.03] , [0.06 ,0.78 , 0.10 , 0.06]]

A = pd.DataFrame([par_3 , par_4 , par_5 , *p_x] )
A = A.T
A = A.iloc[: , [0,3,1,4,2,5]]
A = A.astype({0 : 'int64' , 2 : 'int64' ,1 : 'int64' })

A.columns = [['파 3홀','파 3홀','파 4홀','파 4홀' , '파 5홀' , '파 5홀'], ['x','p(x)','x','p(x)' , 'x','p(x)']]
A

==> astype( {'열이름' : 'int64' } ) ==> 원하는 컬럼만 변경이 가능하다!

 

==> 2중 column 적용하기!

확률분포표

1> 각 홀에 대한 기대 점수(E(X))

 

hole= []

for k in range(3):
    a  ,b = 0 , 0
    for i in range(len(par_3)):
        a = A.iloc[i, k*2] * A.iloc[i, (k*2)+1]
        print(a)
        b += a
    hole.append(b)
hole

파 3홀 : 3.04

파 4홀 : 3.95

 

파 5홀 : 5.16

 

8. 지방의 도시에서 5%의 시민이 질병, 임의로 5명 선정시 걸린 사람이 2명 이하일 확률

https://knowallworld.tistory.com/241

 

이항분포식★이항실험★이항분포의 평균,분산★베르누이시행★기초통계학-[Chapter05 - 이산확률

1. 이항분포 ==> 많이 사용하는 확률 모형 : 이항분포, 푸아송분포 , 초기하분포 1. 이항실험(Bionomial Experiment) ==> 실험은 N번의 시행 ==> 실험 결과는 성공(S) , 실패(F) ==> 성공 확률 : p , 실패 확률 : q

knowallworld.tistory.com

p = 0.05

r = 5

 

==> 누적 이항분포 참고

 

P(X<=2) = 0.9988

 

 

9. 32% 반대 , 20명중에 반대 의견을 표시한 사람 수를 확률변수 X

 

1> X의 확률 함수

 

p = 0.32

r = 20

 

==> 이산확률분포 P(X) = 20Cx * (0.32 ** x) * 0.68 ** (20-x)

 

2> P(X>=2) = 1-P(X<=1) = 1 - P(X=1) - P(X=0)  =0.9953

print( 1- (len(list(itertools.combinations(np.arange(20) , 1))) * math.pow(0.32 , 1) * math.pow(0.68 , 19) ) - ( len(list(itertools.combinations(np.arange(20) , 0))) * math.pow(0.32 , 0) * math.pow(0.68 , 20) ) )

==> x = 0 ,1 ,2, 3 , ...

 

 

3> E(X) = np , V(X) = npq

 

E(X) = 20 * 0.32 = 6.4

 

 

10. 민주주의의 80%는 언론의 자유 허용, 비민주주의는 10%만 허용

 

1> 민주주의 50개국 , 평균 몇 곳의 국가가 언론의 자유 허용

 

==> N이 50 넘어가는 푸아송 분포(보통 30 넘어가면 푸아송이라 생각하자)

p = 0.8

n = 50

q = 0.2

 

E(X) = np

V(x) = npq

 

E(X) = 50 * 0.8 = 40 개국???? 인데 답은 8개국 ==> 이건 분산의미하는 거 아니냐?

 

2> 비민주주의 50개국, 평균 몇 곳의 국가가 언론의 자유 허용

 

p = 0.1

n = 50

Q = 0.9

E(X) = 50 * 0.1 = 5 개국???? 인데 답은 4.5개국 ==> 이건 분산의미하는 거 아니냐?

 

 

3> 비민주주의 50개국 언론의 자유 허용 국가 3곳 이상일 근사 확률

 

P(X>=3) = 1- P(X<=2) = 1- 0.125 = 0.875 ==> 이건또 맞아

 

11. 회사의 보안 시스템은 95%의 신뢰성 , 10개 도난 실험

 

X ~ B(10 , 0.95)

 

P(X) = 10 C x * 0.95 ** x * 0.05 ** 10-x

 

X ~ P(9.5)

 

==> 이항분포확률 WHY? 갯수가 10개이므로!

 

1> P(X>=6) = 1- P(X<=5) = 0.9999363101685547

 

2> P(X<=9) =0.4012630

 

12. 사망할 확률 0.01059 , 10명의 보험 가입자 보유

 

1> 보험가입자 10명 모두 생존할 확률

 

X ~ B(10 , 1- 0.01059)

 

 

p(x) = 10C x 0.01059 ** x * 0.98941 ** x-1

X ~ P(0.8941)

 

P(X = 10) = 0.9999999967699843 ??!

F_X = 0
m = (1 - 0.01059 * 10)
print(m)
for x in range(0,11):
    F_X += (m ** x) * math.exp(-m) / fact(x)

print(F_X)

 

2> 보험 가입자 10명중 8명이상 생존할 확률:

 

F_X = 0
for x in range(0,8):
    F_X += (m ** x) * math.exp(-m) / fact(x)

print(F_X)

print(10000 * (1- 0.01059))

P(X>=8) = 1 - P(X<=7) = 1 - 0.9999954059083884 ??!

 

3> 10000명의 가입자 중에서 내년까지 생존할 것으로 기대되는 인원수

 

==> N이 10000명이므로 푸아송 분포 근사치로 구한다.

 

==>E(x) = np ==> 10000 * 0.98941 = 9894 명

 

13. 0.6의 확률의 추돌사고 , 10명의 피보험자를 무작위 선정

 

1> 추돌사고 일으킨 피보험자 수에 대한 확률함수

 

==> N이 10이므로 이항분포

 

P(X) = 10Cx * ((0.6) ** x) * ( (0.4) ** (10-x))

2> 추돌사고를 일으킨 피보험자 수의 평균과 분산

 

E(X) = np  = 10 * 0.6 = 6

V(X) = npq = 6 *0.4 = 2.4

 

3> 꼭 2명의 피보험자가 사고낼 확률

 

F_X = 0
for x in range(2,3):
    F_X += len(list(itertools.combinations(np.arange(10) , x))) * (0.6 ** x) * (0.4 ** (10-x))
print(F_X)

 

P(X = 2 ) = 0.0106

 

 

4> 적어도 4명 이상의 피보험자가 사고 낼 확률

 

F_X = 0
for x in range(0,4):
    F_X += len(list(itertools.combinations(np.arange(10) , x))) * (0.6 ** x) * (0.4 ** (10-x))
print(1  - F_X)

P(X>=4) = 1 - P(X<=3) = 0.945238

 

출처 :  [쉽게 배우는 생활속의 통계학]  [북스힐 , 이재원] 

※혼자 공부 정리용

728x90
반응형

+ Recent posts