이전 게시물에서 CAGR 기반 예측 및 단순 이동 평균 예측 이라는 매우 간단한(순진한) 예측 방법을 소개 했습니다. R에서 이러한 예측 방법을 구현하고 기본 사용 사례를 시연했습니다.
이 게시물에서는 또 다른 간단한 예측 방법인 랜덤 워크 예측을 소개하려고 합니다. Python을 사용하여 예제를 구현하겠습니다.
랜덤 워크 예측은 예를 들어 다른 예측을 비교할 수 있는 간단한 기본 모델을 만드는 데 사용할 수 있습니다. 랜덤 워크는 좋은 벤치마크가 될 수 있습니다. 여기서 저는 예를 들어 많은 금융 엔지니어가 랜덤 워크에 대해 테스트할 수 있는 거래 전략 및 예측 모델을 만들려고 시도하는 금융 시장 분석을 생각하고 있습니다.
아래에서는 Python에서 임의 보행 예측 기능을 구현합니다. 이 함수에는 random 모듈이 필요합니다.
import random
def random_walk_forecast(annualGrowth,
startPoint,
forecastLength,
productiveDaysPerYear,
standardDeviationRelativeToMeanGrowth):
prediction = []
g = (1+annualGrowth)**(1/productiveDaysPerYear)-1
for i in range(0,forecastLength):
if i == 0:
prediction.append(startPoint*random.normalvariate(mu=1+g,
sigma=g*standardDeviationRelativeToMeanGrowth))
else:
prediction.append(prediction[i-1]*random.normalvariate(mu=1+g,
sigma=g*standardDeviationRelativeToMeanGrowth))
return prediction
random_walk_forecast를 사용하여 Python에서 matplotlib 라이브러리 의 일부로 pyplot을 사용하여 랜덤 워크 예측을 시각화할 수 있습니다 .
historicals = [800,1000,874,945,1121,1245,1020]
growth_rate = 0.03
predictions = random_walk_forecast(annualGrowth = growth_rate,
startPoint = historicals[-1],
forecastLength=10,
productiveDaysPerYear=220,
standardDeviationRelativeToMeanGrowth = 500)
import matplotlib.pyplot as plt
plt.figure(figsize = (20,5))
historicals.extend(predictions)
plt.bar(range(1,len(historicals)+1),
historicals,
color = "#229900")
plt.title("time series wrandom walk: result of simple forecasting appraoch",size=20)
plt.xlabel("days",size=14)
plt.ylabel("values of interest",size=14)
plt.show()
이것으로 나의 간단한 예를 마칩니다.
최적화 및 시뮬레이션을 전문으로하는 산업 엔지니어 (R, Python, SQL, VBA)
Leave a Reply