x13_auto_arima adalah algoritma yang digunakan untuk analisis deret waktu dengan pemilihan otomatis model ARIMA. Berdasarkan prosedur yang diimplementasikan oleh Gomez dan Maravall (1998) dalam TRMO (1996) dan revisi berikutnya, algoritma ini secara otomatis mengidentifikasi dan memilih parameter ARIMA optimal untuk menangani karakteristik musiman dan tren data. Proses ini menyederhanakan pembuatan model serta meningkatkan akurasi dan efisiensi prediksi.
Informasi Latar Belakang
Pemilihan x13_auto_arima didasarkan pada langkah-langkah berikut:
Estimasi Model Default
Untuk
frekuensi = 1, model default adalah(0,1,1).Untuk
frekuensi > 1, model default adalah(0,1,1)(0,1,1).Identifikasi Orde Pembedaan
Jika Anda telah menentukan parameter diff dan seasonalDiff, lewati langkah ini.
Gunakan
unit root testsuntuk menentukan perbedaan d dan perbedaan musiman D.Identifikasi Orde Model ARMA
Pilih model yang paling sesuai berdasarkan kriteria informasi Bayesian (BIC). Parameter maxOrder dan maxSeasonalOrder berlaku pada langkah ini.
Perbandingan Model Teridentifikasi dengan Model Default
Gunakan statistik Q Ljung-Box untuk membandingkan model. Jika kedua model tidak dapat diterima, gunakan model
(3,d,1)(0,D,1).Pemeriksaan Model Akhir
Untuk informasi lebih lanjut tentang ARIMA, lihat wiki. Catatan penggunaan algoritma:
Skala yang Didukung
Baris: maksimal 1.200 catatan data dalam satu grup
Kolom: satu kolom numerik
Metode Perhitungan Sumber Daya
Metode perhitungan default jika parameter groupColNames tidak ditentukan:
coreNum=1 memSizePerCore=4096Metode perhitungan default jika parameter groupColNames ditentukan:
coreNum = floor(Jumlah total baris/120.000) memSizePerCore=4096
Batasan
Komponen x13_auto_arima hanya dapat digunakan dengan sumber daya komputasi MaxCompute.
Konfigurasikan komponen
Metode 1: Konfigurasikan komponen di konsol PAI
Anda dapat mengonfigurasi parameter komponen x13_auto_arima di halaman pipeline dari Machine Learning Designer. Tabel berikut menjelaskan parameter tersebut.
Tab | Parameter | Deskripsi |
Fields Setting | Time Series Column | Wajib. Parameter ini hanya digunakan untuk mengurutkan nilai di kolom nilai. |
Value Column | Wajib. | |
Stratification Column | Opsional. Anda dapat memisahkan beberapa kolom dengan koma (,), seperti col0,col1. Deret waktu dibuat untuk setiap grup. | |
Parameters Setting | Start Date | Format yang didukung adalah tahun.musim. Contoh: 1986.1. |
Series Frequency | Nilainya harus bilangan bulat positif dalam rentang (0,12]. | |
Maximum of p and q | Nilainya harus bilangan bulat positif dalam rentang (0,4]. | |
Maximum of Seasonal p and q | Nilainya harus angka dalam rentang (0,2]. | |
Maximum of Difference d | Nilainya harus bilangan bulat positif dalam rentang (0,2]. | |
Maximum of Seasonal Difference d | Nilainya harus bilangan bulat positif dalam rentang (0,1]. | |
Difference d | Nilainya harus bilangan bulat positif dalam rentang (0,2]. Jika parameter diff dan maxDiff keduanya ditentukan, parameter maxDiff tidak berlaku. Parameter diff harus digunakan bersama dengan parameter seasonalDiff. | |
Seasonal Difference d | Nilainya harus bilangan bulat positif dalam rentang (0,1]. Jika parameter seasonalDiff dan maxSeasonalDiff keduanya ditentukan, parameter maxSeasonalDiff tidak berlaku. | |
predictNum | Jumlah prediksi. Misalnya, jika Anda menggunakan penjualan harian dari bulan lalu untuk memprediksi penjualan minggu baru, jumlah prediksi adalah 7. Jika Kolom Stratifikasi dipilih, setiap grup akan memiliki 7 prediksi. Nilainya harus bilangan bulat positif dalam rentang (0,120]. | |
Predicted Confidence Interval | Nilai default: 0,95. | |
Tolerance | Opsional. Nilai default: 1e-5. | |
Maximum Iterations | Nilainya harus bilangan bulat positif. Nilai default: 1500. | |
Execution Tuning | Cores | Jumlah inti. Secara default, sistem menentukan nilainya. |
Memory | Ukuran memori per inti. Unit: MB. |
Metode 2: Konfigurasikan komponen menggunakan perintah PAI
Anda dapat menggunakan CLI untuk mengonfigurasi parameter komponen. Gunakan skrip SQL untuk memanggil perintah PAI. Untuk informasi lebih lanjut, lihat SQL Script.
PAI -name x13_auto_arima
-project algo_public
-DinputTableName=pai_ft_x13_arima_input
-DseqColName=id
-DvalueColName=number
-Dstart=1949.1
-Dfrequency=12
-DpredictStep=12
-DoutputPredictTableName=pai_ft_x13_arima_out_predict2
-DoutputDetailTableName=pai_ft_x13_arima_out_detail2Parameter | Wajib | Deskripsi | Nilai Default |
inputTableName | Ya | Nama tabel input. | Tidak Ada |
inputTablePartitions | Tidak | Kolom fitur yang dipilih dari tabel input untuk pelatihan model. | Tabel Penuh |
seqColName | Ya | Kolom deret waktu. Parameter ini hanya digunakan untuk mengurutkan nilai di kolom nilai. | Tidak Ada |
valueColName | Ya | Kolom nilai. | Tidak Ada |
groupColNames | Tidak | Kolom stratifikasi. Anda dapat memisahkan beberapa kolom dengan koma (,), seperti col0,col1. Deret waktu dibuat untuk setiap grup. | Tidak Ada |
start | Tidak | Waktu mulai deret waktu. Nilainya harus string dalam format | 1.1 |
frequency | Tidak | Frekuensi deret waktu. Nilainya harus bilangan bulat positif dalam rentang (0,12]. Untuk informasi lebih lanjut, lihat Format deret waktu. | 12 null Nilai 12 menunjukkan 12 bulan (satu tahun). |
maxOrder | Tidak | Nilai maksimum p dan q. Nilainya harus bilangan bulat positif dalam rentang [0,4]. | 2 |
maxSeasonalOrder | Tidak | Nilai maksimum musiman p dan q. Nilainya harus bilangan bulat positif dalam rentang [0,2]. | 1 |
maxDiff | Tidak | Nilai maksimum perbedaan d. Nilainya harus bilangan bulat positif dalam rentang [0,2]. | 2 |
maxSeasonalDiff | Tidak | Nilai maksimum perbedaan musiman d. Nilainya harus bilangan bulat positif dalam rentang [0,1]. | 1 |
diff | Tidak | Perbedaan d. Nilainya harus bilangan bulat positif dalam rentang [0,2]. Jika parameter diff dan maxDiff keduanya ditentukan, parameter maxDiff tidak berlaku. Parameter diff harus digunakan bersama dengan parameter seasonalDiff. | -1 null Nilai -1 menunjukkan bahwa perbedaan d tidak ditentukan. |
seasonalDiff | Tidak | Perbedaan musiman d. Nilainya harus bilangan bulat positif dalam rentang [0,1]. Jika parameter seasonalDiff dan maxSeasonalDiff keduanya ditentukan, parameter maxSeasonalDiff tidak berlaku. | -1 null Nilai -1 menunjukkan bahwa perbedaan musiman d tidak ditentukan. |
maxiter | Tidak | Jumlah iterasi maksimum. Nilainya harus bilangan bulat positif. | 1500 |
tol | Tidak | Toleransi. Nilainya bertipe DOUBLE. | 1e-5 |
predictStep | Tidak | Jumlah entriprediksi. Nilainya harus bilangan bulat positif dalam rentang (0,365]. | 12 |
confidenceLevel | Tidak | Tingkat kepercayaan. Nilainya harus angka dalam rentang (0,1). | 0,95 |
outputPredictTableName | Ya | Tabel output. | Tidak Ada |
outputDetailTableName | Ya | Tabel detail. | Tidak Ada |
outputTablePartition | Tidak | Menentukan apakah akan mengekspor data ke partisi. | Tidak mengekspor data ke partisi |
coreNum | Tidak | Jumlah inti. Nilainya harus bilangan bulat positif. Parameter ini digunakan bersama dengan memSizePerCore. | Ditentukan oleh sistem |
memSizePerCore | Tidak | Ukuran memori per inti. Unit: MB. Nilainya harus bilangan bulat positif dalam rentang [1024,64 × 1024]. | Ditentukan oleh sistem |
lifecycle | Tidak | Lifecycle tabel output. | Tidak Ada |
Format deret waktu
Parameter start dan frequency menentukan dimensi waktu ts1 dan ts2 untuk kolom numerik.
Parameter frequency menentukan frekuensi data dalam periode unit, yaitu frekuensi ts2 dalam setiap ts1.
Nilai parameter start dalam format
n1.n2. Ini menunjukkan bahwa tanggal mulai adalah ts2 ke-n2 dalam ts1 ke-n1.
Satuan Waktu | ts1 | ts2 | frekuensi | mulai |
12 bulan/tahun | Tahun | Bulan | 12 | 1949.2 menunjukkan bulan kedua tahun 1949. |
4 kuartal/tahun | Tahun | Kuartal | 4 | 1949.2 menunjukkan kuartal kedua tahun 1949. |
7 hari/minggu | Minggu | Hari | 7 | 1949.2 menunjukkan hari kedua minggu ke-1949. |
1 | Sembarang satuan waktu | 1 | 1 | 1949.1 menunjukkan tahun 1949, atau hari ke-1949 atau jam ke-1949. |
Contoh: value=[1,2,3,5,6,7,8,9,10,11,12,13,14,15]
start=1949.3,frequency=12menunjukkan bahwa waktu unit adalah 12 bulan per tahun, dan prediksi dimulai dari Juni tahun 1950.tahun
Jan
Feb
Mar
Apr
Mei
Jun
Jul
Agu
Sep
Okt
Nov
Des
1949
1
2
3
4
5
6
7
8
9
10
1950
11
12
13
14
15
start=1949.3,frequency=4menunjukkan bahwa waktu unit adalah empat kuartal per tahun, dan prediksi dimulai dari kuartal kedua tahun 1953.tahun
Qtr1
Qtr2
Qtr3
Qtr4
1949
1
2
1950
3
4
5
6
1951
7
8
9
10
1952
11
12
13
14
1953
15
start=1949.3,frequency=7menunjukkan bahwa waktu unit adalah tujuh hari per minggu, dan prediksi dimulai dari hari keempat minggu ke-1951.minggu
Sun
Sen
Sel
Rab
Kam
Jum
Sab
1949
1
2
3
4
5
1950
6
7
8
9
10
11
12
1951
13
14
15
start=1949.1,frequency=1menunjukkan bahwa prediksi dimulai pada tahun 1963.00.siklus
p1
1949
1
1950
2
1951
3
1952
4
1953
5
1954
6
1955
7
1956
8
1957
9
1958
10
1959
11
1960
12
1961
13
1962
14
1963
15
Contoh
Siapkan data uji
Contoh ini menggunakan dataset AirPassengers.csv, yang mencatat jumlah penumpang penerbangan internasional setiap bulan dari tahun 1949 hingga tahun 1960. Untuk informasi lebih lanjut tentang dataset, lihat AirPassengers.
id | number |
1 | 112 |
2 | 118 |
3 | 132 |
4 | 129 |
5 | 121 |
... | ... |
Jalankan perintah Tunnel berikut pada klien MaxCompute untuk mengunggah data. Untuk informasi tentang cara menginstal dan mengonfigurasi klien MaxCompute, lihat Klien MaxCompute (odpscmd). Untuk informasi lebih lanjut tentang perintah Tunnel, lihat Perintah Tunnel.
create table pai_ft_x13_arima_input(id bigint,number bigint);
tunnel upload xxx/airpassengers.csv pai_ft_x13_arima_input -h true;Jalankan Perintah PAI
Anda dapat menggunakan Skrip SQL atau komponen ODPS SQL untuk menjalankan perintah PAI berikut:
PAI -name x13_auto_arima
-project algo_public
-DinputTableName=pai_ft_x13_arima_input
-DseqColName=id
-DvalueColName=number
-Dstart=1949.1
-Dfrequency=12
-DmaxOrder=4
-DmaxSeasonalOrder=2
-DmaxDiff=2
-DmaxSeasonalDiff=1
-DpredictStep=12
-DoutputPredictTableName=pai_ft_x13_arima_auto_out_predict
-DoutputDetailTableName=pai_ft_x13_arima_auto_out_detailDeskripsi Output
Tabel Output outputPredictTableName
Deskripsi Bidang
nama kolom
komentar
pdate
Tanggal prediksi.
forecast
Kesimpulan prediksi.
lower
Batas bawah hasil prediksi ketika tingkat kepercayaan ditentukan. Tingkat kepercayaan default adalah 0,95.
upper
Batas atas hasil prediksi ketika tingkat kepercayaan ditentukan. Tingkat kepercayaan default adalah 0,95.
Data yang Dihasilkan

Tabel Output outputDetailTableName
Deskripsi Bidang
nama kolom
komentar
key
model: model yang digunakan.
evaluation: hasil evaluasi.
parameters: parameter pelatihan.
log: log pelatihan.
summary
Detail penyimpanan.
Data yang Dihasilkan

FAQ
Mengapa hasil prediksi sama?
Jika terjadi pengecualian selama pelatihan model, model rata-rata dipanggil. Dalam hal ini, semua hasil prediksi adalah rata-rata dari data pelatihan. Pengecualian umum termasuk ketidakstabilan setelah pembelajaran perbedaan temporal, pelatihan tanpa konvergensi, dan varians 0. Anda dapat melihat file stderr node individual di Logview untuk mendapatkan informasi spesifik tentang pengecualian.
Bagaimana cara mengonfigurasi parameter komponen?
Anda perlu mengonfigurasi parameter p, d, q, sp, sd, dan sq untuk komponen x13_arima. Jika Anda tidak yakin dengan pengaturan parameter, kami sarankan Anda menggunakan komponen x13_auto_arima.
Anda hanya perlu menetapkan batas atas untuk komponen. Komponen secara otomatis menyesuaikan parameter.
Pesan kesalahan:
ERROR: Jumlah observasi setelah pembedaan dan/atau estimasi AR bersyarat adalah 9, yang kurang dari panjang seri minimum yang diperlukan untuk model yang diestimasi, 24Data pelatihan tidak mencukupi. Ubah parameter frekuensi atau tambahkan lebih banyak data pelatihan.
Pesan kesalahan:
ERROR: Orde operator MA terlalu besarDalam sebagian besar kasus, kesalahan ini terjadi karena data pelatihan tidak mencukupi.
Pesan kesalahan:
ERROR: Seri yang akan dimodelkan dan/atau disesuaikan secara musiman harus memiliki setidaknya 3 tahun data lengkapJika Anda telah menentukan parameter musiman, setidaknya tiga tahun data diperlukan.
Referensi
X-13-ARIMA adalah algoritma autoregressive integrated moving average (ARIMA) yang disesuaikan secara musiman berdasarkan algoritma X-13ARIMA-SEATS sumber terbuka. Anda dapat menggunakan komponen x13_arima untuk memproses data. Untuk informasi lebih lanjut, lihat x13_auto_arima.