importpandasaspdimportnumpyasnpimportmatplotlib.pylabaspltfrommatplotlib.pylabimportrcParamsimportmatplotlibasmplimportdatetimeimporttimeimportstatsmodels.apiassmfromstatsmodels.tsa.arima_modelimportARIMA

rcParams['figure.figsize'] =15,6mpl.rcParams['font.family'] ='sans-serif'mpl.rcParams['font.sans-serif'] = [u'SimHei']

plt.rcParams['axes.unicode_minus']=Falsedata = pd.read_csv('shuju_data.csv')print(data.head())

data.index = pd.Index(sm.tsa.datetools.dates_from_range('1700','1757'))deldata['period']print('\nData Types:')#data.index =pd.DatetimeIndex(data.index,freq='D')print(data.head())

plt.plot(data)

plt.title('数据类岗位的分布情况')

plt.show()

fig = plt.figure(figsize=(12,8))

ax1=fig.add_subplot(211)

fig = sm.graphics.tsa.plot_acf(data,lags=20,ax=ax1)

plt.title('原始数据的自相关图')

ax2 = fig.add_subplot(212)

fig = sm.graphics.tsa.plot_pacf(data,lags=20,ax=ax2)

plt.title('原始数据的偏相关图')

plt.show()

fig = plt.figure(figsize=(12,8))

ax1= fig.add_subplot(211)

diff1 = data.diff(1).dropna()

diff1.plot(ax=ax1)

plt.title('一阶差分')

ax2= fig.add_subplot(212)

diff2 = data.diff(2).dropna()

diff2.plot(ax=ax2)

plt.title('二阶差分')

plt.show()

fig = plt.figure(figsize=(12,8))

ax1=fig.add_subplot(211)

fig = sm.graphics.tsa.plot_acf(diff1,lags=20,ax=ax1)

plt.title('一阶差分的自相关图')

ax2 = fig.add_subplot(212)

fig = sm.graphics.tsa.plot_pacf(diff1,lags=20,ax=ax2)

plt.title('一阶差分的偏相关图')

plt.show()

model1 = sm.tsa.ARMA(data,(7,1)).fit()print(model1.aic,model1.bic,model1.hqic)

pre = model1.predict('1740','1760',dynamic=True)print(pre)

model2 = sm.tsa.ARIMA(data,(7,1,1)).fit()print(model2.aic,model2.bic,model2.hqic)print(model2.forecast(7))

fig,ax = plt.subplots(figsize=(12,8))

ax = data.ix['1700':].plot(ax=ax)

fig = model1.plot_predict('1740','1760',dynamic=True,ax=ax,plot_insample=False)

fig = model2.plot_predict('1740','1760',dynamic=True,ax=ax,plot_insample=False)

plt.title('数据类岗位预测情况')

plt.show()

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐