在 python 中绘制 YoY 价格相关性。 (绘制 Dataframe 行的相关性)

Posted

技术标签:

【中文标题】在 python 中绘制 YoY 价格相关性。 (绘制 Dataframe 行的相关性)【英文标题】:Plot the YoY price correlation in python. (Plot the correlation of Dataframe rows) 【发布时间】:2020-09-03 16:45:50 【问题描述】:

在尝试在 Python 中绘制 DataFrame 的 YoY 相关性的上下文中。问题是如何获得代表每一对变量“AAPL”、“IBM”和“MSFT”相关性的 3 个成对相关系数。然后用 matplotlib 绘制它们。

如何按行计算相关性? .corrwith 似乎是建议的内容,但它在这里不起作用。

https://www.geeksforgeeks.org/python-pandas-dataframe-corrwith/

我设法找到了一个 pandas DataFrame,其中每一行代表年份,每个元素代表一年中的累计价格。我想获取累计同比价格的相关性,然后将它们绘制为时间的函数。

数据如下:

             AAPL           IBM         MSFT
Year                                        
2003   333.392142  21429.009979  6585.475002
2004   637.586428  22862.419960  6837.309986
2005  1678.695713  21121.199997  6519.779993
2006  2545.412858  20827.630028  6592.800003
2007  4603.665710  26528.350021  7638.409990
2008  5143.625731  27841.030014  6755.059990
2009  5278.287136  27444.059998  5779.759998
2010  9312.338573  33034.919891  6795.050001

最终的情节是这样的,

总结问题:如何获取以下数据,计算每年的 3 个成对相关性,然后使用 matplotlib 绘制结果?

下面提供了导入数据和操作数据的代码。注意yfinance是用来加载数据的,

#!pip install yfinance
import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
ticker_Symbol = "AAPL", "MSFT", "IBM"
start_date = '2003-1-01'
end_date =  '2010-12-31'

df5 = yf.download(ticker_Symbol,start_date , end_date)
df  = df5[["Open"]]

print(df.head(3))

# Index the Year of each Value
df["Year"] = df.index.year
dfYearly = df.groupby(['Year']).sum()
dfYearly = dfYearly["Open"] 
dfYearly

【问题讨论】:

【参考方案1】:

您无法计算两个单个数字之间的相关性。

计算相关系数背后的想法是,您可以通过计算数据样本的经验系数来估计一个潜在的“总体”相关系数。但是,如果该样本的大小为 1,则关于任何潜在相关性的信息为零。

因此,如果您想计算各个年份的单独相关系数,您将需要尚未按年份汇总的数据。那么您实际上可以使用corrwith 作为每年的聚合方法。

【讨论】:

嗨@Arne。我明白你所说的相关性,谢谢我从来没有真正考虑过。我很想了解您所说的内容的实现,尽管我将如何“每年使用 corrwith 作为聚合方法”。 嗨@Thamu Mnyulwa。不要读太多。我的意思是,当每个变量每年有多个数字时,计算相关系数是总结每年数据的一种方法。

以上是关于在 python 中绘制 YoY 价格相关性。 (绘制 Dataframe 行的相关性)的主要内容,如果未能解决你的问题,请参考以下文章

在画面中寻找适用于财政年度的 YOY YTD 公式

Python:如何在 Y 轴上绘制数字 [关闭]

计算维度/指标的WoW,MoM和YoY

python获取比特币价格时间序列数组并绘制蜡烛图(candlestick chart)

python获取比特币价格时间序列数组并绘制蜡烛图(candlestick chart)

在git中,当使用git.commit命令时,这个Please tell me who yoy are 怎么解决