ARIMA mã Python

ARIMA là một Kỹ thuật dự báo và sử dụng các giá trị trong quá khứ của một chuỗi để dự báo các giá trị sắp tới. Trực giác cơ bản về thuật toán có thể được phát triển bằng cách xem qua bài đăng trên blog được đề cập bên dưới mà tôi đã viết trong Phần 1 của quá trình khám phá ARIMA của mình

Hiểu dự báo ARIMA

Khi nói đến dự báo, ARIMA thường là thuật toán được lựa chọn đầu tiên. Chúng ta hãy cố gắng hiểu ngắn gọn những gì…

etqadkhan23. Trung bình. com

Bộ truyện tôi đang sử dụng có thể được tải xuống từ đây. https. //lái xe. Google. com/file/d/1W8K92lQ00Zt6J7qJnLKH4yp7MddIVBsR/view?usp=sharing

Điều đầu tiên là kiểm tra tính dừng trong dữ liệu. Tính ổn định sẽ được kiểm tra bằng Augmented Dicky Fuller Test. Giả thuyết vô hiệu cho thử nghiệm này là Chuỗi thời gian không cố định. Vì vậy, nếu giá trị p nhỏ hơn 0. 05, chúng ta sẽ bác bỏ giả thuyết không và tin rằng chuỗi này là tĩnh

Hãy bắt đầu bằng cách nhập các mô-đun thư viện

import pandas as pd
from statsmodels.tsa.stattools import adfuller
import matplotlib.pyplot as plt

Đọc csv và sau đó vẽ đồ thị để xem xu hướng trông như thế nào

df = pd.read_csv[r'''shampoo_dataset.csv''']plt.plot[df.Month, df.Sales]
plt.xticks[rotation=90]

Hãy xem kết quả tại Thử nghiệm ADF để hiểu về hoạt động của tính Văn phòng phẩm

result = adfuller[df.Sales.dropna[]]
print['ADF Statistic: %f' % result[0]]
print['p-value: %f' % result[1]]

Bây giờ vì giá trị cao Đáng kể, chúng tôi sẽ chênh lệch chuỗi để đạt được Statonarity

Tìm thứ tự khác biệt

Chúng ta sẽ vẽ đồ thị Autocorrelation để hiểu xu hướng. Nếu biểu đồ ACF hiển thị các giá trị dương đối với một số độ trễ đáng kể, thì điều đó có nghĩa là chuỗi cần có sự khác biệt hơn nữa. Mặt khác, nếu nó chuyển thành giá trị âm từ chính độ trễ đầu tiên, chúng ta có thể đã chênh lệch quá mức. Vì vậy, chúng ta hãy vẽ đồ thị ACF cho chuỗi khác biệt. ACF là mối tương quan giữa bước thời gian hiện tại và quan sát với các bước thời gian trước đó

from statsmodels.graphics.tsaplots import plot_acf, plot_pacffig, axes = plt.subplots[3, 2, sharex=True]
axes[0, 0].plot[df.Sales]; axes[0, 0].set_title['Original Series']
plot_acf[df.Sales, ax=axes[0, 1]]
# 1st Differencing
axes[1, 0].plot[df.Sales.diff[]]; axes[1, 0].set_title['1st Order Differencing']
plot_acf[df.Sales.diff[].dropna[], ax=axes[1, 1]]
# 2nd Differencing
axes[2, 0].plot[df.Sales.diff[].diff[]]; axes[2, 0].set_title['2nd Order Differencing']
plot_acf[df.Sales.diff[].diff[].dropna[], ax=axes[2, 1]]
plt.show[]

Chúng ta có thể thấy rằng sự khác biệt của bậc 1 đang giúp chúng ta làm cho chuỗi dừng, vì vậy hãy chọn d = 1

Tìm thuật ngữ AR

Chúng ta sẽ xem xét các Lô tự tương quan một phần để hiểu các thuật ngữ AR. Mối tương quan giữa hai bước thời gian trong một chuỗi sao cho chúng tương quan với các bước thời gian khác. Ví dụ: thời tiết hôm nay phụ thuộc vào ngày hôm qua và thời tiết ngày hôm qua phụ thuộc vào ngày hôm sau. Vì vậy, PACF của ngày hôm qua sẽ là mối tương quan giữa ngày hôm nay và ngày hôm qua sau khi loại bỏ ảnh hưởng của ngày hôm kia

fig, axes = plt.subplots[1, 2, sharex=True]
axes[0].plot[df.Sales.diff[]]; axes[0].set_title['1st Differencing']
axes[1].set[ylim=[0,5]]
plot_pacf[df.Sales.diff[].dropna[], ax=axes[1]]
plt.show[]

Như chúng ta thấy, độ trễ nằm dưới giới hạn đáng kể ngay lập tức vào độ trễ, vì vậy chúng ta hãy tiếp tục và đặt p = 1 để đơn giản

Tìm thuật ngữ MA

Chúng tôi sẽ xem xét lại các thuật ngữ ACF để tìm thuật ngữ MA. Giá trị của thuật ngữ MA cho biết giá trị nào cần thiết để loại bỏ bất kỳ sự tự tương quan nào trong chuỗi

fig, axes = plt.subplots[1, 2, sharex=True]
axes[0].plot[df.Sales.diff[]]; axes[0].set_title['1st Differencing']
axes[1].set[ylim=[0,1.2]]
plot_acf[df.Sales.diff[].dropna[], ax=axes[1]]

plt.show[]

Thứ tự trễ 1 vượt quá giới hạn đáng kể, nhưng đối với thứ tự trễ 2 thì không sao. Chúng ta hãy chọn thuật ngữ MA và đặt q = 2

Tòa nhà mô hình

Hãy để chúng tôi xây dựng mô hình và phân tích xem các giá trị đã chuyển thành mô hình tốt như thế nào

from statsmodels.tsa.arima_model import ARIMA
# ARIMA order [p,d,q]
model = ARIMA[df.Sales, order=[1,1,2]]
model_fit = model.fit[disp=0]
print[model_fit.summary[]]

Mô hình có thể được cải tiến hơn nữa và có thể thực hiện nhiều điều chỉnh trên mô hình, tuy nhiên, một điểm cần lưu ý là kích thước nhỏ của sê-ri và do đó hạn chế kết quả chính xác

Hãy để chúng tôi dự báo và cũng tìm kiếm độ chính xác,

model_fit.plot_predict[dynamic=False]
plt.show[]

Kết quả không khả quan, nhưng thật tốt khi biết được cách ARIMA hoạt động. Hãy cùng kiểm tra số liệu chính xác nhanh để xem mô hình có thể dự đoán các giá trị trong tương lai tốt như thế nào

________số 8

MAPE là 17. 99, điều đó có nghĩa là độ chính xác của mô hình là 82. 11%

Tôi hy vọng hướng dẫn này cung cấp một chút ý tưởng về cách sử dụng ARIMA. Chúng ta có thể thực hiện theo cách của mình trong thuật toán bằng cách sử dụng mã có tại đây. Tôi sẽ chọn một bộ dữ liệu tốt hơn vào lần tới. Cảm ơn đã đọc, đánh giá cao

Làm cách nào để tạo mô hình ARIMA bằng Python?

Xây dựng mô hình ARIMA .
nhập numpy dưới dạng np, pandas dưới dạng pd
từ mô hình thống kê. tsa. arima_model nhập ARIMA
# nhập dữ liệu
dữ liệu của tôi = pd. read_csv['mydataset. .
# Tạo mô hình ARIMA
mymodel = ARIMA[mydata. giá trị, thứ tự = [1, 1, 2]]
modelfit = mymodel. phù hợp [phân tán = 0]
in [mô hình phù hợp. tóm lược[]]

Làm cách nào để sử dụng ARIMA để dự báo trong Python?

Đó là một mô hình tuyến tính tương quan với độ trễ, lỗi và tính ổn định trong quá khứ của một chuỗi để tạo ra một lý thuyết về các thuộc tính thống kê cơ bản của dữ liệu. Nó sử dụng thông tin đó để dự đoán các giá trị trong tương lai. Một cách phổ biến để triển khai mô hình ARIMA trong Python là sử dụng mô hình thống kê .

Làm cách nào để tạo mô hình ARIMA để dự báo chuỗi thời gian trong Python?

Trực quan hóa dữ liệu chuỗi thời gian
Xác định xem ngày có cố định không
Vẽ biểu đồ tương quan và tương quan tự động
Xây dựng Mô hình ARIMA hoặc ARIMA theo mùa dựa trên dữ liệu

Làm cách nào để diễn giải kết quả mô hình ARIMA bằng Python?

Diễn giải các kết quả chính cho ARIMA .
Bước 1. Xác định xem mỗi thuật ngữ trong mô hình có ý nghĩa hay không
Bước 2. Xác định mức độ phù hợp của mô hình với dữ liệu
Bước 3. Xác định xem mô hình của bạn có đáp ứng giả định của phân tích hay không

Chủ Đề