前几天得到了3700股一周的波动率,我想计算每周各股之间的相关系数并可视化。 最终结果保存在创建文件夹中。
部分数据如下。
先读取数据
1
2
数据读取. CSV (d :/data/stock _ day _ close _ price _ week _ series.CSV ),
header=TRUE,blank.lines.skip=TRUE )
处理mice包中缺少的值:
1
2
3
4
5
6
7
库(lattice ) )。
是库(质量)
库(mice ) )。
aggr(data,prop=FALSE,numbers=TRUE,sortVars=TRUE ) #查看缺失值
笑气氛-mice(data ),3:7] ),1 ) #用链式方程法填补缺失值
stripplot (笑的气氛,pch=20,cex=1.2 ) #查看填补结果
data1-complete (笑的气氛,action=1) )。
缺少值的比例图表如下:
2
分组计算并保存:
1
2
3
4
5
6
7
8
9
10
11
12
13
得到d-unlist(Levels ) factor(dat[,2] ) )各自的开始日期
我的数据列表(
mydatap-list (
xg-list () )
for(Iin1:11 )修改组的数量有多少个开始日期
my data [ [ I ] ] -按过滤器(dat,Start_date==d[[i]] )开始日期对数据进行分组
mydatap [ [ I ]-my data [ [ I ] ] [ 1: nrow ] [ my data [ [ I ] ] ],3:7]
XG[[I]]-cor(t ) mydatap[[I]] )计算相关系数矩阵
rownames(XG([I] )=my data ([ I ] ),1 ) ) ) ) ) ) ) ) )。
colnames(XG([I] )=my data ([ I ] ),1 ) ) ) ) ) ) ) ) )。
dat-filter(dat,Start_date!=d[[i]] )
涉及write.csv(XG[I],file=pastE0(d:/data/',' relation_graph_,d[[i]],'.CSV ' )
}
部分计算结果:
总代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
数据读取. CSV (d :/data/stock _ day _ close _ price _ week _ series.CSV ),
header=TRUE,blank.lines.skip=TRUE )
库(颜色空间)。
库(网格) )。
库(lattice ) )。
库(mice ) )。
库(data.table )。
库(虚拟机)。
库(Dp Lyr )。
库(彩色打印) )。
矩阵打印(数据) )。
aggr(data,prop=FALSE,numbers=TRUE,sortVars=TRUE ) #查看缺失值
笑气氛-mice(data ),3:7] ),1 ) #用链式方程法填补缺失值
stripplot (笑的气氛,pch=20,cex=1.2 ) )。
data1-complete (笑的气氛,action=1) )。
dat-c bind (数据[,1:2],数据1 )。
得到d-unlist(Levels ) factor(dat[,2] ) )各自的开始日期
我的数据列表(
mydatap-list (
xg-list () )
for(Iin1:11 )修改组的数量有多少个开始日期
my data [ [ I ] ] -按过滤器(dat,Start_date==d[[i]] )开始日期对数据进行分组
mydatap [ [ I ]-my data [ [ I ] ] [ 1: nrow ] [ my data [ [ I ] ] ],3:7]
XG[[I]]-cor(t ) mydatap[[I]] )计算相关系数矩阵
rownames(XG([I] )=my data ([ I ] ),1 ) ) ) ) ) ) ) ) )。
colnames(XG([I] )=my data ([ I ] ),1 ) ) ) ) ) ) ) ) )。
dat-filter(dat,Start_date!=d[[i]] )
涉及write.csv(XG[I],file=pastE0(d:/data/',' relation_graph_,d[[i]],'.CSV ' )
}
补充:人员相关系数r码的实现
人员相关系数(Pearson Correlation Coefficient ) )
称为皮尔逊相关系数的Pearson's r用于反映两个随机变量之间的线性相关程度。
要了解皮尔森的相关系数,首先要了解协方差。 协方差可以反映两个随机变量之间的关系,如果一个变量与另一个变量一起增大或减小,则表明这两个变量的协方差为正值,反之亦然。
如果协方差的值是大的正数,就可以得到以下两个可能的结论。
)1)两个变量之间存在强正相关
)两个变量之间没有强正相关,协方差的值大是因为x或y的标准差大
那么,哪个结论是正确的呢? 从协方差中排除x和y变量的标准偏差不就知道了吗?
协方差可以告诉我们两个随机变量之间的关系,但无法测量变量之间相关的强弱。
因此,为了更好地测量两个随机变量之间的相关度,引入了皮尔逊相关系数。
可见皮尔森的相关系数是协方差除以两个变量的标准差。