在Python中使用GARCH进行预测

时间:2018-06-19 20:28:15

标签: python forecasting arch

我有一个有关使用GARCH模型进行预测的问题。很抱歉,但是我是第一次使用ARCH软件包,因此不确定是我的错还是该软件包的限制。

我想使用GARCH模型来模拟未来的现货市场价格。我使用了以下代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from arch import arch_model


spotmarket = pd.read_csv("./data/external/Spotmarket_dhp.csv", delimiter=",", parse_dates=[0], index_col=[0])
print(spotmarket.head())


r = spotmarket['price'].pct_change().dropna() * 100
print(r)
plt.plot(r)

Q1 = r.quantile(.25)
Q3 = r.quantile(.75)
q1 = Q1-2*(Q3-Q1)
q3 = Q3+2*(Q3-Q1)

a = r[r.between(q1, q3)]
print(a)
plt.plot(a)

model = arch_model(a, vol='Garch', p=1, o=0, q=1, dist='Normal')
results = model.fit()
print(results.summary())

forecasts = results.forecast(horizon=1000, method='simulation', simulations=1)
sims = forecasts.simulations

我的数据在一列中大约有43000行。我已经消除了异常值。

我必须预测将近175 000个值,通常这应该是可能的...我现在有两个问题。无法将模拟设置为1,因为如果执行此操作,则会收到消息ValueError: could not broadcast input array from shape (41372) into shape (41372,1)。另一个问题是视野。当我尝试使用超过1000的地平线时,收到错误消息MemoryError。有人可以帮我或有什么想法吗?

0 个答案:

没有答案