【发布时间】:2012-01-15 10:30:31
【问题描述】:
我得到了两个 N 维的点序列,每个点的长度为 M.. 目标是将它们相关并计算相关系数.. 使用方差、协方差和标准差的公式,可以计算相关系数..
我不明白的是如何调整算法以考虑所有 N 维而不是仅仅一个..考虑以下..
series A = [0, 0] [1, 1] [2, 2] [3, 3]
series B = [0, 0] [1, -1] [2, -2] [3, -3]
如果我们只使用第一个维度进行相关性,我们将得到 +1.00.. 如果我们使用第二个维度,我们将得到 -1.00.. 但我们可以看到,如果我们要考虑两个维度的相关性,答案不会像 +1.00 或 -1.00 这么简单......
所以我想知道如何制定这种多维相关性,最好在 c# 中..
随时要求进一步澄清或编辑以进一步改进帖子.. =)
编辑:我使用的序列是股票时间序列。我检索最新的 M 个收盘价样本作为序列 A,并开始将其与所有历史数据关联为滑动窗口(数据 [1] 到数据 [M + 1 ]、data[2] 到 data[M+2]、data[1000] 到 data[M+1000] 等等).. 相关性最高的偏移量是价格行为几乎接近的时间点与现在相同..通过分析在该时间实例之后价格是否上涨或下跌,我们可以预测价格在这个时间瞬间会以何种方式移动..但我不只使用收盘价(一维) .. 我想确定一些指标相似的区域,例如 CLOSE、VOLUME 等。所以时间序列不只有每个索引的一个值,而是一个完整的值数组。..
如果我只在相关中使用 CLOSE,我不能保证这些系列的 VOLUME 序列是否也会相似。同样,如果我在相关中使用 VOLUME,我不能保证这些系列的 CLOSE 序列是否也相似。 .所以我需要一个基于某种距离度量的归一化相关公式..类似于a^2 + b^2..如果CLOSE值相似,a^2会很小..如果VOLUME值相似,b^2 会很小.. 现在如果 a^2 + b^2 很小,这意味着 CLOSE 和 VOLUME 都相似..
以前我在做的事情如下:
1.使用CLOSE价格计算相关性。
2.使用VOLUME计算相关性。
3. 将这些值相乘。这将确保高相关值意味着 CLOSE 和 VOLUME 都具有很强的个体相关性。
编辑:
stdDevX = Sqrt (Summation ((x - Mean(x)) * (x - Mean(x)) / N)
stdDevY = Sqrt (Summation ((y - Mean(y)) * (y - Mean(y)) / N)
corrXY = Summation ((x - Mean(x) * (y - Mean(y)) / (stdDevX * stdDevY)) / (N - 1)
http://en.wikipedia.org/wiki/Standard_deviation
http://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient
上述公式假设系列 x 和 y 都是一维的。我主要关心的是如何使这些公式适用于多维向量。我希望用它来找到所有价格指标都相似的区域历史..但任何希望关联任何类型的vertors的人都可以使用它..对象的x,y,z坐标等..
【问题讨论】:
-
相等时加+1,不相等时减-1吗?
-
这是一道作业题吗?如果是,请添加 [homework] 标签。
-
@matthew.. 不,这不是.. 它是我自过去六个月左右以来一直在做的一个自我强加的个人项目的一部分.. 它涉及确定历史上发生过类似系列的地方目前..并使用该信息来尝试预测接下来的几个数据点..如果需要,我可以提供更多信息..但这会使问题的范围受到限制,因此希望保持一般性以使更多人受益.. =)
标签: c# math correlation