Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penjelasan terperinci tentang model purata bergerak autoregresif dalam Python

Penjelasan terperinci tentang model purata bergerak autoregresif dalam Python

WBOY
WBOYasal
2023-06-10 15:17:182104semak imbas

Python ialah bahasa pengaturcaraan yang digunakan secara meluas dalam bidang sains data Model autoregressive moving average (ARMA) ialah model yang sangat penting dalam analisis siri masa. Artikel ini akan memperkenalkan model ARMA dalam Python secara terperinci.

1. Apakah model ARMA?

Model purata bergerak autoregresif (ARMA) ialah model biasa dalam analisis siri masa, digunakan untuk menerangkan keberkalaan dan arah aliran dalam data siri masa. Model ARMA boleh digunakan untuk meramalkan nilai pada titik masa hadapan dan menilai kesan faktor individu terhadap keputusan.

Dalam model ARMA, autoregression (AR) bermaksud nilai titik masa semasa bergantung pada nilai titik masa sebelumnya, manakala purata bergerak (MA) bermaksud nilai titik masa semasa bergantung pada titik masa sebelumnya pada beberapa titik masa. Model ARMA menggabungkan kedua-dua faktor ini untuk membentuk model keseluruhan, di mana "p" mewakili susunan bahagian AR dan "q" mewakili susunan bahagian MA.

2. Bagaimana untuk menggunakan model ARMA?

Terdapat beberapa perpustakaan berkuasa dalam Python untuk analisis dan ramalan siri masa, seperti Statsmodels, Pandas dan Matplotlib. Kod berikut menunjukkan cara menggunakan modul ARMA pustaka Statsmodels:

import pandas as pd
import statsmodels.tsa.arima_model as ARMA
 
# 读取数据并将日期列设置为索引
data = pd.read_csv('data.csv', index_col='date')
 
# 建立ARMA模型
model = ARMA(data, order=(p, q))
 
# 拟合模型
results = model.fit()
 
# 预测未来值
future_values = results.predict(start='2022-01-01', end='2022-12-31')

Dalam contoh ini, kami mula-mula membaca data siri masa melalui Panda dan menetapkan lajur tarikh sebagai indeks. Kemudian, kami menggunakan modul ARMA perpustakaan Statsmodels untuk membina model, dengan "p" dan "q" ialah parameter model ARMA. Seterusnya, kami menyesuaikan model, menjana nilai ramalan dan menyimpan hasilnya dalam pembolehubah nilai_masa hadapan.

3. Bagaimana untuk menilai model ARMA?

Setelah kami membina model ARMA dan menjana ramalan, kami mesti menilai model untuk menentukan sama ada ia memenuhi keperluan. Berikut ialah beberapa kaedah penilaian yang biasa digunakan:

1. Diagnosis baki

Baki ialah perbezaan antara nilai ramalan model dan nilai sebenar. Diagnostik sisa ialah cara biasa untuk menilai model dengan menyemak sama ada sisa diedarkan secara normal di bawah andaian min sifar, varians malar dan rawak.

import statsmodels.stats.diagnostic as diag
 
res = results.resid
p_value = diag.acorr_ljungbox(res, lags=[20])

Coretan kod ini akan menjalankan ujian Ljung-Box untuk menyemak sama ada sisa adalah autokorelasi. Hanya semak untuk melihat sama ada nilai baki adalah berkaitan.

2. Kriteria maklumat

Kriteria maklumat ialah kaedah yang digunakan untuk menilai kualiti model, yang boleh dikira berdasarkan tahap kesesuaian model, parameter dan bilangan sampel . Kriteria maklumat yang lebih rendah menunjukkan model yang lebih baik.

aic, bic = results.aic, results.bic

Coretan kod ini akan mengira Kriteria Maklumat Akaike (AIC) dan Kriteria Maklumat Bayesian (BIC) model dan menyimpan keputusan dalam pembolehubah yang sepadan.

4. Ringkasan

Model purata bergerak autoregresif ialah konsep penting dalam analisis siri masa. Perpustakaan sedia ada seperti Statsmodels, Pandas dan Matplotlib dalam Python boleh digunakan untuk membina model ARMA dengan mudah, meramalkan nilai masa hadapan, menilai kualiti model dan operasi lain. Dengan menggunakan alatan dan kaedah ini, kami boleh melakukan analisis dan ramalan siri masa dengan mudah, serta melaraskan serta menambah baiknya untuk memenuhi keperluan perniagaan.

Atas ialah kandungan terperinci Penjelasan terperinci tentang model purata bergerak autoregresif dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn