在之前的帖子中,我介绍了非常简单(和幼稚)的预测方法,即基于 CAGR 的预测和简单的移动平均预测。我在 R 中实现了此类预测方法并演示了基本用例。
在这篇文章中,我想介绍另一种简单的预测方法:随机游走预测。我将使用 Python 实现一个示例。
例如,随机游走预测可用于创建一个简单的基线模型,可以与其他预测进行比较。随机游走可以是一个很好的基准。例如,我在考虑金融市场分析,其中许多金融工程师试图创建可以针对随机游走进行测试的交易策略和预测模型。
下面我用Python实现了一个随机游走预测函数。该功能需要随机模块。
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 我们可以使用 pyplot 可视化随机游走预测,作为 Python 中matplotlib库的一部分:
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