在R中:我想计算时间序列数据集的相关矩阵,其中列标题是不同的交易输入,行是日期,例如2007年1月,2007年2月等。 :
input 1 input 2 ... input 3000
jan 2007 1 0 0 1
feb 2007 3.4 0 0 2.4
... 0.56 0 0 0
dec 2016 0 0 0 0
所以,我尝试了cor(my_matrix,method =“ pearson”,use =“ pairwise.correlation.obs”)
问题是矩阵中的所有列均为0,所以我收到标准偏差为0的警告消息。
这样,我可以删除0到
的列my_matrix <- Filter(function(x)!all(is.na(x)), my_matrix)
,然后重新运行相关计算。
但是,现在我的问题是我想对输出的相关矩阵与另一个相关矩阵进行点积运算,该相关矩阵的大小与原始矩阵的大小相同(在删除列= 0之前)。
为了详细说明,假设我有两个矩阵A和B,两个大小均为100x3000。我删除A中的列,因为它们全为0,并且大小变为100x2500。现在,我对A和B都进行了相关性计算,得到一个尺寸为3000x3000的矩阵和一个尺寸为2500x2500的矩阵。我现在无法对两个矩阵进行点积运算。
我应该尝试在最初删除的列中重新添加吗?有没有更好的方法来计算与0列的相关性?会有更好的方法来做我正在做的事吗?
非常感谢。我是R和这个论坛的新手。请让我知道我是否有遗漏或需要详细说明。