楼主: wqf_cufe
3677 10

[有偿编程] 300论坛币求助如何用R实现行业相关性集中度的计算 [推广有奖]

  • 4关注
  • 16粉丝

已卖:4079份资源

教授

89%

还不是VIP/贵宾

-

威望
0
论坛币
4283 个
通用积分
6.5000
学术水平
10 点
热心指数
17 点
信用等级
13 点
经验
565 点
帖子
730
精华
0
在线时间
2236 小时
注册时间
2009-5-26
最后登录
2021-12-29

楼主
wqf_cufe 发表于 2014-11-7 07:23:00 |AI写论文
300论坛币
今天看到一篇文章,叫做《择时调仓的利器:行业相关性集中度》。里面谈到了通过跟踪行业相关性集中度的方法来提前判断拐点,觉得甚好。但是不知道如何计算这个行业相关性集中度。所以想请教高手用SAS,R,MATALB都行,来写一段这样的程序。最后实现的结果也和这篇文章中的类似。

360桌面截图20141106181936.jpg

我有数据,希望高手们能提供程序。参考文章也在附件里。

data.zip (2.46 MB) 本附件包括:
  • data.CSV
W020091016786189648643.pdf (248.07 KB)

最佳答案

马甲1号 查看完整内容

你有wind么? 我用wind和R做了一个, 你看看吧.
关键词:0论坛币 论坛币 集中度 R实现 如何用 相关性 文章 如何 行业 程序

沙发
马甲1号 发表于 2014-11-7 07:23:01
plot.png 你有wind么? 我用wind和R做了一个, 你看看吧.
数据.zip (448.49 KB) 本附件包括:
  • 数据.rdata
程序.zip (740 Bytes) 本附件包括:
  • 程序.r
已有 1 人评分经验 论坛币 收起 理由
李会超 + 60 + 36 热心帮助其他会员

总评分: 经验 + 60  论坛币 + 36   查看全部评分

藤椅
zxn2011 发表于 2014-11-7 08:13:03
楼主你的数据第二行和第三行都是乱码

板凳
wqf_cufe 发表于 2014-11-7 08:16:16
zxn2011 发表于 2014-11-7 08:13
楼主你的数据第二行和第三行都是乱码
我刚才检查了,不是啊,第二行和第三行是中文的名称。你用中文版EXCEL应该能显示。

报纸
zxn2011 发表于 2014-11-7 14:30:21
马甲1号 发表于 2014-11-7 13:56
你有wind么? 我用wind和R做了一个, 你看看吧.
您这个需要付费的数据终端吧,普通的R跑不出来啊

地板
wqf_cufe 发表于 2014-11-7 14:53:55
马甲1号 发表于 2014-11-7 13:56
你有wind么? 我用wind和R做了一个, 你看看吧.
我看到你的code了,你没有用我的数据是因为无法时刻更新,这也是你用wind的R接口的主要原因对吧?还有一个就是能不能做成和我在图例里面标识的那样,可以对应行业相关程度到下面的指数上面。在一张图里。还有就是you are so good!

7
wqf_cufe 发表于 2014-11-7 15:11:49
马甲1号 发表于 2014-11-7 13:56
你有wind么? 我用wind和R做了一个, 你看看吧.
  1. c_row_all= vector(mode='numeric', len= nrow(indclose2))
  2. c_row_all[1:(windowlen+1)]=NA

  3. for(d in (windowlen+2):  nrow(indclose2)){
  4.     cr=cor( indclose2[ (d-windowlen):d, -1])
  5.     smp= cr[upper.tri(cr)]
  6.     c_row = mean(smp)/sd(smp)
  7.     c_row_all[d]=c_row
  8. }
复制代码
这一段能解释一下吗?最好配合你参考的文章或者公式。谢谢!

8
daishen 发表于 2014-11-7 16:41:13
差距怎么这么大,这个图是用了楼主给的数据,用前十个行业画的。
不过这种方法,说实在话,没有什么意义,应该是研究部门为了交差的 应付之作。

data = fread("E:/data/data.csv")
dat = data[-c(1,2),2:11,with=FALSE]

setDT(dat)[, names(dat) := lapply(.SD, function(x) diff(log(as.numeric(x))))]
setDT(dat)[, names(dat) := lapply(.SD, function(x) as.numeric(x))]

cp = sapply(1:nrow(dat),function(i) {dat = dat[1:i,]
                                      dat = cor(dat)
                                      dat = dat[upper.tri(dat)]
                                      return(mean(dat)/sd(dat))
                                      })
dat1 = data.frame(x = 1:nrow(dat),y = cp)
plot(dat1,type = 'l')
360截图20141107163725514.jpg

9
wqf_cufe 发表于 2014-11-8 00:27:50
daishen 发表于 2014-11-7 16:41
差距怎么这么大,这个图是用了楼主给的数据,用前十个行业画的。
不过这种方法,说实在话,没有什么意义, ...
谢谢,辛苦啦。

10
wqf_cufe 发表于 2014-11-8 13:48:00
马甲1号 发表于 2014-11-7 07:23
你有wind么? 我用wind和R做了一个, 你看看吧.
你好,我发现你发给我的那个数据不是真的数据,无法用正常的R来看,我没有wind。所以能否麻烦你帮我下载一下里面你的这个wind一级行业指数以及二级行业指数的raw data?谢谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 07:48