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

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中显示。

标准化残差看来没有表现出波动率聚集,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中。

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

> 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))
时间: 2024-11-10 00:17:04

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

《量化金融R语言初级教程》一导读

前 言 量化金融R语言初级教程 本书将向你讲述如何使用统计计算语言R和量化金融知识来解决真实世界的量化金融问题.本书包括了丰富的主题,从时间序列分析到金融网络.每章都会简要地介绍理论知识并使用R来解决一个具体问题. 本书内容 第1章"时间序列分析"(Michael Puhle),介绍了用R处理时间序列数据.并且,你会学到如何建模和预测房价,使用协整改善对冲比,以及对波动率建模. 第2章"投资组合优化"(Péter Csóka,Ferenc Illés,Gergely

《量化金融R语言初级教程》一第1章 时间序列分析

第1章 时间序列分析 量化金融R语言初级教程时间序列分析研究的是按时间顺序收集的数据.相邻的观测数据通常相互依赖.因此,时间序列分析的技术需要处理这种相依性. 本章的目标是通过一些特定应用来介绍一些常用建模技术.我们将看到如何使用R来解决现实中的这些问题.首先,我们考虑如何在R中存储和处理时间序列.接着,我们处理线性时间序列分析,并展现如何将它用于建模和预测房屋价格.其次,我们通过考虑长期趋势,使用协整的概念来改进基本的最小方差对冲比.最后,本章讲述如何将波动率模型运用于风险管理.

《量化金融R语言初级教程》一第2章 投资组合优化

第2章 投资组合优化 量化金融R语言初级教程到现在为止,我们已经熟悉了R语言的基础.我们知道如何去分析数据.调用它的内置函数并把它们运用到我们选择的时间序列分析问题上.在本章中,我们既运用这些知识,又通过一种重要的实践应用来扩展这种知识,即投资组合分析,换句话说也叫证券选择.这一节涵盖了投资组合优化背后的思想:数学模型和理论求解.为了提高编程技巧,我们使用真实数据解决一个现实中的问题,并逐行实施算法.同时,我们也在相同的数据集上使用预先写好的R包. 想象我们生活在一个热带岛屿,只有100美元可以

《量化金融R语言初级教程》一1.5 小结

1.5 小结 在本章中,我们运用R分析了时间序列选择的一些问题.本章涵盖了时间序列数据的不同表达方法,使用ARMA模型预测房屋价格,使用协整关系改进基本的最小方差对冲比,以及使用GARCH模型进行风险管理.在下一章,你将学习如何使用R来构建最优投资组合.

《量化金融R语言初级教程》一2.3 使用真实数据

2.3 使用真实数据 投资组合的最优化完全整合在随后我们会讨论的多个R包中,知道这一点非常有用.但是,跑步之前最好先会走路.因此,我们从一个简单的自制R函数开始,我们把它一行行地在下面列出来. minvariance <- function(assets, mu = 0.005) { return <- log(tail(assets, -1) / head(assets, -1)) Q <- rbind(cov(return), rep(1, ncol(assets)), colMea

《量化金融R语言初级教程》一2.6 如果方差不够用

2.6 如果方差不够用 方差可以很容易地度量风险,但也存在一些缺陷.例如,在使用方差时,收益率中的正向变化也会被视为风险的增加.因此,人们开发了一些更复杂的风险度量方法. 比如下面的这个简例,主要关于多种方法运用于之前描述过的IT_return资产,它的目的是快速回顾fPortfolio包提供的选择. > Spec <- portfolioSpec() > setSolver(Spec) <- "solveRshortExact" > setTargetR

《量化金融R语言初级教程》一2.4 切线组合和资本市场线

2.4 切线组合和资本市场线 当组合中加入一个无风险资产R,会发生什么?如果σR=0并且X是任意的一个风险投资组合,那么Var(αR+(1−α)X=(1−α)2Var(X),并且显然也有E(αR+(1−α)X)= αE(R)+(1−α)E(X).这意味着这些组合在均值-标准差平面上形成了一条直线.位于这条直线上的任何投资组合都可以通过投资于R和X来得到.很明显,X的最佳选择位于这条直线与有效边界的切点.这个切点叫作市场组合或者切点组合,而风险资产的有效前沿在这个点的切线叫作资本市场线(Capit

《量化金融R语言初级教程》一2.5 协方差矩阵中的噪声

2.5 协方差矩阵中的噪声 当我们优化投资组合时,其实我们并没有真实的协方差矩阵和预期收益率向量(它们是均值-方差模型的输入量).我们使用观测来估计它们,并得到Q.r,而模型的输出仍然是随机变量. 如果不深入细节,我们可以说模型中会产生惊人的巨大不确定性.尽管有强大数定律的保证,最优的投资组合权重会不时地在±200%之间变动.幸运的是,如果我们掌握有几年的数据(日收益率),测量风险的相对误差就仅为20%-25%.

《量化金融R语言初级教程》一2.2 解的概念

2.2 解的概念 在过去的50年中,人们开发了许多表现良好的伟大算法用于数值优化,尤其用于二次函数的情形.正如我们在上一节中看到的,我们只有二次函数和约束.所以这些方法(它们也在R中实现)可以用于最糟的情形(如果没有任何更好的情形). 然而,数值优化的细节讨论超出了本书范围.幸运的是,在线性约束和二次函数约束的特殊情况下,这些方法不是并不必要.我们可以使用18世纪提出的拉格朗日定理. 那么,这里存在系数λ1, λ2, -, λm使得f'(a)+sum{{{lambda }_{i}}}g'(a)=

《量化金融R语言初级教程》一2.1 均方差模型

2.1 均方差模型 马科维茨[Markowitz,H.M.(March 1952)]提出的均方差模型,其实是冰 淇淋/雨伞交易模型在高维上的体现.为了得到数学公式,我们需要一些相关的定义. 定义的解释如下. 资产Xi意味着一个方差有限的随机变量. 投资组合意味着资产的组合:P = sum {{w_i}{X_i}} ,其中sum {{w_i}} = woverrightarrow 1 并且overrightarrow 1 = (1,;1, cdots, 1) .这个组合可以是仿射的或者凸的.在凸组