데이터분석/통계

확률

씩씩한 IT블로그 2020. 7. 3. 16:57
반응형

 

# [중복 순열]
from itertools import product
from itertools import combinations_with_replacement

# 중복순열
re_per = list(product(['A', 'B','C','D','E'], repeat = 3))
re_per_num = len(re_per)

print(re_per)
print(re_per_num)

# [중복 조합]
from itertools import product
from itertools import combinations_with_replacement

# 중복조합

re_com = list(combinations_with_replacement(['A','B','C','D','E'], 3))
re_com_num = len(re_com)

print(re_com)
print(re_com_num)

# [조건부 확률]

import random
answer_Q1andQ2 = 0
answer_Q2 = 0
answer_Q1orQ2 = 0
random.seed(4)

# 함수 정의 
def random_answer():
    return random.choice(["A", "B"])


# 30명의 응답 결과
for i in range(30):
    Q1 = random_answer()
    Q2 = random_answer()
    if Q2 == "A":
        answer_Q2 += 1
    if Q2 == "A" and Q1 == "A":
        answer_Q1andQ2 += 1
    if Q2 == "A" or Q1 == "A":
        answer_Q1orQ2 += 1




# 조건부 확률과 독립
print( "P(Q1 and Q2 | Q2 ):", answer_Q1andQ2/answer_Q2)
print( "P(Q1 and Q2 | Q1 or Q2 ):", answer_Q1andQ2/answer_Q1orQ2)
P(Q1 and Q2 | Q2 ): 0.5
P(Q1 and Q2 | Q1 or Q2 ): 0.3181818181818182

 

# [확률분포 보이기]
from sympy.stats import given, density, Die

## Q1. 6개의 면이 있는 주사위 생성
Die6 = Die('Die6', 6)
Die6_dict = density(Die6).dict
print(Die6)
print(Die6_dict)


## Q2. 3 초과의 면만 나오는 조건을 가진 주사위 생성
condi = given(Die6, Die6 > 3)
condi_dict = density(condi).dict
print(condi)
print(condi_dict)
Die6
{1: 1/6, 2: 1/6, 3: 1/6, 4: 1/6, 5: 1/6, 6: 1/6}
Die6
{4: 1/3, 5: 1/3, 6: 1/3}
반응형