python画不出来图是什么原因-完美解决ARIMA模型中plot_acf画不出图的问题

在使用Python的statsmodels库绘制时间序列ACF图时,若数据未处理缺失值,可能导致无法正常显示图形。解决方法是先使用`dropna()`去除缺失值,然后再次尝试绘制。此外,文章还介绍了Python字典的键值规则,强调键必须为不可变对象,而值则可以是任意数据类型。
摘要由CSDN通过智能技术生成

问题描述:在画时间序列ACF时,调用

from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

plot_acf(data, lags=40)

plt.show()

画不出图,或者是只能画出一条直线,如下图所示:

20200604085652.jpg

出现这种情况的原因是:plot_acf(data, lags=40)中的data没有dropna()。

解决方案:

from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

data = data.dropna()

plot_acf(data, lags=40)

plt.show()

结果如下:

20200604085659.jpg

补充知识:Python字典中的key和value取值的规则

字典的取值规则

字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

(1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

dict1 = {'Name': '

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Statsmodels是Python用于统计建模和计量经济学的库,它提供了各种统计模型,包括线性回归、时间序列分析等。在时间序列分析ARIMA模型是一种常用的模型ARIMA模型是自回归移动平均模型的缩写,它是一种广义的线性模型,常用于描述时间序列数据的自相关结构和随机性。ARIMA模型可以分为AR(自回归)、MA(移动平均)和差分(I)三部分,其AR是指用当前值的前几个值来预测当前值,MA是指用当前误差的前几个值来预测当前误差,差分是指对时间序列进行差分处理,使其变得平稳。 在Python,使用StatsmodelsARIMA模型进行时间序列分析可以分为以下几个步骤: 1. 导入相关库 ```python import pandas as pd import numpy as np import statsmodels.api as sm import matplotlib.pyplot as plt ``` 2. 读取数据 ```python data = pd.read_csv("data.csv", index_col=0, parse_dates=True) ``` 3. 绘制时间序列 ```python plt.plot(data) plt.show() ``` 4. 确定模型阶数 可以使用ACF和PACF来确定ARIMA模型的阶数。ACF展示了时间序列与其滞后版本之间的自相关性,PACF展示了当前时间序列与其滞后版本之间的部分自相关性。根据ACF和PACF的信息,可以确定ARIMA模型的p、d和q参数。 ```python fig, ax = plt.subplots(2,1) sm.graphics.tsa.plot_acf(data, lags=30, ax=ax[0]) sm.graphics.tsa.plot_pacf(data, lags=30, ax=ax[1]) plt.show() ``` 5. 拟合模型 根据确定的ARIMA模型阶数,使用ARIMA()函数拟合时间序列数据。 ```python model = sm.tsa.ARIMA(data, order=(p,d,q)) results = model.fit() ``` 6. 模型诊断 使用plot_diagnostics()函数进行模型诊断,检查残差是否符合白噪声假设。 ```python results.plot_diagnostics(figsize=(15, 12)) plt.show() ``` 7. 预测 使用forecast()函数进行预测。 ```python forecast = results.forecast(steps=10) ``` 以上就是使用PythonStatsmodels包进行时间序列分析ARIMA模型的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值