① 2020-03-28 线性时间序列模型
课程采用模蠢Ruey S. Tsay的《金融数据分析导论:基于R语言》(Tsay 2013 ) (An Introction to Analysis of Financial Data with R)作为主要教材之一。
时间序列的线性模型,包括:
股价序列呈现缓慢的、非或尺单调的上升趋势, 局部又有短暂的波动。
可口可乐公司每季度发布的每股盈利数据。 读入:
时间序列图:
序列仍体现出缓慢的、非单调的上升趋势,又有明显的每年的周期变化(称为季节性), 还有短期的波动。
下面用基本R的 plot() 作图并用不同颜色标出不同季节。
现在可以看出,每年一般冬季和春季最低, 夏季最高,秋季介于夏季和冬季之间。
收益率在0上下波动,除了个别时候基本在某个波动范围之内。
用xts包的 plot() 函数作图:
聚焦到2004年的数据:
红色是6月期国债利率, 黑色是3月期国债。 一般6月期高, 但是有些时期3月期超过了6月期,如1980年:
如图标普500月收益率那样的收益率数据基本呈现出在一个水平线(一般是0)上下波动, 且波动范围基本不变。 这样的表现是时间序列“弱平稳序列”的表现。
弱平稳需要一阶矩和二阶矩有限。某些分布是没有有限的二阶矩的,比如柯西分布, 这样的分布就不适用传统的线性时间序列理论。
稍后给出弱平稳的理论定义。
如图2可口可乐季度盈利这样的价格序列则呈现出水平的上下起伏, 如果分成几段平均的话, 各段的平均值差距较大。 这体现出非平稳的特性。
以下为一堆公式推导,具体查看: http://www.math.pku.e.cn/teachers/lidf/course/fts/ftsnotes/html/_ftsnotes/fts-tslin.html#fig:tslin-intro-sp02
时间序列
自协方差函数
弱平稳序列
图6 是IBM股票月度简单收益率对标普500收益率的散点图。 从图中看出, 两者有明显的正向相关关系。
对于不独立的样本, 比如时间序列样本, 也可以计算相关系数, 其估计合理性需要一些模型假设。
对于联合分布非正态的情况, 有时相关系数不能很好地反映X和Y的正向或者负向的相关。 斯皮尔曼(Spearman)相关系数是计算X的样本的秩(名次)与Y的样本的秩之间的相关系数, 也称为Spearman rank correlation。
另一种常用的非参数相关系数是肯德尔tau(Kendall’s )系数, 反映了一致数对和非一致数对之间的差别。
即两个观测的分量次序一致的概率减去分量次序相反的概率。 一致的概率越大,说明两个的正向相关性越强。
对IBM收益率与标普收益率数据计算这三种相关系数:
自相关函旦团陪数 (Autocorrelation function, ACF)参见 (何书元 2003 ) P.131 §4.2的例2.1。 原始文献: MAURICE STEVENSON BARTLETT, On the Theoretical Specification and Sampling Properties of Auto-Correlated Time Series, Journal of the Royal Statistical Society (Supplement) 8 (1946), pp. 24-41.
在基本R软件中, acf(x) 可以估计时间序列 x 的自相关函数并对其前面若干项画图。
例:CRSP的第10分位组合的月对数收益率, 1967-1到2009-12。 第10分位组合是NYSE、AMEX、NASDAQ市值最小的10%股票组成的投资组合, 每年都重新调整。
图6: CRSP第10分位组合月对数收益率
用 acf() 作时间序列的自相关函数图:
acf() 的返回值是一个列表,其中 lag 相当于, acf 相当于。 用 plot=FALSE 取消默认的图形输出。
有研究者认为小市值股票倾向于在每年的一月份有正的收益率。
为此,用对的检验来验证。 如果一月份有取正值的倾向, 则相隔12个月的值会有正相关。
计算统计量的值,检验p值:
值小于0.05, 这个检验的结果支持一月份效应的存在性。
Ljung和Box(Ljung and Box 1978 )对Box和Pierce(Box and Pierce 1970 )提出了混成统计量(Portmanteau statistic)
检验方法进行了改进
在R软件中, Box.test(x, type="Ljung-Box") 执行Ljung-Box白噪声检验。 Box.test(x, type="Box-Pierce") 执行Box-Pierce混成检验。 用 fitdf= 指定要减去的自由度个数。
检验IBM股票月收益率是否白噪声。
考虑IBM股票从1926-01到2011-09的月度收益率数据, 简单收益率和对数收益率分别考虑。
读入数据:
读入的是简单收益率的月度数据。 作ACF图:
从ACF来看月度简单收益率是白噪声。
作Ljung-Box白噪声检验, 分别取和:
在0.05水平下均不拒绝零假设, 支持IBM月度简单收益率是白噪声的零假设。
从简单收益率计算对数收益率, 并进行LB白噪声检验:
在0.05水平下不拒绝零假设。
Box-Pierce检验和Ljung-Box检验受到取值的影响, 建议采用, 且序列为季度、月度这样的周期序列时, 应取为周期的整数倍。
对CRSP最低10分位的资产组合的月简单收益率作白噪声检验。
此组合的收益率序列的ACF:
针对和作Ljung-Box白噪声检验:
在0.05水平下均拒绝零假设, 认为CRSP最低10分位的投资组合的月度简单收益率不是白噪声。
有效市场假设认为收益率是不可预测的, 也就不会有非零的自相关。 但是,股价的决定方式和指数收益率的计算方式等可能会导致在观测到的收益率序列中有自相关性。 高频金融数据中很常见自相关性。
常见的白噪声检验还有TREVOR S. BREUSCH (1978) 和LESLIE G. GODFREY (1978)提出的拉格朗日乘子法检验(LM检验)。 零假设为白噪声, 对立假设为AR、MA或者ARMA。 参见:
设是独立同分布的二阶矩有限的随机变量, 称为独立同分布白噪声(white noise)。 最常用的白噪声一般假设均值为零。 如果独立同分布, 称为高斯(Gaussian)白噪声或正态白噪声。
白噪声序列的自相关函数为零(除外)。
实际应用中如果样本自相关函数近似为零 (ACF图中都位于控制线之内或基本不超出控制线), 则可认为该序列是白噪声的样本。
如:IBM月度收益率可以认为是白噪声(见例 3.3 ); CRSP最低10分位投资组合月度收益率不是白噪声(见例 3.4 )。
不是所有的弱平稳时间序列都有这样的性质。 非平稳序列更是不需要满足这些性质。
公式就不赘述
如果从时间序列的一条轨道就可以推断出它的所有有限维分布, 就称其为严平稳遍历的。 这里不给出遍历性的严格定义, 仅给出一些严平稳遍历的充分条件。 可以证明, 宽平稳的正态时间序列是严平稳遍历的, 由零均值独立同分布白噪声产生的线性序列是严平稳遍历的。
Tsay, Ruey S. 2013. 金融数据分析导论:基于R语言 . 机械工业出版社.
何书元. 2003. 应用时间序列分析 . 北京大学出版社.
Box, GEP, and D. Pierce. 1970. “Distribution of Resial Autocorelations in Autoregressive-Integrated Moving Average Time Series Models.” J. of American Stat. Assoc. 65: 1509–26.
Ljung, G., and GEP Box. 1978. “On a Measure of Lack of Fit in Time Series Models.” Biometrika 66: 67–72.
参考学习资料: http://www.math.pku.e.cn/teachers/lidf/course/fts/ftsnotes/html/_ftsnotes/fts-tslin.html#fig:tslin-intro-sp02
② 时间序列分析
在R中生成时间序列的前提是我们将分析对象转成时间序列函数对象,包括观测值、起始时间、种植时间、及周期(月、季度、年)的结构。这些都能通过ts( )函数实现。
R语言中,对时间序列数据进行分析处理时,使用差分函数要注意:差分函数diff()不带参数名的参数指滞后阶数,也就是与滞后第几阶的数据进行差分。如果要指定差分的阶数,则一定要使用带名称的参数:diff=2。
例如: sample表示样本数据。
1、diff(sample,2)表示是对滞后2阶的数据进行差分,一阶差分,等同于: diff(sample,lag=2)
2、diff(sample,diff=2)才是表示二阶差分
意:在函数中尽量避免使用没有命名的参数。在《时间序列分析及应用-R语言(第2版)》中,P315,描述到: 我们得到的教训就是,除非完全了解相关参数的位置,否则使用未命名参数是非常危险的。
截尾是指时间序粗念早列的自相关函数(ACF)或偏自相关函数(PACF)在高辩某阶后均为0的性质(比如AR的PACF);
拖尾是ACF或PACF并不在某阶后均为0的性质(比如AR的ACF)。
拖尾 :始终有非零取值,不会在k大于某个常数后就恒等于零(或在0附近随机波动)
截尾 :在大于某个常数k后快速趋于0为k阶截尾
AR模型:自相关系数拖尾,偏自相关系数截尾;
MA模型:自相关系数截尾,偏自相关函数拖尾;
ARMA模型:自相关函数和偏自相关函数均拖尾。
根据输出结果, 自相关函数图拖尾,偏自岩雀相关函数图截尾 ,且n从2或3开始控制在置信区间之内,因而可判定为AR(2)模型或者AR(3)模型。
③ 如何用R 语言 建立 股票价格的时间序列
在下想用R语言对股票价格进行时间序列分析。
问题出在第一步,如何将股票价格转换为时间序列。
我想用的语句是 pri <- ts (data, start=(), frequency= )
但是我不知道frequency 项该如何填?
因为股票的交易日是一周五天的。 那么这个frequency 该如何设置呢?
我知道通常frequency= 12 为月度数据,frequency= 4 为季度数据,frequency= 1 为年度数据 但日数据怎么写我就不知道了
初学R语言,还望各位大侠多多帮助。
④ 金融时间序列分析用R语言画简单收益率和对数收益率的ACF图!
acf(int[,2], lag.max = 15,type = "correlation", plot = TRUE,main='int monthly
acf(int.l[,2], lag.max = 15,type = "correlation", plot = TRUE,main='int monthly
log return')
Box.test(int[,2], lag = 5, type = "Ljung-Box")
Box.test(int[,2], lag = 10, type = "Ljung-Box")
Box.test(int.l[,2], lag = 5, type = "Ljung-Box")
Box.test(int.l[,2], lag = 10, type = "Ljung-Box")
运行结果有以下错误,怎么办?
> int <- read.table("d-intc7208.txt", head=T)
错误于file(file, "rt") : 无法打开链结
此外: 警告信息:
In file(file, "rt") :
无法打开文件'd-intc7208.txt': No such file or directory
+ acf(int.l[,2], lag.max = 15,type = "correlation", plot = TRUE,main='int monthly
错误: 意外的符号 in:
"
acf(int.l[,2], lag.max = 15,type = "correlation", plot = TRUE,main='int"
> log return')
错误: 意外的符号 in "log return"
⑤ R语言做时间序列分析时,summary给出的结果都是什么意思啊
这个段戚饥是自动适仔尘应参数估计的结果。
模型握返估计为ARIMA(4,0,2),即ARMA(4,2)
系数为:
ar1 ar2 ar3 ar4 ma1 ma2
-0.5505 0.2316 0.0880 -0.4325 -0.1944 -0.5977
s.e. 0.1657 0.1428 0.1402 0.1270 0.1766 0.1732
s.e.是系数的标准差,系数显着性要自己算,|系数/se| > 1.96 即 95%的置信度
sigma^2 estimated 估计值方差
log likelihood 对数似然值
(这个不用解释了吧)
AIC=709.13 AICc=710.73 BIC=725.63
再就是下面一堆误差计算
ME Mean Error
RMSE Root Mean Squared Error
MAE Mean Absolute Error
MPE Mean Percentage Error
MAPE Mean Absolute Percentage
MASE Mean Absolute Scaled Error
⑥ 90-预测分析-R语言实现-时间序列1
时间序列(time series)是随机变量Y 1 、Y 2 、……Y t 的一个序列,它是由等距的时间点序列索引的。
一个时间序列的均值函数就是该时间序列在某个时间索引t上的期望值。一般情况下,某个时间序列在某个时间索引t 1 的均值并不等于该时间序列在另一个不同的时间索引t 2 的均值。
自协方差函数及自相关函数是衡量构成时间序列的随机变量在不同时间点上相互线性依赖性的两个重要函数。自相关函数通常缩略为ACF函数。ACF函数是对称的,但是无单位,其绝对值被数值1约束,即当两个时间序列索引之间的自相关度是1或-1,就代表两者之间存在完全线性依赖或相关,而当相关度是0时,就代表完全线性无关。
平稳性:实质描述的是一个时间序列的概率表现不会随着时间的流逝而改变。常用的平稳性的性质有严格平稳和弱平稳两个版本。tseries包的adf.test()函数可以检验时间序列的平稳性,返回的p值小于0.05则表示是平稳的。
白噪声是一隐正告个平稳过程,因为它的均值和方差都是常数。
随机漫步的均值是常数(不带漂清空移的随机漫步),但它的方差是随着时灶明间的变化而不同的,因此它是不平稳的。
自回归模型(Autoregressive models, AR)来源于要让一个简单模型根据过去有限窗口时间里的最近值来解释某个时间序列当前值的想法。
自回归条件异方差模型:ARIMA模型的关键前提条件是,虽然序列本身是非平稳的,但是我们可以运用某个变换来获得一个平稳的序列。像这样为非平稳时间序列构建模型的方法之一是作出一个假设,假设该模型非平稳的原因是该模型的方差会以一种可预见的方式随时间变化,这样就可以把方差随时间的变化建模为一个自回归过程,这种模型被称为自回归条件异方差模型(ARCH)。加入了移动平均方差成分的ARCH模型称为广义自回归条件异方差模型(GARCH)。
任务:预测强烈地震
数据集:2000-2008年期间在希腊发生的强度大于里氏4.0级地震的时间序列。
不存在缺失值。
将经度和纬度之外的变量转换为数值型。
从图上可以看出,数据在30次左右波动,并且不存在总体向上的趋势。
通过尝试多个不同的组合来找到最优的阶数参数p,d,q,确定最优的准则是使用参数建模,能使模型的AIC值最小。
定义一个函数,它会针对某个阶数参数拟合出一个ARIMA模型,并返回模型的AIC值。如果某组参数导致模型无法收敛,就会产生错误,并且无法返回AIC,这时需要人为设置其AIC为无限大(InF)。
调用函数,选取最合适的模型。
然后找出最优的阶数参数:
得到最合适的模型为ARIMA(1, 1, 1)。再次使用最优参数训练模型。
使用forecast包预测未来值。
带颜色的条带是预测的置信区间,蓝色线表示均值,结果表示在后续的10个月里,地震的数量会有小幅增加。
检查自相关函数:
ACF绘图:虚线显示了一个95%的置信区间,特定延迟对应的ACF函数值如果处于该区间内,就不会被认为具有统计显着性(大于0)。这个ACF轮廓表明,针对本数据集,简单的AR(1)过程可能是一种合适的拟合方式。
PACF为偏自相关函数,是将时间延迟K的PACF定义为在消除了小于K的延迟中存在的任何相关性影响的情况下所产生的相关性。