-
[7강] 이산형 확률변수-이항분포와 베르누이 시행기초지식/Quantopian(강의노트) 2025. 4. 5. 21:37반응형
이항분포(Binomial Distribution)와 확률함수
성공/실패, 수익/손실처럼 양자택일로 표현되는 결과들을 모델링할 경우가 있다. 이 양자택일 실험을 한 번 수행한 것을 베르누이 시행이라고 하는데, 결과는 성공 또는 실패가 된다. 이항분포는 이 베르누이 시행을 n 번 수행한 결과이다. 이때 총 성공한 횟수를 X이고, 각각의 성공확률을 p라고 한다면 X는 아래와 같이 표현할 수 있다.( X가 될 수 있는 값은 0 ~ n 이다.)
식1: 베르누이 시행에서 X값 표현 이항분포에서는 조합(Combination)을 이용해서 확률질량함수(PMF)를 나타낼 수 있다. 총 n 번의 시행에서 k 번 성공할 수 있는 확률은 n 번의 시도에서 무작위로 k 번의 성공을 뽑아내는 것과 같으므로 아래 식 2와 같이 조합을 사용해서 나타낼 수 있는 것이다.
식2: n번 수행에서 k번 성공할 수 있는 경우의 수 각각의 사건은 독립사건이라는 것을 이용해서 성공확률을 고려한 확률질량함수를 만들면 아래와 같이 나타낼 수 있다.
식3: 이항분포의 확률질량함수 이때 성공 확률이 0.3처럼 0.5가 아닌 경우 분포는 비대칭이 된다. p = 0.3과 같이 성공 확률이 낮으면 대부분 실패 쪽으로 치우치게 된다.
numpy의 binomial이라는 함수에 시도 횟수(n), 성공확률(p), 수행을 반복해서 결과를 받는 횟수를 넣으면 간단하게 이항분포를 구현할 수 있다. 아래는 이항분포를 만들어내는 bernoulliTrial이라는 함수를 구현한 것이다.
import numpy as np import matplotlib.pyplot as plt def bernoulliTrial(numberOfTrials: int, probabilityOfSuccess: float, numberOfSamples: int): samples = np.random.binomial(numberOfTrials, probabilityOfSuccess, numberOfSamples) return samples
bernoulliTrial 함수에 변수로 시도 횟수 6, 성공확률 0.5, 수행을 반복하는 횟수 2를 넣으면 아래 그림 1과 같은 결과를 얻을 수 있다. 이는 첫 번째 수행에서 6번 시도한 결과 5번 성공이 나왔고, 두 번째 수행에서는 4번 성공이 나왔다는 뜻이다.
그림1: bernoulliTrial 함수 실행 결과 이항 모델과 주가 예측
이항분포는 주가 경로를 예측하는 모델에 사용될 수 있다. 매 시점마다 주가는 오르거나 내리는데, 이는 베르누이 시행이 계속 반복되는 것으로 볼 수 있기 때문이다. 초기 주가를 S_0라고 한다면 이항분포에 따라 결정되는 k 값을 이용해서 주가를 아래와 같은 형태로 표현할 수 있다.
식4: 이항분포를 활용한 미래 주가 표현식 이항 모델에 따른 주가 예상치는 위의 bernoulliTrial이라는 함수를 이용해서 쉽게 만들어볼 수 있다. 주식이 오를지 내릴지는 1/2인 상황에서 6 일 후의 주가를 예측한다고 하면, n = 6이고 p = 0.5가 된다. 예측을 10회 수행했다고 하면, 주가 상승 일수인 k를 구할 수 있다.(10회 수행했으니까 10개의 항목을 가진 list 형태로 만들어질 것이다.) 만들어진 k 를 위 식에 넣으면 6 일 뒤의 주가를 예측할 수 있다.
n = 6 samples = bernoulliTrial(n, 0.50, 10) StockProbabilities = [] S_0 = 2465.42 u = 1.01 d = 0.99 for k in samples: S_n = S_0 * (u**k) * (d**(n-k)) StockProbabilities.append(S_n) StockProbabilities plt.hist(StockProbabilities, align = 'left') plt.xlabel('Value') plt.ylabel('Occurences') plt.legend(['Stock Process']);
코드를 통해서 구현한 6일 뒤의 주가는 아래 그림 2와 같이 나타낼 수 있다.(코드를 실행할 때마다 다른 값이 나올 것이다.)
그림2: 6일 뒤 주가 예측 결과값 예시 반응형'기초지식 > Quantopian(강의노트)' 카테고리의 다른 글
[7강] 연속형 확률변수 (1) 2025.04.08 [7강] 이산형 확률변수-균등분포 (0) 2025.04.03 [6강] 데이터 상관관계 분석 (0) 2025.02.01 [5강] 왜도와 첨도를 활용한 자크베라 검정(정규성 검정) (0) 2024.12.07 [5강] 통계적 지표(왜도와 첨도) (0) 2024.12.03