Data Features
Own properties
Trends
趋势是时间序列在某一方向上持续运动(比如牛市时股市每天都在上涨,股票收益率持续为正;熊市时股市每天都在下跌,股票收益率持续为负)。趋势经常出现在金融时间序列中,特别是大宗商品价格;许多商品交易顾问(CTA)基金在他们的交易算法中都使用了复杂的趋势识别模型。
Seasonality
许多时间序列中包含季节变化。在金融领域,我们经常看到商品价格的季节性变化,特别是那些与生长季节或温度变化有关的商品,比如天然气。
Noise
随机噪声是时间序列中除去趋势、季节变化和自相关性之后的剩余随机扰动。由于时间序列存在不确定性,随机噪声总是夹杂在时间序列中,致使时间序列表现出某种震荡式的无规律运动。
Autocorrelation
金融时间序列的一个最重要特征是自相关性(autocorrelation),又称为序列相关性(serial correlation)。以投资品的收益率序列为例,我们会经常观察到一段时间内的收益率之间存在正相关或者负相关。此外,波动聚类(volatility clustering)也是一种序列相关性,它意味着高波动的阶段往往伴随着高波动的阶段出现、低波动的阶段往往伴随着低波动的阶段出现,这在量化投资中尤为重要。
捕捉该序列中不同间隔上的自相关性是对金融时间序列建模的核心,本质上时间序列模型即一个可以解释时间序列中的自相关性的数学模型。相关图可以清晰地刻画任何一个时间序列在不同间隔的自相关性。在评价对金融时间序列的建模是否合适时,我们首先找到原始时间序列和它的拟合序列之间的残差序列;然后只要画出这个残差序列的相关图就可以看到它是否含有任何模型未考虑的额外自相关性:
- 如果残差的相关图和随机噪声(白噪声)的相关图相似,则可以认为残差是一个随机噪声,模型此时已经很好的捕捉了原始时间序列中的自相关性;
- 如果残差的相关图体现了额外的自相关性,它们将为我们改进已有的模型提供依据,因为这些额外的自相关说明已有模型没有考虑原始时间序列在某些特定间隔上的自相关。
PS: 白噪声检验事实上也是基于传统的arma模型的,因为考虑的期数有限,所以只能考虑短期较大的相关性。但是,金融资产很多都是长期较小的相关性,这些没法用白噪声检验进行检验。
Autocorrelation test
对时间序列建模,最重要的就是挖掘出该序列中的不同间隔k的自相关性。相关图可以帮助我们判断模型是否合适。这是因为时间序列的特征中往往包括相关性和随机噪声。如果模型很好的捕捉了自相关性,那么原始时间序列与模型拟合的时间序列之间的残差应该近似的等于随机噪声(一个标准随机噪声的自相关满足对于任意不为 0 的间隔,随机噪声的自相关均为 0)。
ACF
自相关系数(Autocorrelation Function)度量的是同一事件在两个不同时期之间的相关程度(自己过去的行为对自己现在的影响)。它是找出重复模式(如被噪声掩盖的周期信号),或识别隐含在信号谐波频率中消失的基频的工具。
PACF
ACF求出滞后k自相关系数ACF(k)时,实际上得到并不是Z(t)与Z(t-k)之间单纯的相关关系。因为Z(t)同时还会受到中间k-1个随机变量Z(t-1)、Z(t-2)、……、Z(t-k+1)的影响,而这k-1个随机变量又都和z(t-k)具有相关关系,所以自相关系数里面实际掺杂了其他变量对Z(t)与Z(t-k)的影响。而PACF能单纯测度Z(t-k)对Z(t)的影响。
Note: 计算某一个要素对另一个要素的影响或相关程度时,把其他要素的影响视为常数,即暂不考虑其他要素的影响,而单独研究那两个要素之间的相互关系的密切程度时,称为偏相关。
如何判断拖尾和截尾
- 截尾:如果样本自相关系数(或偏自相关系数)在最初的d阶明显大于2倍标准差范围,而后几乎95%的样本自相关(偏自相关)系数都落在2倍标准差范围以内,而且由非零自相关(偏自相关)系数衰减为小值波动的过程非常突然,这时,通常视为自相关(偏自相关)系数截尾。截尾表明自相关肯定是存在的。
- 拖尾:如果有超过5%的样本相关系数落在2倍标准差范围以外,或者是由显著非零的相关函数衰减为小值波动的过程比较缓慢或者非常连续,这时,通常视为相关系数拖尾。拖尾表明自相关的不确定性,有可能正相关刚好被负噪声掩盖了
判断使用那种模型以及确定模型参数
- PACF截尾,ACF拖尾:使用PACF确定AR模型p值;
- ACF截尾,PACF拖尾:使用ACF确定MA模型q值;
- ACF,PACF都拖尾:使用ACF+PACF确定ARMA模型p,q值
Links:
- ARIMA模型的拖尾截尾问题
- 关于ARIMA系列模型
- 拖尾&截尾
Stationarity
平稳性是一个序列在时间推移中保持稳定不变的性质,平稳性序列的均值和方差保持不变。
e.g. 一只股票的历史序列具有平稳的性质,并且假设这个平稳性是能保持的,若现在股价是8元,可以买入这只股票,等待未来它的价格回归9元,从而获得1元的利润。
Cross properties
Correlation
相关性表明一个价格系列与另一个价格系列存在某种关系(正相关,负相关,完全不相关等),常用来构建Portfolio。
Shifting and lags
在考虑时间序列之间的correlation时,常常对lag/lead进行细分考虑,因为有的时候两个序列放同一个时间段看起来没什么关系,但是某个时间差值上会有一些有用的联系的信息。例如在建立陆地模型时(属于环境科学领域),土壤根部层和遥感的植被覆盖率的对应一般得lag1-2个月才会有显著的关系(因为植被是slow dynamics, 土壤湿度是fast memory)。
Co-integration
如果两组序列是非平稳的,但它们的线性组合可以得到一个平稳序列,那么这两组时间序列数据具有协整性。
- 严平稳(strictly stationary):严平稳是指一个序列始终具有不变的分布函数
- 弱平稳(或叫协方差平稳,covariance stationary等):弱平稳指具序列有不变的常量的描述性统计量。通常通过单位根检验(unit root test, 常见的方法是Dickey-Fuller test)来判断一个过程是否是弱平稳的。 e.g. 两组时间序列数据的差是平稳的,则我们可以根据这个差的平稳性进行投资获利:当两只股票的价差过大,根据平稳性我们预期价差会收敛,因此买入低价的股票,卖空高价的股票,等待价格回归的时候进行反向操作从而获利。
Time series decomposition
Original time series ->
- Trend (and periodicity): 趋势(和周期性),包含信息,我们去除季节性噪声,避免干扰决策
- Seasonality: 季节性噪声,几乎是每个月四个周期,也就是以星期为一个周期波动。人们对于资金的存取习惯,跟工作日与节假日有密切的关系,跟交易所允许交易的日期也有密切关系
- Residual: 残差序列,也就是原始序列中去除趋势和季节变化后的序列,这一部分是序列中的不稳定因素,具有一定的随机性,需要做进一步分析
A股·云天化价格序列分解结果
Methods
- The additive model is Y[t] = T[t] + S[t] + e[t]
- The multiplicative model is Y[t] = T[t] * S[t] * e[t]
首先通过对数据应用卷积滤波器来估计趋势,从而获得结果。 然后将趋势从序列中移除,每个时期的该去趋势序列的平均值为返回的季节性成分。 这是一个naive的分解,它有以下缺点:
- 对于前几次和最后几次观测无法估计趋势周期;
- 趋势周期估计倾向于过度平滑数据中的快速上升和下降(例如对于云天化股票,2021年7月开始的快速上升和9月的快速下降被过度平滑了 造成了residual component的尾部震荡很大)
- 假设季节性成分不变,但实际上季节性成分会随着时间而改变,如在牛市的时候交易的季节性会更短(短于1周)
- 对异常值不具备鲁棒性
因此我们应首选更高级的分解方法。
Evaluation
时间序列分解的成功与否,取决于两个因素:
- 数据序列本身是隐藏着规律的,不可预测的部分只是其中的一小部分;
- 分解的方法要合适,周期的判断要准确。
如何判断时间序列分解成功:
- 看residual部分是否是白噪声
- 看趋势和周期组件是否和原先大体一致
Time series models
Modeling process
- 通过相关图了解原始时间序列的自相关性
- 选取模型(e.g. ARMA)
- 优化模型参数 (直至残差序列接近白噪声)
在选定模型后,优化模型参数,以使其尽可能解释时间序列的自相关性。在这一步,通过对残差进行自相关性分析来判断模型是否合适(在这方面,Ljung–Box 检验是一个很好的方法,它同时检验给残差序列各间隔的自相关系数是否显著的不为 0)。如果模型不合适,一般的做法是更换模型(回到第二步),并重新执行上诉步骤。这里也可以利用AdaBoost的思想:由于残差的自相关性显著,对残差本身建立一个模型学习残差的自相关性,如果残差的残差仍能通过自相关性检验,则建立一个“残差的残差”模型进行学习…最终将这些模型集成(AdaBoost中采用加权求和)得到最终预测结果。常见的做法有ARIMA+ SVM。
- 根据模型预测结果构建交易信号
- 统计分析该交易信号的准确性
- 准确性达到标准,根据模型构建投资组合策略
- 准确性未达到标准,回到步骤二并重复上述步骤
Auto Regressive model (AR)
其中 表示当前时刻t之前的第i个观测值,w_t表示当前时刻t的随机误差,c表示漂移率。自回归模型满足平稳性的条件为:回归系数的特征方程所有p个特征根的模小于1。AR模型在数据上拟合即求解系数矩阵A:
Random Walk Model
随机游走模型其实就是一个一阶自回归模型,满足 ,方差是时间t的函数。由于特征方程为:
因此随机游走模型不满足平稳性。
Vector Auto-Regression (VAR)
自从Sims(1980)提出了向量自回归模型以来,VAR模型得到了广泛的应用。AR只用于单一时间序列自回归,而VAR将其扩展到多元时间序列。
这里 ,其它与AR模型一致,二至均是以线性关系刻画一个平稳系统。
Moving Average model (MA)
其中 表示当前时刻t之前i个时刻的随机误差,c表示漂移率(即drift,以标准普尔指数为例,它的收益率有一个微弱的但是大于零的漂移率,形成一个常年慢牛的走势)。在自回归模型中,我们将收益率看作是给定阶数p下历史收益率序列的线性组合,而滑动平均模型将收益率看作是定阶数q下历史白噪声的线性组合。
Auto Regressive Moving Average model (ARMA)
一个(p,q)阶的自回归滑动平均模型为一个p阶的自回归模型和一个q阶的滑动平均模型的线性组合:
p即历史滞后项的个数,#lag terms;q即历史噪声项的个数,#error terms。滞后 p 项表示当前observation与多少个先前的时间段高度相关,增加 p(更长的滞后)将进一步增加当前observation对先前值的依赖;而q项历史噪声表示我们观测突然趋势反转的先前时间段数量。在确定阶数p和q的时候,需要防止过拟合,方法为经典的AIC/BIC 。
由于AR 和 MA 模型都是线性模型,因此 ARMA 模型也是线性模型。AR模型用收益率的历史对未来收益率做预测,它背后的逻辑是捕捉市场参与者的有效性(或者非有效性)造成的市场的动量或者反转效应;而MA模型对噪声建模,其逻辑为突发信息对收益率将会造成冲击(比如上市公司超出预期的财报或者内部交易丑闻等);ARMA模型结合了AR、MA的优势,能够捕捉到AR, MA各自所代表的时间序列自回归性,但它和AR, MA 一样,均不是条件异方差模型,不考虑波动聚类。
Auto Regressive Integrated Moving Average model (ARIMA)
在ARMA的基础上,加入平稳性(I表示加入差分项):
d项(degree of difference)使得模型能够预测差分:d=0表示数据已经平稳,d=1 可能使得模型平稳,d=2使得模型能够捕捉exponentially growing信息。通常,d=0/1, d=2的情况很少见。在确定阶数p,d,q的时候,需要防止过拟合和保证平稳性,方法为Ljung-Box test。
Steps:
- 对序列绘图,进行 ADF 检验,观察序列是否平稳;对于非平稳时间序列要先进行 d 阶差分,转化为平稳时间序列;
- 对平稳时间序列分别求得其自相关系数(ACF)和偏自相关系数(PACF),通过对自相关图和偏自相关图的分析,得到最佳的阶数p、q;
- 根据参数p,q,d构建ARIMA模型,并进行模型检验。
Results:
- 对于训练集,拟合序列 = 周期序列 + 趋势序列(ARIMA拟合) + 残差序列(ARIMA拟合)
- 对于测试集,预测序列 = 周期序列 + 趋势序列(ARIMA预测) + 残差序列(ARIMA预测)
ARIMA(p,d,q)的变种
- SARIMA (Seasonality): 当时间序列数据具有很强的季节性(一般金融数据没有这个特性)的时候,模型更适合。
- SARIMAX (eXogenous): 增加外部因素的考虑。e.g. 温度时间序列具有很强的季节性(冬季低,夏季高),但湿度等外部因素的影响,会使得冬天的温度会升高/降低(如冬季降雨使得冬天温度更低)。如果这些因素没有出现在周期性或任何季节性行为中,我们就无法预测它们的确切值。SARIMA模型无法处理此类数据,因此这时候使用SARIMAX模型。
- ARFIMA (Fractionally): ARFIMA 关注长记忆过程(自相关函数衰减缓慢的平稳过程,通过对短记忆过程进行fractional integration 来获得),当时间序列数据具有很长的时间线,并且长期的记忆对现在的预测有帮助时(例如树木的年轮数据,金融数据一般没有这个特性),ARFIMA模型更适合。
ARCH family
大量的对股票市场的研究表明,波动性具有高度的持续性。Engle (1982)引入ARCH模型描述波动性,Bollerslev (1986)将ARCH模型推广到GARCH。ARCH 类模型能较好地描述出股票市场波动性的持续性特征。
对于股票数据,市场价格向下的变动比向上的变动会导致更高的波动性. 为了描述这种非对称性 ,Nelson引入了 EGARCH模型; Zakoian引入了TGARCH 模型 。
ARCH类模型没有考虑到金融时间随机变量偶尔会存在不连续的跳跃(jump),这些跳跃会使收益发生动态结构变化。宏观经济信息的发布,上市公司信息的披露以及政策的干预都会使股票价格发生突然变化,引起波动突然跳跃。Ceccehetti (1990) 指出,股票在不同增长状态变换下,用结构转变机制能够解释股票市场收益的许多特性(尖峰肥尾、均值回复等)。
Hamilton (1994)对美国股票市场的研究表明,ARCH类模型高估波动的持续性,对波动性的预测能力较差。为了解决ARCH类模型高估波动的持续性问题,Hamilton提出了SWARCH模型。
波动率的特征
波动聚类:波动率在一段时间上高,一段时间上低。
连续变化:波动率变化具有时间上的连续性,很少发生跳跃
平稳性:波动率不会发散到无穷
杠杆效应:波动率对价格大幅上升和大幅下降的反应是不同的 Autoregressive Conditional Heteroskedastic (ARCH)
AR, MA, ARMA, ARIMA均假设干扰项的方差为常数,然而无法解释k较大时的自相关性,这说明收益率存在长记忆性(和波动聚类有关,此时方差并不为常数)。ARCH模型(Engle, 1982)将当前一切可利用信息作为条件,并采用某种自回归形式来刻划方差的变异,对于一个时间序列而言,在不同时刻可利用的信息不同,而相应的条件方差也不同,利用ARCH模型(自回归条件异方差模型),可以刻划出时间序列的条件异方差。
模型思想
资产收益率序列的扰动 是序列不相关的,但也不是独立的,不独立性可以用其延迟值(lags)的简单二次函数来描述:
从上面模型的结构看,大的过去的平方“扰动” 会导致 具有大的条件异方差 。从而 有取绝对值较大的值的倾向。这意味着在ARCH的框架下,大的"扰动"会倾向于紧接着出现另一个大的"扰动"。因此与波动率聚集的现象相似。
Steps:
- 通过检验数据的序列相关性建立一个均值方程(即建立ARMA, ARIMA等模型)
- 对均值方程的残差 进行ARCH效应检验
经典的检验方法为使用混成检验(Ljung-Box test)检验序列 的相关性。
- 如果具有ARCH效应,则建立ARCH模型
所谓ARCH模型效应,也就是条件异方差序列的序列相关性。
- otherwise, stop
3. 检验拟合的模型,如有必要则进行改进
Generalized Autoregressive Conditional Heteroskedastic (GARCH)
虽然ARCH模型简单,但为了充分刻画收益率的波动率过程,往往需要很多参数(例如有时会用到的ARCH(6)模型)。因此Bollerslev于1986年提出了Generalized ARCH (广义自回归条件异方差)模型,主要解决收益率的波动率不恒定的问题,在定量金融中应用广泛(主要用于预测风险)。
模型思想
与AR-->ARMA类似,ARCH--> GARCH加入了后半部分用于进一步刻画波动率:
ARIMA+GARCH
ARIMA相当于预测均值的回归,其中我们假设波动率是常数c。而实际上波动率有一个波动聚类的特征,因此对于波动率,我们需要建模,模型就是GARCH。所以完整的模型为:ARIMA+GARCH,ARIMA对均值进行建模,GARCH对波动率进行建模。
Steps:
- 通过检验数据的序列相关性建立一个均值方程(即建立ARMA, ARIMA等模型)
- 对均值方程的残差 进行ARCH效应检验 经典的检验方法为使用混成检验(Ljung-Box test)检验序列 的相关性。
- 如果具有ARCH效应,则建立GARCH模型
- otherwise, stop
3. 检验拟合的模型,如有必要则进行改进
Switching ARCH (SWARCH)
Hamilton (1994)发现ARCH类模型高估波动的持续性,对波动性的预测能力较差。因此Hamilton 提出了Switching ARCH(含区制转移的ARCH),将波动性的持续性分解为不同的波动性区制。相对于常数方差模型(ARMA, ARIMA等),SWARCH 模型极大地提高了对收益序列波动的描述能力。
模型思想
是Markov switching probability, 是一个潜在随机变量,取离散值1,2,...K。假设 可以用一个Markov train描述,则当 时,表示 处于状态1,此时从表达式 可以看出变量 与常值 相乘。 也是类似,SWARCH的表达式将潜在变量状态的转移表示成乘以不同的常值因子。当推断时刻t观察到的所有的信息时, 被称为filter prob(滤波概率,即t时刻所有观测值 的联合概率分布);当推断t时刻潜在变量 所处的状态时, 被称为smoothed prob (平滑概率,即t时刻观测值 的概率分布)。
Note: 模型参数的求解采用最大似然估计
Markov Switching variance (MS var)
Kim和Nelson(1999)发现当ARCH效应不显著时, MS var(马尔可夫区制转移方差模型)较SWARCH 模型对股票市场波动的异方差性有更好的描述,拟合效果明显优于SWARCH模型。在选取不同参数初值时,MS var模型参数估计结果的稳定性也明显优于SWARCH模型。总的来说,MS模型具有结构简单,参数估计结果稳定,拟合效果好等优势。
模型思想
从表达式中可以看出,若残差序列 服从均值为0,方差为 ,自由度为v的t分布。定义一个潜在随机变量 ,取离散值1,2,...K,假设 可以用一个Markov train描述,则方差可以被表示成Markov Switching形式。
ETS (Exponential Smoothing)
ETS和ARIMA都是时间序列数据预测中广泛使用的方法。然而,这两种模型在关注的主要部分上有所不同。
- ETS模型关注数据中的趋势和季节性
- ARIMA关注数据中的自相关
通常对于周期性和趋势性数据,ARIMA模型在训练集上表现更好,ETS模型在测试集上表现更好(因为ETS就是对这些信息建模)。线性ETS是ARIMA模型的特例,但非线性ETS没有等效的ARIMA模型。所有ETS模型都是非平稳的,一些ARIMA模型是平稳的。
Links
线性ETS和ARIMA对应表
ETS模型的学习和预测原理
Unobserved Components Model (UCM)
UCM也称为结构时间序列模型 (Harvey (1989)) ,它将时间序列分解为诸如趋势、季节性、周期和回归效应等组分。
模型中的每个组件都捕获了序列动力学的一些重要特征。模型中的组件均有其概率模型:
- Trend
趋势定义为在没有任何其他影响的情况下,序列在一段时间内增加或减少或保持不变的自然趋势。
UCM 可以通过两种方式模拟趋势;第一个是随机游走模型,暗示该趋势在该系列的时间段内大致保持不变,第二个是具有向上或向下斜率的局部线性趋势。
- Seasonality
季节项定义为(没有误差项):在一个完整周期内和为零的变量。包含误差项允许季节性影响随时间变化。如果季节性影响是随机的,那么还有一个额外的参数需要通过 MLE进行估计。
当存在受季节性因素影响的一致变化模式时,就存在季节项。
- Stochastic seasonality
季节性效应的总和具有零均值
- Deterministic Dummy Variable Seasonal
季节性效应的总和具有零均值、零方差:
- Cycle
周期性成分旨在捕捉比季节性成分捕捉到的时间范围长得多的周期性影响。例如,在经济学中,周期性术语通常旨在捕捉商业周期,通常预计会有“1.5 年到 12 年”的周期。
当数据表现出非固定周期的上升和下降时,时间序列数据中存在周期性。这些波动的持续时间通常至少为 2 年。
参数 (循环的频率)是由 MLE 估计的附加参数。如果周期性影响是随机的,则需要估计另一个参数(误差项的方差——请注意,这里的两个误差项具有相同而且独立的方差)。
- Stochastic cyclical model
Stochastic cyclical model可以在不引入大量参数的情况下捕捉经济和商业时间序列中相当复杂的周期性模式。若 ,则 ,此时为平稳分布;若 ,则序列是非平稳的分布。
- Deterministic cyclical model
若 ,则随机周期性分布模型变为确定性周期分布模型。然而几乎没有经济和商业时间序列数据符合Deterministic cyclical model。
- Explanatory --> Regression Effects
- Irregular
干扰项大多数情况下为一个高斯噪声( ),但有时也允许有一定的自回归性( )
Dynamic Factor Models (DFM)
动态因子模型是一种多元时间序列模型,它认为内部观测变量是外部协变量和unobserved components(具有向量自回归结构)的线性函数。unobserved components可能是外部协变量的函数,irregular可能是自相关的。表达式如下:
从表达式可以看出,DFM是一种降维的估计方法。目前经济数据相对繁杂,时间序列众多,而序列长度则相对不足,容易出现估计误差,而通过动态因子模型,在多个高维时间序列数据中提取出相对较少的动态公因子f_t,进而可以利用f_t的变化情况对经济序列X_t进行预测。作用:充分利用现有数据,防止出现较大统计误差。
Research history
- 利用卡尔曼滤波进行时域极大似然估计(time-domain maximum likelihood via the Kalman filter)。缺点:对估计参数数目有限制
- 利用非参平均法估计(nonparametric averaging methods)
- 将1, 2有机结合起来形成混合主成分和状态空间方法(hybrid principal components and state space methods)。
写在最后的话
作为ML领域过来的人,对时间序列分析的第一印象就是机器学习的特殊版本。在经过统计、金融专业的朋友多次的熏陶后,对时间序列分析有了不一样的理解。自身对这块很感兴趣,也花了不少时间在总结,整理上。如果觉得对你有帮助,给个赞呀。 |
|