拓端tecdat|R语言股市可视化相关矩阵:最小生成树

原文链接:http://tecdat.cn/?p=17835

 

本文在股市可视化中可视化相关矩阵 :最小生成树

在本文示例中,我将使用日数据和1分钟数据来可视化股票数据 。

我发现以下概念定义非常有用:

 

  • 连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图。
  • 强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连通图。
  • 连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;权代表着连接连个顶点的代价,称这种连通图叫做连通网。
  • 生成树:一个连通图的生成树是指一个连通子图,它含有图中全部n个顶点,但只有足以构成一棵树的n-1条边。一颗有n个顶点的生成树有且仅有n-1条边,如果生成树中再添加一条边,则必定成环。
  • 最小生成树:在连通网的所有生成树中,所有边的代价和最小的生成树,称为最小生成树。 
    这里写图片描述
  1.  
    #*****************************************************************
  2.  
    # 加载历史数据
  3.  
    #*****************************************************************
  4.  
     
  5.  
     
  6.  
     
  7.  
     
  8.  
    getSymbols(tickers, src = 'yahoo', from = '1970-01-01', env = data, auto.assign =
  9.  
     
  10.  
    for(i in ls(data)) data[[i]] = adjustOHLC(data[[i]
  11.  
     
  12.  
     
  13.  
    # 删除历史数据很少的样本
  14.  
    remove.min.history(data)
  15.  
     
  16.  
    # 显示已删除的
  17.  
    print(setdiff(tickers,names(data$prices)))

 

  1.  
    #*****************************************************************
  2.  
    # 可视化关联矩阵
  3.  
    #*****************************************************************
  4.  
    prices = data$prices
  5.  
     
  6.  
    ret = diff(log(prices))
  7.  
    ret = last(ret, 252)
  8.  
     

 

plt(ret, 0.5)

 

接下来,让我们获取1分钟的收盘价数据,并基于最近5天可视化相关性:

  1.  
    #*****************************************************************
  2.  
    # 加载历史数据
  3.  
    #*****************************************************************
  4.  
     
  5.  
     
  6.  
    if(!file.exists(filename)) {
  7.  
     
  8.  
     
  9.  
    data1[[ticker]] = getSymbol.intraday.google(ticker,
  10.  
     
  11.  
     
  12.  
     
  13.  
     
  14.  
     
  15.  
     
  16.  
    #*****************************************************************
  17.  
    # 可视化关联矩阵
  18.  
    #*****************************************************************
  19.  
     
  20.  
     
  21.  
    print(join(c(
  22.  
     
  23.  
     
  24.  
    ,format(range(index(ret)), '%d-%b-%Y %H-%M')), ' '))

 

plot.cor(ret, 0.5)

 

辅助函数:

  1.  
    #*****************************************************************
  2.  
    #函数创建相关矩阵
  3.  
    #*****************************************************************
  4.  
    clncor = function(ret, threshold = 0.5) {
  5.  
    cor(coredata(ret), use='complete.obs',method='pearson')
  6.  
     
  7.  
    cor_mat[ abs(cor_mat) < threshold] = 0
  8.  
     
  9.  
     
  10.  
     
  11.  
    #*****************************************************************
  12.  
    # 绘制最小生成树
  13.  
    #*****************************************************************
  14.  
    plco = function(ho = 0.5) {
  15.  
    cor_mat = clean.cor(ret, threshold
  16.  
     

 


最受欢迎的见解

1.R语言动态图可视化:如何、创建具有精美动画的图

2.R语言生存分析可视化分析

3.Python数据可视化-seaborn Iris鸢尾花数据

4.r语言对布丰投针(蒲丰投针)实验进行模拟和动态

5.R语言生存分析数据分析可视化案例

6.r语言数据可视化分析案例:探索brfss数据数据分析

7.R语言动态可视化:制作历史全球平均温度的累积动态折线图动画gif视频图

8.R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析案例报告

9.python主题LDA建模和t-SNE可视化

 
 
 
posted @ 2020-11-18 10:10  拓端tecdat  阅读(280)  评论(0)    收藏  举报