美文网首页
时间序列笔记-相关性分析

时间序列笔记-相关性分析

作者: 新云旧雨 | 来源:发表于2019-07-22 21:31 被阅读0次

    笔记说明

    在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):
            cor(X,Y)=\frac{cov(X,Y) }{sd(X)sd(Y)}
    相关系数消除了量纲的影响。取值范围为[-1, 1],相关系数绝对值越接近1表示线性相关的程度越强,相关系数为0表示无线性相关关系。
    cor()函数可以计算样本相关系数,与cov()函数类似,cor()函数的输入可以是两个变量也可以是含多个变量的矩阵。
    下面的代码计算eu_stocks数据中各指数对数收益率间的协方差和相关系数,运行结果略(logreturns中各列即为eu_stocks中各变量转为对数收益率)

    # Use cov() with logreturns
    cov(logreturns)
    # Use cor() with logreturns
    cor(logreturns)
    

    相关文章

      网友评论

          本文标题:时间序列笔记-相关性分析

          本文链接:https://www.haomeiwen.com/subject/bjablctx.html