python statsmodel的使用
1、Pandas
Python Data Analysis Library 或 pandas 是基於NumPy 的一種工具,相當於這是Python官方自己的一套庫
statsmodel是基於Pandas開發的一套庫,用於一些描述統計、統計模型估計、推斷、預測
2、自回歸模型(AutoRegression model,AR)
自回歸,從物理的角度來理解就是:當前記錄與其歷史記錄的差值。eg,自回歸認為歷史的發展是一條斜率一定的直線。
3、滑動平均模型(moving average model, MA)
移動平均,從物理的角度來理解就是:當前記錄是歷史記錄的均值。eg,移動平均模型認為歷史的發展是一條水平的線。
4、高級時間序列模型ARMA
ARMA就是把AR和MA結合在一起的一種算法,當AR和MA混合在一起,可以認為是一個y=ax+b的過程,自回歸提供瞭a這個系數,移動平均提供瞭b這個截距。
5、高級時間序列模型ARIMA【autoregression intergrated moving average差分自回歸移動平均】
ARIMA中,I指代的差分,其實是 前後時間上數值的差異,ARIMA就是使用差分的數據來進行ARMA建模
6、ARMA測試
import pandas as pd import numpy as np import matplotlib.pyplot as plt import statsmodels.api as sm from statsmodels.graphics.tsaplots import acf, pacf, plot_acf, plot_pacf from statsmodels.tsa.arima_model import ARMA from statsmodels.tsa.stattools import arma_order_select_ic if __name__ == "__main__": time_series = pd.Series( [151.0, 188.46, 199.38, 219.75, 241.55, 262.58, 328.22, 396.26, 442.04, 517.77, 626.52, 717.08, 824.38, 913.38, 1088.39, 1325.83, 1700.92, 2109.38, 2499.77, 2856.47, 3114.02, 3229.29, 3545.39, 3880.53, 4212.82, 4757.45, 5633.24, 6590.19, 7617.47, 9333.4, 11328.92, 12961.1, 15967.61]) # print('BIC求解的模型階次為', arma_order_select_ic(time_series, max_ar=10, max_ma=6, ic='bic')['bic_min_order']) print('time_series:', len(time_series)) my_arma = ARMA(time_series, (1, 0)) # 這裡的(1, 0)從arma_order_select_ic函數返回,但是這裡返回6,7運行失敗 model = my_arma.fit() result = model.forecast(10)[0] print('result:', result)
以上就是python statsmodel的使用的詳細內容,更多關於python statsmodel的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- Python數學建模庫StatsModels統計回歸簡介初識
- python數據分析之時間序列分析詳情
- 如何用Python進行時間序列分解和預測
- Python數據分析 Pandas Series對象操作
- python Pandas時序數據處理