matplotlib中的自相关与中的自相关有何不同Pandas。工具。策划?

2024-10-02 14:25:44 发布

您现在位置:Python中文网/ 问答频道 /正文

matplotlib中的自相关计算与其他库(如pandas.tools.绘图, sm.graphics.tsa公司.plot_acf等。?在

从下面的代码中我们可以注意到这两个库返回的自相关值是不同的,比如matplotlib返回所有大于零的自相关值,并且熊猫绘图工具返回一些-ve自相关值(除了置信区间,负x轴)。在

import matplotlib.pyplot as plt
import statsmodels.api as sm
import pandas as pd
from pandas.tools.plotting import autocorrelation_plot

dta = sm.datasets.sunspots.load_pandas().data
dta.index = pd.Index(sm.tsa.datetools.dates_from_range('1700', '2008'))
del dta["YEAR"]

plt.acorr(dta['SUNACTIVITY'],maxlags = len(dta['SUNACTIVITY']) -1, linestyle = "solid", usevlines = False, marker='')
plt.show()

autocorrelation_plot(dta['SUNACTIVITY'])
plt.show()

Tags: fromimport绘图pandasplotmatplotlibasplt
1条回答
网友
1楼 · 发布于 2024-10-02 14:25:44

pandas绘图和statsmodel图形中的自相关在计算自相关之前对数据进行标准化。这些库减去平均值并除以数据的标准差。在

当使用标准化时,他们假设您的数据是按照高斯定律生成的(具有一定的平均值和标准差)。现实中可能并非如此。在

相关性是敏感的。这些函数(matplotlib和pandas plotting)都有缺点。在

以下代码使用matplotlib生成的图形将与pandas绘图或statsmodels图形生成的图形相同

dta['SUNACTIVITY_2'] = dta['SUNACTIVITY']
dta['SUNACTIVITY_2'] = (dta['SUNACTIVITY_2'] - dta['SUNACTIVITY_2'].mean()) /     (dta['SUNACTIVITY_2'].std())
plt.acorr(dta['SUNACTIVITY_2'],maxlags = len(dta['SUNACTIVITY_2']) -1, linestyle = "solid", usevlines = False, marker='')
plt.show()

源代码:

Matplotlib

Pandas

相关问题 更多 >