Tham số ARIMA Python

Một phương pháp thống kê phổ biến và được sử dụng rộng rãi để dự báo chuỗi thời gian là mô hình ARIMA. Làm mịn hàm mũ và các mô hình ARIMA là hai cách tiếp cận được sử dụng rộng rãi nhất để dự báo chuỗi thời gian và cung cấp các cách tiếp cận bổ sung cho vấn đề. Trong khi các mô hình làm mịn hàm mũ dựa trên mô tả về xu hướng và tính thời vụ trong dữ liệu, thì các mô hình ARIMA nhằm mục đích mô tả sự tự tương quan trong dữ liệu

Để biết về tính thời vụ, vui lòng tham khảo blog này

Trước khi nói về mô hình ARIMA, hãy nói về khái niệm về tính dừng và kỹ thuật phân biệt chuỗi thời gian

đứng yên

Dữ liệu chuỗi thời gian cố định là dữ liệu có thuộc tính không phụ thuộc vào thời gian, Đó là lý do tại sao chuỗi thời gian có xu hướng hoặc có tính thời vụ không có tính dừng. xu hướng và tính thời vụ sẽ ảnh hưởng đến giá trị của chuỗi thời gian tại các thời điểm khác nhau. Mặt khác, đối với tính ổn định, bạn quan sát nó khi nào không quan trọng, nó sẽ giống nhau tại bất kỳ thời điểm nào. Nói chung, một chuỗi thời gian cố định sẽ không có các mẫu có thể dự đoán được trong dài hạn.

ARIMA là từ viết tắt của Auto-Regressive Integrated Moving Average. Đây là một lớp mô hình nắm bắt một tập hợp các cấu trúc thời gian tiêu chuẩn khác nhau trong dữ liệu chuỗi thời gian

Trong hướng dẫn này, Chúng tôi sẽ nói về cách phát triển mô hình ARIMA để dự báo chuỗi thời gian bằng Python

Mô hình ARIMA là một lớp mô hình thống kê để phân tích và dự báo dữ liệu chuỗi thời gian. Nó thực sự được đơn giản hóa về mặt sử dụng, Tuy nhiên, mô hình này thực sự mạnh mẽ

ARIMA là viết tắt của Trung bình di chuyển tích hợp tự hồi quy

Các tham số của mô hình ARIMA được xác định như sau

p. Số lượng quan sát độ trễ có trong mô hình, còn được gọi là thứ tự độ trễ.
d. Số lần mà các quan sát thô bị khác biệt, còn được gọi là mức độ khác biệt.
q. Kích thước của cửa sổ trung bình động, còn được gọi là thứ tự của trung bình động.
Một mô hình hồi quy tuyến tính được xây dựng bao gồm số lượng và loại thuật ngữ được chỉ định, đồng thời dữ liệu được chuẩn bị theo một mức độ khác biệt để làm cho nó ổn định, i. e. để loại bỏ các cấu trúc xu hướng và thời vụ ảnh hưởng tiêu cực đến mô hình hồi quy.

CÁC BƯỚC

1. Trực quan hóa dữ liệu chuỗi thời gian

2. Xác định xem ngày có cố định không

3. Vẽ biểu đồ tương quan và tương quan tự động

4. Xây dựng Mô hình ARIMA hoặc ARIMA theo mùa dựa trên dữ liệu

Hãy bắt đầu

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

Trong hướng dẫn này, tôi đang sử dụng tập dữ liệu bên dưới

df=pd.read_csv['time_series_data.csv']
df.head[]

# Updating the header
df.columns=["Month","Sales"]
df.head[]
df.describe[]
df.set_index['Month',inplace=True]

from pylab import rcParams
rcParams['figure.figsize'] = 15, 7
df.plot[]

nếu chúng ta nhìn vào biểu đồ trên thì chúng ta sẽ có thể tìm thấy xu hướng có thời điểm doanh số bán hàng cao và ngược lại. Điều đó có nghĩa là chúng ta có thể thấy dữ liệu đang theo thời vụ. Đối với ARIMA, điều đầu tiên chúng tôi làm là xác định xem dữ liệu là cố định hay không cố định. nếu dữ liệu không cố định, chúng tôi sẽ cố gắng làm cho chúng cố định, sau đó chúng tôi sẽ xử lý thêm

Hãy kiểm tra xem tập dữ liệu đã cho có cố định hay không, vì điều đó chúng tôi sử dụng adfuller

from statsmodels.tsa.stattools import adfuller

Tôi đã nhập adfuller bằng cách chạy đoạn mã trên

test_result=adfuller[df['Sales']]

Để xác định bản chất của dữ liệu, chúng tôi sẽ sử dụng giả thuyết không

H0. giả thuyết khống. Đó là một tuyên bố về dân số được cho là đúng hoặc được sử dụng để đưa ra một lập luận trừ khi nó có thể được chứng minh là không chính xác vượt quá sự nghi ngờ hợp lý

H1. Giả thuyết thay thế. Đó là một tuyên bố về dân số mâu thuẫn với H0 và những gì chúng tôi kết luận khi chúng tôi từ chối H0

#Hồ. Nó không cố định

Chúng tôi sẽ xem xét giả thuyết khống rằng dữ liệu không cố định và giả thuyết thay thế rằng dữ liệu là cố định

def adfuller_test[sales]:
    result=adfuller[sales]
    labels = ['ADF Test Statistic','p-value','#Lags Used','Number of Observations']
    for value,label in zip[result,labels]:
        print[label+' : '+str[value] ]

if result[1] . z. [0. 0250. 975]const22. 784512. 4051. 8370. 066-1. 52947. 098ar. L1. D. Bán hàng0. 43430. 0894. 8660. 0000. 2590. 609ma. L1. D. Bán hàng-1. 00000. 026-38. 5030. 000-1. 051-0. 949RootsRealImaginaryModulusFrequencyAR. 12. 3023+0. 0000j2. 30230. 0000MA. 11. 0000+0. 0000j1. 00000. 0000
df=pd.read_csv['time_series_data.csv']
df.head[]

# Updating the header
df.columns=["Month","Sales"]
df.head[]
df.describe[]
df.set_index['Month',inplace=True]

from pylab import rcParams
rcParams['figure.figsize'] = 15, 7
df.plot[]
3

df=pd.read_csv['time_series_data.csv']
df.head[]

# Updating the header
df.columns=["Month","Sales"]
df.head[]
df.describe[]
df.set_index['Month',inplace=True]

from pylab import rcParams
rcParams['figure.figsize'] = 15, 7
df.plot[]
4

df=pd.read_csv['time_series_data.csv']
df.head[]

# Updating the header
df.columns=["Month","Sales"]
df.head[]
df.describe[]
df.set_index['Month',inplace=True]

from pylab import rcParams
rcParams['figure.figsize'] = 15, 7
df.plot[]
5

Kết luận

Dự báo chuỗi thời gian thực sự hữu ích khi chúng ta phải đưa ra quyết định trong tương lai hoặc chúng ta phải phân tích, chúng ta có thể nhanh chóng thực hiện điều đó bằng ARIMA, có rất nhiều Mô hình khác để chúng ta có thể thực hiện dự báo chuỗi thời gian nhưng ARIMA thực sự dễ hiểu

Tôi hy vọng bài viết này sẽ giúp ích cho bạn và tiết kiệm được nhiều thời gian. để tôi biết nếu bạn có bất kỳ sự gợi ý nào

Python tìm thông số ARIMA như thế nào?

Phương pháp này bao gồm các bước sau. .
Chia tập dữ liệu thành tập huấn luyện và kiểm tra
Đi bộ các bước thời gian trong tập dữ liệu thử nghiệm. Đào tạo một mô hình ARIMA. Đưa ra dự đoán một bước. Lưu trữ dự đoán;
Tính điểm lỗi cho dự đoán so với giá trị dự kiến

Các thông số của mô hình ARIMA là gì?

Thông số ARIMA . số lượng quan sát độ trễ trong mô hình; . p: the number of lag observations in the model; also known as the lag order. d. số lần các quan sát thô khác nhau; . q. kích thước của cửa sổ trung bình động; .

Tham số p xác định điều gì trong mô hình ARIMA?

ARIMA [p, d, q] . ” the number of autoregressive terms or the number of “lag observations.” Nó còn được gọi là “thứ tự trễ” và nó xác định kết quả của mô hình bằng cách cung cấp các điểm dữ liệu bị trễ.

Bạn sẽ xác định các tham số ARIMA PD và Q như thế nào?

Vẽ biểu đồ tự tương quan một phần [ACF] của dữ liệu . Điều này sẽ giúp chúng tôi tìm giá trị của p vì điểm giới hạn của PACF là p. Vẽ đồ thị tự tương quan [ACF] của dữ liệu. Điều này sẽ giúp chúng tôi tìm giá trị của q vì điểm giới hạn của ACF là q.

Chủ Đề