INTRO
最近又重新开始做一些价格发现相关的研究,目前针对不同市场的同种标的之间价格发现作用的度量,大多采用Hasbrouk(1995)开发的基于VECM的信息份额模型,通过计算IS指标和CS指标来度量信息份额和价格发现的贡献程度。
不过,在入手的时候通常被复杂的计算过程所困扰,而STATA或者SPSS都没有相应的包给大家提供便利。如果在网上搜索相关的帖子,对于具体方法也是遮遮掩掩。人大论坛上黄色头像的“黄河泉”老师倒是推荐了R的函数pdshare可以计算IS和CS,但!
当你真的安装好R再去加载pdshare时,会提示R版本不对。为此我下载了4.2、4.1、3.3、3.1等多个版本的R,均无功而返。所以跟版本也没有太大关系。
经过多次尝试,花了一个下午的时间搞定过后(吃了没文化的亏,我哭死),做个总结,也分享给大家。
傻瓜教程
(1)原材料:R 3.3.3(其它版本不清楚O不OK,但是必须在4.0.0以前的版本);对应版本的RTools;Rstudio(应该没大所谓,但是方便)
(2)安装,不需要配置什么环境,一直下一步就行。
(3)安装好之后需要手动下载ifrogs包,pdshare函数就藏在里面,但是直接用install.packages是没办法下载的。下载地址
(4)在Rstudio里面安装下载的这个zip
(5)勾选 ifrogs (或者library())会提示缺少 urca,用install.packages安装即可,有时候会下载失败,可以试试清华的镜像站。
install.packages('urca',repo='https://mirrors.tuna.tsinghua.edu.cn/CRAN/')
(6)继续勾选urca,会提示缺少 vars ,重复以上步骤,还会要求安装 xtable。安装完xtable以后还会提示需要fOptions包,此时其实已经不需要继续安装下去了。搞完了以后像下面这样。
(7)然后导入数据,如果根据作者demo的做法,需要准备三列数据,第一列是日期(时间),第二列和第三列分别是两个市场的价格。但实际上直接准备两列对数价格也可以。比如这样
ln_m2
A H
1 2.3025851 2.3513753
2 2.4849066 2.5176965
3 2.6390573 2.6810215
4 2.7725887 2.7725887
5 2.8903718 2.9177707
6 2.9957323 3.0155349
7 2.8903718 2.9069011
8 2.7725887 2.7850112
9 2.6390573 2.6946272
10 2.4849066 2.4849066
11 2.3025851 2.3887628
12 2.0794415 2.0918641
13 1.7917595 1.8870696
14 1.3862944 1.5686159
15 0.6931472 0.7419373
16 1.3862944 1.5475625
17 1.7917595 1.8245493
18 2.0794415 2.1860513
19 2.3025851 2.3223877
20 2.4849066 2.5176965
(8)计算结果:
ifrogs::pdshare(ln_m2)
$is.original.ordering
IS
A 0.02606541
H 0.97393459
$is.reversed.ordering
IS
H 0.1995205
A 0.8004795
$component.share
CS
A 0.4573488
H 0.5426512
$var.covar.matrix
A H
A 0.006355232 0.005642670
H 0.005642670 0.005492432
$lags.used
[1] 5
(9)当然,pdshare还包含有两个可选参数override.lags和lag.max,具体解释和用法可以参考文档。