그래프그리기!!★ax.set_xscale('log')★SNS.lineplot()★로그변환★경험,대수법칙, 주관적 확률★기초통계학-[Chapter04 - 확률-04]
1. 기술통계학 & 추측통계학
기술통계학 : 이미 발생한 사건들에 관한 자료 수집 및 요약에 중점
추측통계학 : 미래에 어떤 사건이 발생할 가능성을 계산
==> 모집단으로부터 추출된 표본에서 얻은 정보를 이용하여 모집단의 알려지지 않은 정보를 추론
==> 추론에는 항상 불확실성 존재!
==> 확률은 추측통계학의 기본
2. 고전적 확률(Classical Probability)
==> 개개의 표본점들이 나타날 가능성이 거의 동등!
P(A) = (사건 A의 표본점 개수) / (표본공간 S 안의 표본점 개수)
EX) 동전 3번 던지는 게임에서 앞면이 2번 나올 확률
A = ['H' , 'T']
j = 0
ratio = list(itertools.product(A , repeat = 3))
for i in range(len(ratio)):
a = collections.Counter(ratio[i]).most_common()
b = list(filter(lambda x : x[0] == 'H' and x[1] ==2 , a))
if len(b)>0:
j+=1
print(b)
print(j/len(ratio))
==> most_common() 함수!!!! 리스화 ==> filter 함수를 사용하자!!
[('H', 2)]
[('H', 2)]
[('H', 2)]
0.375
3. 경험적 확률(Empirical Probability)
P(A) = (사건 A의 도수) / (총 관찰 도수)
EX) 45시간 이하로 인터넷 사용할 확률
dosu = [4,6,13,16,10,0,1]
A = pd.DataFrame({'계급간격' : a , '계급값' : b , '도수' : dosu})
A= A.set_index('계급간격')
A
B = A[A['계급값'] <=45]
print(float(B['도수'].sum(axis=0)) / (A['도수'].sum(axis=0)))
==> DataFrame 조건식 할때는 대괄호 안에 넣기!
0.78
b = A['상대도수'].tolist()
for i in range(1, len(b)):
b[i] = b[i-1] + b[i]
A['누적상대도수'] = b
A
==> 누적상대도수 구하는 공식 그냥 for문 활용
n = [10, 50, 100, 500, 1000, 5000 , 10000 , 50000]
coin = ['H' , 'T']
res = []
for j in n:
k=0
for i in range(j):
if random.randint(0,1) == 1:
k+=1
res.append(k)
res
A = pd.DataFrame({"던진횟수" : n , '앞면의 수' : res})
A['던진 횟수에 대한 앞면 수의 비율'] = A['앞면의 수'] / A['던진횟수']
A
res ==> 앞면이 나온 횟수
==> 알고리즘 더 짤 수 있는거 있을지 고민해보자
fig = plt.figure(figsize=(8,8)) #plt는 matplotlib의 약자
fig.set_facecolor('white')
x = A['던진횟수']
y = A['던진 횟수에 대한 앞면 수의 비율']
ax = sns.lineplot(x=x, y=y,
color='r', # 색상
linestyle='-', # 라인 스타일
marker='o') # 마커
#ax 변수에 저장
ax.set_title('시뮬레이션')
ax.set_xlabel('던진횟수', fontsize = 15 , fontweight = 'bold')
ax.set_ylabel('앞면의 비율' , fontsize = 15 , fontweight = 'bold' , rotation = 0 , labelpad=25)
ax.set_xticklabels(x, fontsize=15) #set_xticklabels(축별 이름 , font 크기)
★ X축에 대한 로그 스케일 적용
==> ax.set_xscale('log') ==> X축 로그 변환!!
fig = plt.figure(figsize=(15,8)) #plt는 matplotlib의 약자
fig.set_facecolor('white')
x = A['던진횟수']
y = A['던진 횟수에 대한 앞면 수의 비율']
ax = sns.lineplot(x=x, y=y,
color='r', # 색상
linestyle='-', # 라인 스타일
marker='o') # 마커
ax.set_xscale('log')
ax.set_xticks(x)
ax.set_yticks([0.1 , 0.2, 0.3 , 0.4 ,0.5 , 0.6 ,0.7])
#ax 변수에 저장
ax.set_title('시뮬레이션')
ax.set_xlabel('던진횟수', fontsize = 15 , fontweight = 'bold')
ax.set_ylabel('앞면의 비율' , fontsize = 15 , fontweight = 'bold' , rotation = 0 , labelpad=25)
ax.set_xticklabels(x, fontsize=15) #set_xticklabels(축별 이름 , font 크기)
fig = plt.figure(figsize=(15,8)) #plt는 matplotlib의 약자
fig.set_facecolor('white')
x = A['던진횟수']
y = A['던진 횟수에 대한 앞면 수의 비율']
ax = sns.lineplot(x=x, y=y,
color='r', # 색상
linestyle='-', # 라인 스타일
marker='o') # 마커
ax.set_xscale('log')
ax.set_xticks(x)
ax.set_yticks([0.1 , 0.2, 0.3 , 0.4 ,0.5 , 0.6 ,0.7])
#ax 변수에 저장
ax.set_title('시뮬레이션')
ax.set_xlabel('던진횟수', fontsize = 15 , fontweight = 'bold')
ax.set_ylabel('앞면의 비율' , fontsize = 15 , fontweight = 'bold' , rotation = 0 , labelpad=25)
ax.set_xticklabels(x, fontsize=15) #set_xticklabels(축별 이름 , font 크기)
ax.axhline(y=0.5 , xmin=0 , xmax=1 , color = 'blue' , linestyle ='--' , label ='{}'.format(0.5))
# 수평선!!!
ax.text(25000 , 0.51 , f'확률 : {(0.5)}',fontsize=13)
#점선의 위치 지정!!
==> 수평선 axhline() 기억하자!!!!
4. 대수법칙(Law of Large Numbers)
==> 어떤 사건이 나타날 경험적 확률은 실험을 반복할 수록 고전적 확률에 가까워진다!
EX) 반지름 길이 20cm 다트 원판 ==> 중앙에 반지름의 길이가 4cm 인 원이 그려져 있다.
==> 다트를 던져 중앙에 있는 원 안에 맞힐 확률
==> 원판 넓이 : 20**2ㅠ = 400ㅠ
==> 중앙 원 넓이 : 4**2ㅠ = 16ㅠ
==> 16ㅠ / 400ㅠ = 1/25 = 0.04
5. 주관적 확률(Subjective Probability)
==> 사건이 나타날 가능성을 결정짓는 사람의 개인적인 직관이나 경험에서 우러난 추측이나 추정에 의해 정해진 확률
출처 : [쉽게 배우는 생활속의 통계학] [북스힐 , 이재원]
※혼자 공부 정리용
'기초통계 > 순열,조합' 카테고리의 다른 글
★전확률 공식★베이즈 정리★기초통계학-[Chapter04 - 확률-06] (0) | 2022.12.12 |
---|---|
★독립사건 종속사건★조건부 확률★기초통계학-[Chapter04 - 확률-05] (0) | 2022.12.12 |
복원, 비복원 추출★SET활용하여 차집합,여집합 가능!★기초통계학-[Chapter04 - 경우의 수-03] (0) | 2022.12.10 |
Product(), Combinations_with_replacement()★중복순열,중복조합★기초통계학-[Chapter04 - 사건-02] (0) | 2022.12.09 |
Permutations(), Combinations()★순열,조합★기초통계학-[Chapter04 - 경우의 수-01] (0) | 2022.12.09 |