《量化金融R语言初级教程》一1.2 对英国房屋价格建模并预测

简介:

本节书摘来异步社区《量化金融R语言初级教程》一书中的第1章,第1.2节,作者: 【匈牙利】Gergely Daróczi(盖尔盖伊) , 等 译者: 高蓉 , 李茂 责编: 胡俊英,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 对英国房屋价格建模并预测

除了zoo包,我们还会使用到forecast包的一些方法。如果你还没安装它,那就需要运行下面的命令来安装forecast包。

> install.packages("forecast")

接着我们运行下面的命令载入类。

> library("forecast")

首先,我们在时间序列对象zoo中存储月度房屋价格数据(来源:全英房屋抵押贷款协会)。

> hp <- read.zoo("UKHP.csv", sep = ",",
+  header = TRUE,format = "%Y-%m", FUN = as.yearmon)

参数FUN对日期列调用给定的函数(as.yearmon,表示月度数据点)。为了确认指定as.yearmon真正存储了月度数据(每个周期12个子周期),我们可以查询数据序列的频率。

> frequency(hp)
[1] 12

结果表示,一个周期(称为年)中有12个子周期(称为月)。为了深入分析,我们再次计算数据的简单收益率。

> hp_ret <- diff(hp) / lag(hp, k = -1) * 100

1.2.1 模型识别和估计

我们使用forecast包提供的auto.arima函数,在一步中同时识别最优模型并估计参数。除了收益率序列(hp_ret),函数还使用了几个参数。通过指定stationary = TRUE,我们将搜索仅仅限于平稳模型。同样地,seasonal = FALSE将搜索限定于非平稳模型。此外,我们选择模型时,选择赤池信息量来度量模型的相对质量。

> mod <- auto.arima(hp_ret, stationary = TRUE, seasonal =FALSE,
+  ic="aic")

为了确定拟合系数的值,我们可以查询模型的输出。

> mod
Series: hp_ret
ARIMA(2,0,0) with non-zero mean

Coefficients:
     ar1  ar2 intercept
   0.2299 0.3491  0.4345
s.e. 0.0573 0.0575  0.1519

sigma^2 estimated as 1.105: log likelihood=-390.97
AIC=789.94  AICc=790.1  BIC=804.28

根据赤池信息量准则,看起来AR(2)模型拟合数据最好。为了视觉层次的确认,我们可以使用命令pacf画出偏自相关函数。图形显示了到滞后两阶的非零偏自相关,阶数为2的AR过程看来比较合适。AR(2)模型给出了两个AR系数、截距(如果模型包含AR项,截距实际上是均值)以及相应的标准误。在下面的例子中,因为水平为5%的置信区间没有包括0,所以这些统计量都在5%的水平上显著。

> confint(mod)
       2.5 %  97.5 %
ar1    0.1174881 0.3422486
ar2    0.2364347 0.4617421
intercept 0.1368785 0.7321623

如果模型包含不显著的系数,我们可以使用带有fixed参数的arima函数重新估计模型,这相当于输入元素为0和NA的向量。NA表示相应的变量系数需要估计而0表示相应的变量系数需要设置为0。

1.2.2 模型诊断检查

一个快速验证模型的方法是运行下面的命令画出时间序列的诊断图。

> tsdiag(mod)

上述命令的输出在图1-1中显示。


1

标准化残差看来没有表现出波动率聚集,ACF图中的残差自相关并不显著,还有自相关的Ljung-Box检验的p值看起来很高,综上所以残差独立的原假设不能被拒绝,因此模型看来良好。

为了评估模型对样本数据的拟合良好程度,我们可以画出原始的月回报(细的黑色实线)与拟合值(宽的红色点线)的对比图形。

> plot(mod$x, lty = 1, main = "UK house prices: raw data vs.
fitted  + values", ylab = "Return in percent", xlab = "Date")
> lines(fitted(mod), lty = 2,lwd = 2, col = "red")

输出显示在图1-2中。


2

此外,我们可以计算精确性的常用度量。

> accuracy(mod)
ME   RMSE   MAE   MPE  MAPE  MASE
0.00120 1.0514  0.8059  -Inf  Inf   0.792980241

这个命令返回平均误差、均方误差、平均绝对误差、平均百分比误差、平均绝对值百分比误差和平均绝对比例误差。

1.2.3 预测

为了预测接下来3个月的月收益率(2013年4~6月),我们使用下面的   命令。

> predict(mod, n.ahead=3)
$pred
      Apr    May    Jun
2013 0.5490544 0.7367277 0.5439708
$se
     Apr   May   Jun
2013 1.051422 1.078842 1.158658

所以,我们预期在接下来的3个月中,平均房屋价格稍有增长,但标准误比较高,大约为1%。为了画出带有标准误的预测,我们可以使用下面的命令。

> plot(forecast(mod))
相关文章
|
4天前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言神经网络模型金融应用预测上证指数时间序列可视化
R语言神经网络模型金融应用预测上证指数时间序列可视化
|
4天前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化|数据分享
R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化|数据分享
|
4天前
|
存储 数据可视化
R语言软件套保期限GARCH、VAR、OLS回归模型对沪深300金融数据可视化分析
R语言软件套保期限GARCH、VAR、OLS回归模型对沪深300金融数据可视化分析
|
4天前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言逻辑回归logistic对ST股票风险建模分类分析混淆矩阵、ROC曲线可视化
R语言逻辑回归logistic对ST股票风险建模分类分析混淆矩阵、ROC曲线可视化
|
4天前
|
数据可视化
R语言机器学习方法分析二手车价格影响因素
R语言机器学习方法分析二手车价格影响因素
|
11天前
|
数据采集 人工智能 算法
R语言ARMA-GARCH模型金融产品价格实证分析黄金价格时间序列
R语言ARMA-GARCH模型金融产品价格实证分析黄金价格时间序列
|
11天前
|
机器学习/深度学习 测试技术 数据处理
【视频】R语言机器学习高维数据应用:Lasso回归和交叉验证预测房屋市场租金价格
【视频】R语言机器学习高维数据应用:Lasso回归和交叉验证预测房屋市场租金价格
|
11天前
|
机器学习/深度学习 数据可视化 算法
数据分享|R语言交互可视化分析Zillow房屋市场:arima、VAR时间序列、XGBoost、主成分分析、LASSO报告
数据分享|R语言交互可视化分析Zillow房屋市场:arima、VAR时间序列、XGBoost、主成分分析、LASSO报告
|
12天前
|
数据可视化 前端开发
R语言中实现sem进行结构方程建模和路径图可视化(下)
R语言中实现sem进行结构方程建模和路径图可视化
|
12天前
|
数据可视化
R语言中实现sem进行结构方程建模和路径图可视化(上)
R语言中实现sem进行结构方程建模和路径图可视化

热门文章

最新文章