时间序列笔记-相关性分析
笔记说明
在datacamp网站上学习“Time Series with R ”track
“Introduction to Time Series Analysis”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
如无特殊说明,笔记中所使用数据均来自datacamp课程
散点图与散点图矩阵
做时间序列的相关性分析中,作散点图是重要的一个环节。
本例中eu_stocks数据集中包括1991年-1998年期间几个主要指数每天的收盘价:DAX(德国) SMI(瑞士) CAC(法国) FTSE(英国)
可以用plot()函数绘制两个变量的散点图
plot(DAX, FTSE)
当手头有多个同期时间序列变量,想要两两做相关性分析时,可以用pair()函数生成散点矩阵图。
pairs(eu_stocks)
对于股价数据,通常比较他们的对数收益率(log return),可以用diff(log())实现对原始股价数据的对数收益率计算:
(关于对数收益率的更多内容可见:时间序列笔记-对数收益率)
# Convert eu_stocks to log returns
logreturns <- diff(log(eu_stocks))
# Make a scatterplot matrix of logreturns
pairs(logreturns)
二元正态分布的数据在散点图上显示出椭圆形的轮廓形状,从散点矩阵图中可以看出来经过Log转换,形成的对数收益率数据更符合这一模式。
协方差与相关系数
协方差(covariance)可以衡量成对出现的两变量间线性关系的强度。
cov()函数可以计算两变量间的样本协方差。当输入为包含多个变量的矩阵时cov()的输出则为协方差矩阵,协方差矩阵是对称矩阵,对角线上则显示各变量的方差值。
协方差受到量纲影响且不容易直接解读,对协方差进行标准化后得到相关系数(correlation):
相关系数消除了量纲的影响。取值范围为[-1, 1],相关系数绝对值越接近1表示线性相关的程度越强,相关系数为0表示无线性相关关系。
cor()函数可以计算样本相关系数,与cov()函数类似,cor()函数的输入可以是两个变量也可以是含多个变量的矩阵。
下面的代码计算eu_stocks数据中各指数对数收益率间的协方差和相关系数,运行结果略(logreturns中各列即为eu_stocks中各变量转为对数收益率)
# Use cov() with logreturns
cov(logreturns)
# Use cor() with logreturns
cor(logreturns)