Cara memproses dan meramalkan data siri masa menggunakan perpustakaan analisis data dalam Python

王林
Lepaskan: 2023-10-20 18:58:52
asal
699 orang telah melayarinya

Cara memproses dan meramalkan data siri masa menggunakan perpustakaan analisis data dalam Python

Cara menggunakan perpustakaan analisis data dalam Python untuk memproses dan meramal data siri masa

Data siri masa merujuk kepada data yang disusun mengikut susunan masa , Ia dicirikan oleh korelasi masa dan trend. Dalam banyak bidang, analisis data siri masa memainkan peranan penting, seperti ramalan pasaran saham, ramalan cuaca, ramalan jualan, dsb. Terdapat banyak perpustakaan analisis data yang berkuasa dalam Python, seperti NumPy, Pandas dan Statsmodels, yang boleh membantu kami memproses dan meramalkan data siri masa. Artikel ini akan memperkenalkan cara menggunakan perpustakaan ini dalam Python untuk memproses dan meramalkan data siri masa, dan menyediakan contoh kod khusus.

1. Prapemprosesan data

Sebelum memproses data siri masa, biasanya kita perlu mempraproses data, termasuk pembersihan data, memproses nilai yang hilang dan outlier, dsb. Pandas ialah perpustakaan yang sangat berguna yang memudahkan proses prapemprosesan data siri masa.

Pertama, kita perlu mengimport perpustakaan yang diperlukan:

import pandas as pd
import numpy as np
Salin selepas log masuk

Seterusnya, kita boleh menggunakan Panda untuk membaca data siri masa, di mana lajur tarikh akan dihuraikan sebagai DatetimeIndex jenis:

data = pd.read_csv('data.csv', parse_dates=['date'], index_col='date')
Salin selepas log masuk

Setelah data dimuatkan ke dalam Pandas DataFrame, kami boleh membersihkan data, mengendalikan nilai dan outlier yang hilang, dsb. Sebagai contoh, kita boleh menggunakan kaedah dropna() untuk memadam nilai yang hilang: dropna()方法删除缺失值:

data = data.dropna()
Salin selepas log masuk

我们还可以使用fillna()方法填充缺失值:

data = data.fillna(method='ffill')
Salin selepas log masuk

二、数据探索

在对时间序列数据进行处理之后,我们通常需要对数据进行可视化和探索。这可以帮助我们了解数据的趋势、季节性和异常值等特征。Matplotlib和Seaborn是Python中常用的数据可视化库,可以帮助我们实现这一目标。

首先,我们需要导入所需的库:

import matplotlib.pyplot as plt
import seaborn as sns
Salin selepas log masuk

接下来,我们可以使用Matplotlib绘制时间序列数据的折线图:

plt.plot(data.index, data['value'])
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Time series data')
plt.show()
Salin selepas log masuk

我们还可以使用Seaborn绘制时间序列数据的箱线图:

sns.boxplot(data=data)
plt.xlabel('Variable')
plt.ylabel('Value')
plt.title('Boxplot of time series data')
plt.show()
Salin selepas log masuk

三、数据建模和预测

在探索时间序列数据后,我们通常需要对数据进行建模和预测。Statsmodels是Python中一个常用的统计模型库,可以帮助我们实现时间序列建模和预测。

首先,我们需要导入所需的库:

import statsmodels.api as sm
Salin selepas log masuk

接下来,我们可以使用Statsmodels中的ARIMA模型来对时间序列数据进行建模和预测。ARIMA(自回归移动平均模型)是一种常用的时间序列预测模型,通过拟合时间序列数据的自相关和部分自相关函数来预测未来的值。

下面是使用ARIMA模型进行时间序列预测的示例代码:

model = sm.tsa.ARIMA(data['value'], order=(1, 0, 0))
model_fit = model.fit(disp=False)
forecast = model_fit.forecast(steps=10)
Salin selepas log masuk

上述代码中,我们使用了ARIMA(1, 0, 0)模型来对时间序列数据进行建模,然后使用forecast()

plt.plot(forecast.index, forecast.values, label='Forecast')
plt.plot(data.index, data['value'], label='Actual')
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Time series forecast')
plt.legend()
plt.show()
Salin selepas log masuk

Kita juga boleh menggunakan kaedah fillna() untuk mengisi dalam nilai yang tiada: #🎜 🎜#
rmse = np.sqrt(np.mean((forecast.values - data['value'].values[-10:])**2))
print('RMSE: ', rmse)
Salin selepas log masuk

2 Penerokaan data

Selepas memproses data siri masa, kita biasanya perlu memvisualisasikan dan meneroka data. Ini boleh membantu kami memahami ciri seperti arah aliran, kemusim dan penyimpangan dalam data. Matplotlib dan Seaborn ialah perpustakaan visualisasi data yang biasa digunakan dalam Python yang boleh membantu kami mencapai matlamat ini.

Pertama, kita perlu mengimport perpustakaan yang diperlukan:

rrreee

Seterusnya, kita boleh menggunakan Matplotlib untuk melukis carta garisan data siri masa:

rreee#🎜 🎜 #Kami juga boleh menggunakan Seaborn untuk melukis plot kotak data siri masa:

rrreee

3 Pemodelan dan ramalan data#🎜🎜##🎜🎜#Selepas meneroka data siri masa, biasanya kita perlu Data. untuk pemodelan dan ramalan. Statsmodels ialah perpustakaan model statistik yang biasa digunakan dalam Python yang boleh membantu kami melaksanakan pemodelan dan peramalan siri masa. #🎜🎜##🎜🎜#Pertama, kita perlu mengimport perpustakaan yang diperlukan: #🎜🎜#rrreee#🎜🎜#Seterusnya, kita boleh menggunakan model ARIMA dalam Model Statistik untuk memodelkan dan meramalkan data siri masa. ARIMA (Model Purata Pergerakan Autoregresif) ialah model ramalan siri masa yang biasa digunakan yang meramalkan nilai masa hadapan dengan memasangkan autokorelasi dan fungsi autokorelasi separa bagi data siri masa. #🎜🎜##🎜🎜#Berikut ialah contoh kod untuk menggunakan model ARIMA untuk ramalan siri masa: #🎜🎜#rrreee#🎜🎜#Dalam kod di atas, kami menggunakan model ARIMA(1, 0, 0) untuk meramalkan siri masa Data dimodelkan, dan kemudian kaedah ramalan() digunakan untuk meramalkan nilai ​​untuk 10 titik masa seterusnya. #🎜🎜##🎜🎜# 4. Penilaian dan visualisasi keputusan #🎜🎜##🎜🎜# Selepas melakukan ramalan siri masa, kita perlu menilai dan menggambarkan hasilnya. Ini boleh membantu kami menilai ketepatan dan kebolehpercayaan model. #🎜🎜##🎜🎜#Kita boleh menggunakan Pandas dan Matplotlib untuk melukis carta garis hasil ramalan: #🎜🎜#rrreee#🎜🎜#Kita juga boleh menggunakan Pandas untuk mengira punca ralat min kuasa dua (RMSE) bagi keputusan ramalan: #🎜🎜 #rrreee#🎜🎜#Di atas ialah proses asas menggunakan pustaka analisis data dalam Python untuk memproses dan meramal data siri masa, termasuk prapemprosesan data, penerokaan data, pemodelan dan ramalan data, dan penilaian hasil dan visualisasi. Saya berharap kod sampel dalam artikel ini dapat membantu pembaca memahami dan menggunakan perpustakaan ini dengan lebih baik untuk memproses dan meramal data siri masa. #🎜🎜#

Atas ialah kandungan terperinci Cara memproses dan meramalkan data siri masa menggunakan perpustakaan analisis data dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!