我有两个变量表示为具有每月观察值的时间序列。我正在尝试创建一个评分系统 -1 到 1,其中:1 代表趋势从 B 到 A 的强烈转变,-1 代表趋势从 A 到 B 的强烈转变。最终,我希望对趋势的大小进行评分从 A 到 B 的变化/动量(反之亦然)。
例如,给定下面示例 1 中的样本数据点,A 的趋势立即下降,B 的趋势增加。所以分数应该接近-1。
Example 1
A = {20, 0, 0, 0, 0}
B = {0, 20, 15, 18, 30}
相反,下面示例 2 中的样本数据点说明了 B 立即下降的趋势,而 A 则上升的趋势。所以分数应该接近1。
Example 2
A = {0, 5, 10, 12, 8}
B = {5, 0, 0, 0, 0}
最后,下面示例 3 中的样本数据点是混合的,得分将为负数,但不像示例 1 那样负。
Example 3
A = {5, 8, 7, 4, 3}
B = {0, 0, 2, 5, 10}
我尝试过利用相关性或格兰杰因果关系,但没有完全满足要求。尝试四处搜索但无法完全找到可行的解决方案。有没有一个通用的公式来对A和B之间的趋势变化进行评分?
首先想到的是皮尔逊相关系数,也称为皮尔逊 R。它是线性相关性的度量,取值在 -1 到 1 之间。您可以在 Python 中计算它,如下所示:
from scipy.stats import pearsonr
# Sample data
x = [1, 2, 3, 4, 5]
y = [5, 4, 3, 2, 1]
# Calculate Pearson's correlation
corr, _ = pearsonr(x, y)
print(f"Pearson correlation coefficient: {corr}")
现在我发现这不符合你的例子的描述(Pearsons R 在所有三种情况下都接近 -1),但我不确定是否有任何东西适合它,并开发一种新的相关性度量远远超出了这里答案的范围。除此之外,也许最好考虑一下您所描述的行为是否真的令人满意且一致:
总而言之,这三个示例很可能不足以作为确定相关性度量的充分基础,而该相关性度量将完全满足您的要求。评估变量依赖性的领域非常广泛,很容易在错综复杂的问题中迷失方向。我建议您采用一些简单且易于理解的方法,例如 Pearson 的 R,并在确实必要时对其进行调整,但在这样做之前请确保您知道自己到底需要什么。