共计 5670 个字符,预计需要花费 15 分钟才能阅读完成。
全文链接:http://tecdat.cn/?p=22458
最近咱们被客户要求撰写对于动静模型均匀的钻研报告,包含一些图形和统计输入。
本文提供了一个经济案例。着重于原油市场的例子。简要地提供了在经济学中应用模型均匀和贝叶斯办法的论据,应用了动静模型平均法(DMA),并与 ARIMA、TVP 等办法进行比拟
简介
心愿对经济和金融畛域的从业人员和钻研人员有用。
动机
事实上,DMA 将计量经济学建模的几个特点联合在一起。首先,最终预测是通过模型平均化从几个回归模型中产生的。其次,该办法是贝叶斯办法,也就是说,概率是以置信水平的形式解释的。例如,对工夫 t 的 DMA 预测只基于截至工夫 t - 1 的数据。此外,新数据的取得间接导致参数的更新。因而,在 DMA 中,回归系数和赋予模型的权重都随工夫变动。
贝叶斯办法不是古代计量经济学的支流。然而,这些办法最近正取得越来越多的关注。这其中有各种起因。首先,咱们能够将其与钻研中日益增多的数据量分割起来。因为技术提高,人们通常面临着许多潜在的解释变量的状况。只管大多数变量可能并不重要,但研究者通常不晓得哪些变量应该被剔除。
当然,到某种程度上依然能够应用惯例办法。但因为不足足够的信息,通常无奈对参数进行准确预计。最简略的例子是当解释变量的数量大于工夫序列中的察看值的数量时。例如,即便在线性回归的状况下,规范的一般最小二乘法预计也会呈现一个奇怪矩阵,导致不可能取其倒数。在贝叶斯框架下,依然能够得出一个有意义的公式。贝叶斯办法仿佛也能更好地解决适度参数化和适度拟合问题。
在最近的预测趋势中能够发现各种办法。以原油价格为例,预测办法通常能够分为工夫序列模型、构造模型和其余一些办法,如机器学习、神经网络等。一般来说,工夫序列模型的重点是对稳定的建模,而不是对现货价格的建模。构造模型顾名思义包含因果关系,但它们通常在某些期间有很好的预测能力,而在其余期间则很差。另外,基于小波合成、神经网络等的其余办法通常疏忽了其余因素的影响,只关注繁多工夫序列。这些使得 DMA 成为从业者的一个乏味的办法。
DMA 的下一个方面是,它容许回归系数是随工夫变动的。事实上,在经济呈现迟缓和疾速(结构性中断)变动的状况下,计量经济学模型的这种属性是十分可取的。当然,这样的办法也存在于传统的方法论中,例如,递归或滚动窗口回归。
实践框架
咱们将简短地形容 fDMA 的实践框架。特地是,动静模型平均化(DMA)、动静模型抉择(DMS)、中位概率模型。
动静模型均匀(DMA)
DMA 在 [1] 的原始论文中失去了十分具体的介绍。然而,上面是一个简短的阐述,对于了解 fDMA 中每个函数的作用是必要的。
假如 yt 是预测的工夫序列(因变量),让 x(k)t 是第 k 个回归模型中独立变量的列向量。例如,有 10 个潜在的原油价格驱动因素。如果它们中的每一个都由一个适合的工夫序列来示意,那么就能够构建 2^10 个可能的线性回归模型。每个变量都能够包含或不包含在一个模型中。因而,每个变量有两种抉择,形成了 2^10 种可能性。这包含一个只有常数的模型。因而,一般来说,有潜在的有用的 m 个独立变量,最多能够构建 K =2^m 个模型。换句话说,状态空间模型是由以下几个局部组成的
其中 k = 1, … .,K,θt 是回归系数的列向量。假如误差遵循正态分布,即 e(k)t∼N(0,V(k)t)和 δ(k)t∼N(0,W(k)t)。
在此请留神,有 m 个潜在的解释变量,2m 是构建模型的下限。然而,本文形容的所有办法(如果没有特地阐明的话)都实用于这些 2m 模型的任何子集,即 K≤2m。
动静模型抉择(DMS)
动静模型抉择(DMS)是基于雷同的理念,与 DMA 的理念雷同。惟一的区别是,在 DMA 中进行的是模型平均化,而在 DMS 中是模型抉择。换句话说,对于每个期间 t,抉择具备最高后验概率的模型。这意味着,只需将公式批改为
其中 HT 示意 k 模型。
一个例子:原油市场
咱们举一个原油市场的例子。据此能够说,在哪些工夫序列能够作为预测现货原油价格的有用解释变量方面,存在着不确定性。
xts 对象 crudeoil 蕴含来自原油市场的选定数据,即。
-WTI 代表 WTI(西德克萨斯中质油)现货价格,以每桶计。
- MSCI 代表 MSCI 世界指数。
- TB3MS 代表 3 个月国库券二级市场利率(%)。
- CSP 代表粗钢产量,单位是千吨(能够作为掂量寰球经济流动的一种形式)。
- TWEXM 代表贸易加权的指数(1973 年 3 月 =100)。
- PROD 代表原油产品供应量,单位为千桶。
- CONS 代表经合组织的原油产品总消费量。
- VXO 代表规范普尔 100 指数的隐含稳定率(即股票市场稳定率)。
这些数据的频率为每月一次。它们涵盖了 1990 年 1 月至 2016 年 12 月的期间。
xts 对象的趋势蕴含来自谷歌的对于选定搜索词的互联网数量的数据。
- stock_markets 代表 Google Trends 的 “ 股票市场 ”。
- interest_rate 代表 Google Trends 的 “ 利率 ”。
- economic_activity 示意 “ 经济流动 “ 的 Google 趋势。
- exchange_rate 代表 “ 汇率 “ 的谷歌趋势。
- oil_production 示意 “ 石油生产 “ 的 Google 趋势。
- oil_consumption 代表 “ 石油生产 “ 的谷歌趋势。
- market_stress 代表 Google Trends 的 “ 市场压力 ”。
这些数据也是以月度为频率的。它们涵盖了 2004 年 1 月至 2016 年 12 月这段时间,因为谷歌趋势没有涵盖更早的期间。从经济角度来看,思考这些工夫序列的对数差分是正当的
R> drivers <- (lag(crudeoil[ , -1], k = 1))[-1,]
R> l.wti <- (diff(log(wti)))[-1,]
R> l.drivers <- (diff(log(driv)))[-1,]
R> archtest(ld.wti)
R> descstat((ld))
除了 PROD 的一些问题,所有的工夫序列都能够在 5% 的显著性程度上被认为是安稳的。对于 WTI 差分也存在 ARCH 效应。因而,在 DMA 中思考指数加权挪动均匀(EWMA)预计方差仿佛是正当的。此外,还能够测试一些忘记因子。依据倡议,对月度工夫序列采取 κ =0.97。所有的方差都小于 1。因而,仿佛没有必要对工夫序列进行从新标准化。在 DMA 的预计中,采取 initvar= 1 仿佛也足够了。
DMA(y = lwti, x = ldrivers,
+ alpha = ra, lambda = rl,
meth = "ewma" )
依据最小化 RMSE,最佳 DMA 模型是 α =0.99 和 λ =0.97 的模型。因而,对这个模型稍作钻研。
plot(x$y, type="l", ylim=c(min(x$y,x$y.hat),max(x$y,x$y.hat)), xlab="", ylab="", main="理论值和预测值", axes = F)
比拟图 1 和图 2 能够看出,在市场的动荡期间,DMA 迅速适应,对有更多变量的模型赋予更高的权重。事实上,这与图 3 统一。在这一时期,所有解释变量的绝对变量重要性都在回升。咱们还能够看到,自 2007 年以来,发达的股票市场的作用有所增加。然而,在 2013 年之后,这种作用变得越来越小;而其余变量的作用开始减少。这一点非常明显,特地是对于汇率。
图 3 应与图 4 能够看出。尽管,绝对变量的重要性可能很高,但这个变量的回归系数的预期值可能在 0 左右。事实上,高的绝对变量重要性同时察看到 MSCI、CSP 和 TWEXM 的预期回归系数不为零。所以,这个剖析当初证实了这三个因素在 2007 年和 2013 年之间对原油价格起到了重要的预测作用。自 2013 年以来,股票市场的作用缩小了,被汇率所取代。在 2013 年前后,最重要的作用是由发达股票市场施展的。
图 1
for (i in 1:7)
{inc[i+1] <- floor(i * nrow( post.incl)/7)
}
plot(exp.var, type="l" ylim=c(0,ncol(x$models)) main="变量数量期望值", axes = F)
图 2
for (i in 1:(ncol( post.incl)-1))
plot(post.incl[,i+1], type="l", col=col[i+1], ylim=c(0,1), xlab="", ylab="", main="后蕴含概率", axes = F)
图 3
点击题目查阅往期内容
[](http://mp.weixin.qq.com/s?__biz=MzA4MDUzOTIxNA==&mid=26538304…)R 语言:EM 算法和高斯混合模型的实现
左右滑动查看更多
01
02
03
04
for (i in 1:(ncol( exp.coef.)))
{plot( exp.coef.[,i], type="l", col=col[i] )
}
plot(index( exp.coef.[,i]), rep(0,length(x$exp.coef.[,i])
xaxt='n', xlab="", ylab="", main="系数"
图 4
最初,能够狐疑有一些模型在某种意义上优于其余模型。换句话说,模型的抉择会比模型的平均数更有劣势。这能够通过剖析 DMS 和中位概率模型来查看。然而,从图 5 能够看出,没有一个模型的后验概率超过 0.5。其次,2007 年之后和 2013 年之后,没有一个模型仿佛更有劣势。
也能够质疑所利用的办法对不同的参数设置是否持重。例如,如果其余忘记因子 α 和 λ 会导致不同的论断。图 6 展现了来自对象 g 的所有模型的所有解释变量的绝对变量重要性,即 α ={1, 0.99, 0.98, 0.97, 0.96, 0.95}和 λ ={1, 0.99, 0.98, 0.97, 0.96, 0.95}的所有组合。确切的数值不同,但图形在工夫上遵循的门路或多或少是雷同的。这意味着给定解释变量的作用递增,对忘记因素设置不同的值是持重的。
for (i in 1:(ncol(x$post.mod)-1))
{plot(x$post.mod[,i], type="l"
}
plot(x$post.mod[,i+1], type="l" ylab="", main=" 后验模型概率 ", axes = F)
图 5
图 6
最初,能够将选定的模型与一些代替预测进行比拟。
R> altm
所选的 DMA 模型的 RMSE 比两个基准预测要小,但与 Auto ARIMA 相当。MAE 的状况也相似。然而,Auto ARIMA 的 MAE 比选定的 DMA 模型小。另一方面,选定的 DMA 模型在所有竞争性预测中具备最高的命中率。更准确的比拟能够通过 Diebold-Mariano 测验来进行。
DieMtest(y = (lwti))
假如 5% 的显著性程度,能够回绝简略预测的原假如,也就是预测的准确性低于所选的 DMA 模型。换句话说,所选模型在某种意义上超过了简略预测。
参考文献
- Raftery, A.; Kárný, M.; Ettler, P. Online Prediction under Model Uncertainty via Dynamic Model Averaging: Application to a Cold Rolling Mill. Technometrics 2010, 52, 52–66. [CrossRef] [PubMed]
- Barbieri, M.; Berger, J. Optimal Predictive Model Selection. Ann. Stat. 2004, 32, 870–897. [CrossRef]
本文摘选 《 R 语言经济学:动静模型均匀 (DMA)、动静模型抉择(DMS) 预测原油工夫序列价格 》,点击“ 浏览原文”获取全文残缺代码、数据资料。
点击题目查阅往期内容
时变马尔可夫区制转换 MRS 自回归模型剖析经济工夫序列
R 语言多维数据档次聚类散点图矩阵、配对图、平行坐标图、树状图可视化城市宏观经济指标数据
【数据分享】工人支出工资及其社会经济影响因素数据
R 语言从经济工夫序列中用 HP 滤波器,小波滤波和教训模态合成等提取周期性成分剖析
R 语言计量经济学:工具变量法 (两阶段最小二乘法 2SLS) 线性模型剖析人均食品生产工夫序列数据和回归诊断
R 语言计量经济学:虚构变量 (哑变量) 在线性回归模型中的利用
PYTHON 用时变马尔可夫区制转换(MRS)自回归模型剖析经济工夫序列
R 语言应用 ARIMAX 预测失业率经济工夫序列数据
【视频】Python 和 R 语言应用指数加权均匀 (EWMA),ARIMA 自回归挪动均匀模型预测工夫序列
R 语言工夫序列 GARCH 模型剖析股市稳定率
R 语言时变向量自回归(TV-VAR)模型剖析工夫序列和可视化
Python 和 R 用 EWMA,ARIMA 模型预测工夫序列
R 语言用 LASSO,adaptive LASSO 预测通货膨胀工夫序列
Python 中的 ARIMA 模型、SARIMA 模型和 SARIMAX 模型对工夫序列预测
R 语言 arima,向量自回归(VAR),周期自回归(PAR) 模型剖析温度工夫序列
Python 用 ARIMA 和 SARIMA 模型预测销量工夫序列数据
R 语言线性回归和工夫序列剖析北京房价影响因素可视化案例
R 语言应用 ARIMA 模型预测股票收益工夫序列
R 语言散布滞后线性和非线性模型(DLMs 和 DLNMs)剖析工夫序列数据
R 语言狭义相加模型 (GAMs)剖析预测 CO2 工夫序列数据
Python | ARIMA 工夫序列模型预测航空公司的乘客数量
R 语言 ARIMA,SARIMA 预测道路交通流量工夫序列剖析: 季节性、周期性
ARIMA 模型预测 CO2 浓度工夫序列 -python 实现
R 语言用多元 ARMA,GARCH ,EWMA, ETS, 随机稳定率 SV 模型对金融工夫序列数据建模