mcorrTopN
语法
mcorrTopN(X, Y, S, window, top, [ascending=true],
[tiesMethod='oldest'])
参数说明和窗口计算规则请参考:mTopN
详情
在给定长度(以元素个数衡量)的滑动窗口内,根据 ascending 指定的排序方式将 X 和 Y 按照 S 进行稳定排序后,取前 top 个元素,然后计算 Y 和 X 的相关性。
返回值
计算结果为 DOUBLE 类型,形式同输入参数。
例子
以 IBM 股票为例,构造连续 6 个交易日的指数收益率、个股收益率和成交量数据:
symbol = take(`IBM, 6)
tradeDate = 2024.01.02 2024.01.03 2024.01.04 2024.01.05 2024.01.08 2024.01.09
indexRet = [0.6, 1.1, -0.2, 0.9, 1.3, 0.4]
stockRet = [0.9, 1.6, 0.4, 0.2, 0.2, 0.4]
tradeVolume = [520, 860, 610, 940, 650, 880]
stockDaily = table(symbol, tradeDate, indexRet, stockRet, tradeVolume)
stockDaily;
输出结果:
| symbol | tradeDate | indexRet | stockRet | tradeVolume |
|---|---|---|---|---|
| IBM | 2024.01.02 | 0.6 | 0.9 | 520 |
| IBM | 2024.01.03 | 1.1 | 1.6 | 860 |
| IBM | 2024.01.04 | -0.2 | 0.4 | 610 |
| IBM | 2024.01.05 | 0.9 | 0.2 | 940 |
| IBM | 2024.01.08 | 1.3 | 0.2 | 650 |
| IBM | 2024.01.09 | 0.4 | 0.4 | 880 |
在最近 4 个交易日内,选取成交量最高的前 2 个交易日,计算指数收益率(indexRet)和个股收益率(stockRet)的相关性:
mcorrTopN(X=indexRet, Y=stockRet, S=tradeVolume, window=4, top=2, ascending=false)
// output: [ , 1, 1, 1, 1, -1]
-
tradeVolume用于筛选成交最活跃的交易日; -
对 2024.01.09 的数据而言,最近 4 日窗口中成交量最高的两个交易日对应样本为 (0.9, 0.2) 和 (0.4, 0.4),它们的相关系数为 -1。
相关函数:mcorr
