garch
语法
garch(ds, endogColName, order, [maxIter=50])
详情
使用广义自回归条件异方差模型(Generalized Autoregressive Conditional Heteroskedasticity,简称 GARCH 模型)来分析单变量时间序列。返回一个字典,表示 GARCH 模型的分析结果,详细说明请参见“返回值”小节。
参数
ds 一张内存表或者一个 DataSource 类型构成的向量,包含需要分析的单变量时间序列。注意:不可为空。
endogColName 字符串标量,表示 ds 中需要分析的时间序列所对应的列名。
order 长度为 2 的正整数向量,表示 GARCH 模型的阶数。比如 order=[1,2]
表示 GARCH 模型的
p=1,q=2,其中 p 为 GARCH 项个数,q 为 ARCH 项阶数。
maxIter 可选参数,正整数标量,表示优化时的最大迭代次数,默认值为 50。
返回值
返回一个字典,表示 GARCH 模型的分析结果,字典有以下成员:
-
volConstant:浮点数标量,表示优化得到的 Vol Constant。
-
returnsConstant:浮点数标量,表示优化得到的 Returns Constant。
-
archTerm:浮点数向量,表示优化得到的 ARCH Term。
-
garchTerm:浮点数向量,表示优化得到的 GARCH Term。
-
iterations:整数标量,表示优化迭代次数。
-
aic:浮点数标量,表示 aic 准则的值。
-
bic:浮点数标量,表示 bic 准则的值。
-
nobs:整数标量,表示时间序列的观测数量,即拟合使用的数据量。
-
model:字典类型,包含拟合后模型的基本信息,有以下成员:
-
order:长度为 2 的正整数向量,表示模型的阶数。
-
endog:浮点数矩阵类型,表示从 ds 中转换而来的观测数据。
-
start:浮点数向量类型,表示经过拟合后的外生变量的值。
-
-
predict:函数指针, 指向预测函数,使用方法为
model.predict(x)
。其中,model 表示 garch 函数的输出结果,x 为一个正整数,表示预测的步长。预测函数返回一个数组,数组中每个元素分别表示每一步的预测值。
例子
传入 macrodata.csv 文件,自定义相关参数,计算其使用 GARCH 模型进行分析的结果。
data = loadText("macrodata.csv");
model = garch(data, "realgdp", [1,1]);
print(model)
// out:
volConstant->0.000005999433551
returnsConstant->0.008474617943101
archTerm->[0.70725452294378]
garchTerm->[0.248859733003604]
aic->-1353.789403416915774
bic->-1340.576183784679415
nobs->201
iterations->38
predict->garchPredict
model->order->[1,1]
endog->#0
------------------
0.024942130816387
-0.001192952110668
0.003494532654372
...
coefficients->[-12.023845501294935,-1.104702991485461,0.882087052766567,0.008474617943101]