从 table 构建一个具有非对齐日期的相关矩阵

Construct a correlation matrix from table with non-aligned dates

我查看了 this post 以计算给定输入 table 的相关矩阵。

我的问题是我的列未始终对齐。

例如:

([]date:.z.d+til 100;a:100?10f;b:(10#0n),90?1f;c:(90?1f),(10#0n))

date       a          b           c          
---------------------------------------------
2019.11.18 6.018138               0.1357346  
2019.11.19 2.365495               0.9805366  
2019.11.20 0.5136894              0.2821858  
2019.11.21 9.013581               0.4946025  
2019.11.22 1.0842                 0.967023   
2019.11.23 4.543989               0.6901084  
2019.11.24 4.597627               0.6303566  
2019.11.25 2.18889                0.01415349 
2019.11.26 3.050233               0.2783062  
2019.11.27 5.259109               0.6675121  
2019.11.28 5.175593   0.1684333   0.3706485  
2019.11.29 5.14162    0.5885103   0.4183277

我不想在计算相关矩阵之前删除所有包含空值的行,因为我有很多列并且所有日期的交集可能是空集。

相反,我想应用 n*(n-1) 操作来填充我自己构建的相关矩阵,方法是采用 ab 的联合系列,并将导致我的相关矩阵 CC[1,2]C[2,1].

我坚持n*(n-1)操作因为我上面提到的post中的答案似乎做了n*n操作(我的n大致等于700).

这可能会让您找到接近您正在寻找的东西:

q)m:(1_cols t)!();
q){x{m::m,'key[x]!1f,value(1_x)cor\:y;1_x}/x}1_flip t

q)m^flip m
 | a          b           c
-| ----------------------------------
a| 1          0.01418217  0.04938382
b| 0.01418217 1           -0.06297328
c| 0.04938382 -0.06297328 1

仅使用 3 个 cor 操作。