Bagikan melalui


Referensi Teknis Algoritma Microsoft Time Series

Berlaku untuk: SQL Server 2019 dan Analysis Services Azure Analysis Services Fabric/Power BI Premium sebelumnya

Penting

Penambangan data tidak digunakan lagi pada SQL Server 2017 Analysis Services dan sekarang dihentikan di SQL Server 2022 Analysis Services. Dokumentasi tidak diperbarui untuk fitur yang tidak digunakan lagi dan dihentikan. Untuk mempelajari selengkapnya, lihat Kompatibilitas mundur Analysis Services.

Algoritma Microsoft Time Series mencakup dua algoritma terpisah untuk menganalisis rangkaian waktu:

  • Algoritma ARTXP, yang diperkenalkan pada SQL Server 2005 (9,x), dioptimalkan untuk memprediksi nilai kemungkinan berikutnya dalam seri.

  • Algoritma ARIMA ditambahkan pada SQL Server 2008 untuk meningkatkan akurasi prediksi jangka panjang.

Secara default, SQL Server Analysis Services menggunakan setiap algoritma secara terpisah untuk melatih model dan kemudian memadukan hasil untuk menghasilkan prediksi terbaik untuk jumlah prediksi variabel. Anda juga dapat memilih untuk hanya menggunakan salah satu algoritma, berdasarkan data dan persyaratan prediksi Anda. Di SQL Server 2008 Enterprise, Anda juga dapat menyesuaikan titik cut-off yang mengontrol perpaduan algoritma selama prediksi.

Topik ini memberikan informasi tambahan tentang bagaimana setiap algoritma diimplementasikan, dan bagaimana Anda dapat menyesuaikan algoritma dengan mengatur parameter untuk menyempurnakan hasil analisis dan prediksi.

Implementasi Algoritma Microsoft Time Series

Microsoft Research mengembangkan algoritma ARTXP asli yang digunakan pada SQL Server 2005, mendasari implementasi pada algoritma Pohon Keputusan Microsoft. Oleh karena itu, algoritma ARTXP dapat digambarkan sebagai model pohon regresif otomatis untuk mewakili data rangkaian waktu berkala. Algoritma ini berkaitan dengan jumlah variabel item sebelumnya dengan setiap item saat ini yang sedang diprediksi. Nama ARTXP berasal dari fakta bahwa metode pohon regresif otomatis (algoritma ART) diterapkan ke beberapa status sebelumnya yang tidak diketahui. Untuk penjelasan terperinci tentang algoritma ARTXP, lihat Model Pohon Regresif Otomatis untuk Analisis Time-Series.

Algoritma ARIMA ditambahkan ke algoritma Microsoft Time Series pada SQL Server 2008 untuk meningkatkan prediksi jangka panjang. Ini adalah implementasi dari proses untuk menghitung rata-rata bergerak terintegrasi otomatis yang dijelaskan oleh Box dan Jenkins. Metodologi ARIMA memungkinkan untuk menentukan dependensi dalam pengamatan yang diambil secara berurutan dalam waktu, dan dapat menggabungkan guncangan acak sebagai bagian dari model. Metode ARIMA juga mendukung musiman multiplikatif. Pembaca yang ingin mempelajari lebih lanjut tentang algoritma ARIMA didorong untuk membaca pekerjaan mani oleh Box dan Jenkins; bagian ini dimaksudkan untuk memberikan detail spesifik tentang bagaimana metodologi ARIMA telah diterapkan dalam algoritma Microsoft Time Series.

Secara default, algoritma Microsoft Time Series menggunakan kedua metode, ARTXP dan ARIMA, dan memadukan hasilnya untuk meningkatkan akurasi prediksi. Jika Anda hanya ingin menggunakan metode tertentu, Anda dapat mengatur parameter algoritma untuk hanya menggunakan ARTXP atau hanya ARIMA, atau untuk mengontrol bagaimana hasil algoritma digabungkan. Perhatikan bahwa algoritma ARTXP mendukung prediksi silang, tetapi algoritma ARIMA tidak. Oleh karena itu, prediksi silang hanya tersedia ketika Anda menggunakan campuran algoritma, atau ketika Anda mengonfigurasi model untuk hanya menggunakan ARTXP.

Memahami Urutan Perbedaan ARIMA

Bagian ini memperkenalkan beberapa terminologi yang diperlukan untuk memahami model ARIMA, dan membahas implementasi spesifik perbedaan dalam algoritma Microsoft Time Series. Untuk penjelasan lengkap tentang istilah dan konsep ini, kami merekomendasikan tinjauan Box dan Jenkins.

  • Istilah adalah komponen dari persamaan matematika. Misalnya, istilah dalam persamaan polinomial mungkin menyertakan kombinasi variabel dan konstanta.

  • Rumus ARIMA yang disertakan dalam algoritma Microsoft Time Series menggunakan istilah regresif otomatis dan rata-rata bergerak .

  • Model rangkaian waktu bisa stasioner atau nonstationary. Model stasioner adalah model yang kembali ke rata-rata, meskipun mungkin memiliki siklus, sedangkan model nonstationary tidak memiliki fokus kesetaraan dan tunduk pada varians atau perubahan yang lebih besar yang diperkenalkan oleh guncangan, atau variabel eksternal.

  • Tujuan dari perbedaan adalah untuk membuat rangkaian waktu stabil dan menjadi stasioner.

  • Urutan perbedaan menunjukkan berapa kali perbedaan antara nilai diambil untuk rangkaian waktu.

Algoritma Microsoft Time Series bekerja dengan mengambil nilai dalam seri data dan mencoba menyesuaikan data dengan pola. Jika seri data belum stasioner, algoritma menerapkan urutan perbedaan. Setiap peningkatan urutan perbedaan cenderung membuat rangkaian waktu lebih stasioner.

Misalnya, jika Anda memiliki rangkaian waktu (z1, z2, ..., zn) dan melakukan perhitungan menggunakan satu urutan perbedaan, Anda mendapatkan seri baru (y1, y2,...., yn-1), di mana yi = zi+1-zi. Ketika urutan perbedaan adalah 2, algoritma menghasilkan seri lain '(x1, x2, ..., xn-2)', berdasarkan seri y yang berasal dari persamaan urutan pertama. Jumlah perbedaan yang benar tergantung pada data. Satu urutan perbedaan paling umum dalam model yang menunjukkan tren konstan; urutan kedua perbedaan dapat menunjukkan tren yang bervariasi menurut waktu.

Secara default, urutan perbedaan yang digunakan dalam algoritma Microsoft Time Series adalah -1, yang berarti bahwa algoritma akan secara otomatis mendeteksi nilai terbaik untuk urutan perbedaan. Biasanya, nilai terbaik tersebut adalah 1 (ketika perbedaan diperlukan), tetapi dalam keadaan tertentu algoritma akan meningkatkan nilai tersebut menjadi maksimum 2.

Algoritma Microsoft Time Series menentukan urutan perbedaan ARIMA yang optimal dengan menggunakan nilai regregresi otomatis. Algoritma memeriksa nilai AR dan menetapkan parameter tersembunyi, ARIMA_AR_ORDER, yang mewakili urutan istilah AR. Parameter tersembunyi ini, ARIMA_AR_ORDER, memiliki rentang nilai dari -1 hingga 8. Pada nilai default -1, algoritma akan secara otomatis memilih urutan perbedaan yang sesuai.

Setiap kali nilai ARIMA_AR_ORDER lebih besar dari 1, algoritma mengalikan rangkaian waktu dengan istilah polinomial. Jika satu istilah rumus polinomial diselesaikan ke akar 1 atau mendekati 1, algoritma mencoba mempertahankan stabilitas model dengan menghapus istilah dan meningkatkan urutan perbedaan sebesar 1. Jika urutan perbedaan sudah maksimal, istilah dihapus dan urutan perbedaan tidak berubah.

Misalnya, jika nilai AR = 2, istilah polinomial AR yang dihasilkan mungkin terlihat seperti ini: 1 - 1.4B + .45B^2 = (1- .9B) (1- 0.5B). Perhatikan istilah (1- .9B) yang memiliki akar sekitar 0,9. Algoritma menghilangkan istilah ini dari rumus polinomial tetapi tidak dapat meningkatkan urutan perbedaan satu per satu karena sudah pada nilai maksimum 2.

Penting untuk dicatat bahwa satu-satunya cara agar Anda dapat memaksa perubahan dalam urutan perbedaan adalah dengan menggunakan parameter yang tidak didukung, ARIMA_DIFFERENCE_ORDER. Parameter tersembunyi ini mengontrol berapa kali algoritma melakukan perbedaan pada rangkaian waktu, dan dapat diatur dengan mengetik parameter algoritma kustom. Namun, kami tidak menyarankan Anda mengubah nilai ini kecuali Anda siap untuk bereksperimen dan terbiasa dengan perhitungan yang terlibat. Perhatikan juga bahwa saat ini tidak ada mekanisme, termasuk parameter tersembunyi, untuk memungkinkan Anda mengontrol ambang batas di mana peningkatan urutan perbedaan dipicu.

Terakhir, perhatikan bahwa rumus yang dijelaskan di atas adalah kasus yang disederhanakan, tanpa petunjuk musiman. Jika petunjuk musiman disediakan, maka istilah polinomial AR terpisah ditambahkan ke sebelah kiri persamaan untuk setiap petunjuk musiman, dan strategi yang sama diterapkan untuk menghilangkan istilah yang mungkin mendesstabilisasi seri yang berbeda.

Menyesuaikan Algoritma Microsoft Time Series

Algoritma Microsoft Time Series mendukung parameter berikut yang memengaruhi perilaku, performa, dan akurasi model penambangan yang dihasilkan.

Catatan

Algoritma Microsoft Time Series tersedia di semua edisi SQL Server; namun, beberapa fitur canggih, termasuk parameter untuk menyesuaikan analisis rangkaian waktu, hanya didukung dalam edisi SQL Server tertentu. Untuk daftar fitur yang didukung oleh edisi SQL Server, lihat Fitur yang Didukung oleh Edisi SQL Server.

Deteksi Musiman

Algoritma ARIMA dan ARTXP mendukung deteksi musiman atau periodisitas. SQL Server Analysis Services menggunakan transformasi Fast Fourier untuk mendeteksi musiman sebelum pelatihan. Namun, Anda dapat memengaruhi deteksi musiman, dan hasil analisis rangkaian waktu, dengan mengatur parameter algoritma.

  • Dengan mengubah nilai AUTODETECT_SEASONALITY, Anda dapat memengaruhi jumlah segmen waktu yang mungkin dihasilkan.

  • Dengan mengatur nilai atau beberapa nilai untuk PERIODICITY_HINT, Anda dapat memberikan algoritma dengan informasi tentang siklus yang diharapkan dalam data dan berpotensi meningkatkan akurasi deteksi.

Catatan

Algoritma ARTXP dan ARIMA sangat sensitif terhadap petunjuk musiman. Oleh karena itu, memberikan petunjuk yang salah dapat berdampak buruk pada hasil.

Memilih Algoritma dan Menentukan Campuran Algoritma

Secara default, atau saat Anda memilih opsi MIXED, SQL Server Analysis Services menggabungkan algoritma dan menetapkan berat yang sama. Namun, di Edisi Perusahaan, Anda dapat menentukan algoritma tertentu, atau Anda dapat menyesuaikan proporsi setiap algoritma dalam hasil dengan mengatur parameter yang membebani hasil terhadap prediksi jangka pendek atau jangka panjang. Secara default, parameter FORECAST_METHOD diatur ke MIXED, dan SQL Server Analysis Services menggunakan algoritma dan kemudian menimbang nilainya untuk memaksimalkan kekuatan setiap algoritma.

  • Untuk mengontrol pilihan algoritma, Anda mengatur parameter FORECAST_METHOD .

  • Jika Anda ingin menggunakan prediksi silang, Anda harus menggunakan ARTXP atau opsi MIXED karena ARIMA tidak mendukung prediksi silang.

  • Atur FORECAST_METHOD ke ARTXP jika Anda ingin mendukung prediksi jangka pendek.

  • Atur FORECAST_METHOD ke ARIMA jika Anda ingin meningkatkan prediksi jangka panjang.

Di Enterprise Edition, Anda juga dapat menyesuaikan bagaimana SQL Server Analysis Services mencampur kombinasi algoritma ARIMA dan ARTXP. Anda dapat mengontrol titik awal untuk campuran, dan tingkat perubahan dengan mengatur parameter PREDICTION_SMOOTHING :

  • Jika Anda mengatur PREDICTION_SMOOTHING ke 0, model hanya menggunakan ARTXP.

  • Jika Anda mengatur PREDICTION_SMOOTHING ke 1, model hanya menggunakan ARIMA.

  • Jika Anda mengatur PREDICTION_SMOOTHING ke nilai antara 0 dan 1, model menimbang algoritma ARTXP sebagai fungsi prediksi yang menurun secara eksponensial. Pada saat yang sama, model juga menimbang algoritma ARIMA sebagai pelengkap 1 dari bobot ARTXP. Model ini menggunakan normalisasi dan konstanta stabilisasi untuk menghaluskan kurva.

Secara umum, jika Anda memprediksi hingga 5 irisan waktu, ARTXP hampir selalu menjadi pilihan yang lebih baik. Namun, saat Anda meningkatkan jumlah irisan waktu untuk diprediksi, ARIMA biasanya berkinerja lebih baik.

Diagram berikut menggambarkan bagaimana model memadukan algoritma saat PREDICTION_SMOOTHING diatur ke nilai default, 0,5. ARIMA dan ARTXP ditimbang sama pada awalnya, tetapi ketika jumlah langkah prediksi meningkat, ARIMA ditimbang lebih berat.

kurva default untuk campuran kurva default algoritma rangkaian waktu

Sebaliknya, diagram berikut mengilustrasikan perpaduan algoritma saat PREDICTION_SMOOTHING diatur ke 0,2. Untuk langkah 0, model menimbang ARIMA sebagai 0,2 dan ARTXP sebagai 0,8. Setelah itu, berat ARIMA meningkat secara eksponensial dan berat ARTXP secara eksponensial menurun.

kurva pembuangan untuk model rangkaian waktu mencampur

Mengatur Parameter Algoritma

Tabel berikut ini menjelaskan parameter yang dapat digunakan dengan algoritma Microsoft Time Series.

Parameter Deskripsi
AUTO_DETECT_PERIODICITY Menentukan nilai numerik antara 0 dan 1 yang mendeteksi periodisitas. Defaultnya adalah 0,6.

Jika nilainya lebih dekat ke 0, periodisitas hanya terdeteksi untuk data yang sangat berkala.

Mengatur nilai ini lebih dekat ke 1 mendukung penemuan banyak pola yang hampir berkala dan pembuatan otomatis petunjuk periodisitas.

Catatan: Berurusan dengan banyak petunjuk berkala kemungkinan akan menyebabkan waktu pelatihan model yang jauh lebih lama, tetapi model yang lebih akurat.
COMPLEXITY_PENALTY Mengontrol pertumbuhan pohon keputusan. Defaultnya adalah 0,1.

Mengurangi nilai ini meningkatkan kemungkinan pemisahan. Meningkatkan nilai ini mengurangi kemungkinan pemisahan.

Catatan: Parameter ini hanya tersedia dalam beberapa edisi SQL Server.
FORECAST_METHOD Menentukan algoritma mana yang akan digunakan untuk analisis dan prediksi. Nilai yang mungkin adalah ARTXP, ARIMA, atau MIXED. Defaultnya adalah MIXED.
HISTORIC_MODEL_COUNT Menentukan jumlah model historis yang akan dibangun. Defaultnya adalah 1.

Catatan: Parameter ini hanya tersedia dalam beberapa edisi SQL Server.
HISTORICAL_MODEL_GAP Menentukan jeda waktu antara dua model bersejarah berturut-turut. Nilai defaultnya adalah 10. Nilai mewakili sejumlah unit waktu, di mana unit ditentukan oleh model.

Misalnya, mengatur nilai ini ke g menyebabkan model historis dibangun untuk data yang dipotong oleh irisan waktu pada interval g, 2*g, 3*g, dan sebagainya.

Catatan: Parameter ini hanya tersedia dalam beberapa edisi SQL Server.
INSTABILITY_SENSITIVITY Mengontrol titik di mana variansi prediksi melebihi ambang tertentu, setelah itu algoritma ARTXP menekan prediksi. Nilai default adalah 1.

Catatan: Parameter ini tidak berlaku untuk model yang hanya menggunakan ARIMA.

Nilai default 1 memberikan perilaku yang sama seperti pada SQL Server 2005 (9.x). SQL Server Analysis Services memantau penyimpangan standar yang dinormalisasi untuk setiap prediksi. Segera setelah nilai ini melebihi ambang batas untuk prediksi apa pun, algoritma rangkaian waktu mengembalikan NULL dan menghentikan proses prediksi.

Nilai 0 menghentikan deteksi ketidakstabilan. Ini berarti Bahwa Anda dapat membuat jumlah prediksi yang tak terbatas, terlepas dari variansnya.

Catatan: Parameter ini hanya dapat dimodifikasi di SQL Server Enterprise. Dalam SQL Server Standard, SQL Server Analysis Services hanya menggunakan nilai default 1.
MAXIMUM_SERIES_VALUE Menentukan nilai maksimum yang akan digunakan untuk prediksi. Parameter ini digunakan, bersama dengan MINIMUM_SERIES_VALUE, untuk membatasi prediksi ke beberapa rentang yang diharapkan. Misalnya, Anda dapat menentukan bahwa jumlah penjualan yang diprediksi untuk hari apa pun tidak boleh melebihi jumlah produk dalam inventori.

Catatan: Parameter ini hanya tersedia dalam beberapa edisi SQL Server.
MINIMUM_SERIES_VALUE Menentukan nilai minimum yang dapat diprediksi. Parameter ini digunakan, bersama dengan MAXIMUM_SERIES_VALUE, untuk membatasi prediksi ke beberapa rentang yang diharapkan. Misalnya, Anda dapat menentukan bahwa kuantitas penjualan yang diprediksi tidak boleh menjadi angka negatif.

Catatan: Parameter ini hanya tersedia dalam beberapa edisi SQL Server.
MINIMUM_SUPPORT Menentukan jumlah minimum irisan waktu yang diperlukan untuk menghasilkan pemisahan di setiap pohon rangkaian waktu. Nilai defaultnya adalah 10.
MISSING_VALUE_SUBSTITUTION Menentukan bagaimana celah dalam data historis diisi. Secara default, celah dalam data tidak diizinkan. Tabel berikut mencantumkan nilai yang mungkin untuk parameter ini:

Sebelumnya: Mengulangi nilai dari ilis waktu sebelumnya.

Rata-rata: Menggunakan rata-rata pemindahan irisan waktu yang digunakan dalam pelatihan.

Konstanta numerik: Menggunakan angka yang ditentukan untuk menggantikan semua nilai yang hilang.

Tidak Ada: Default. Mengganti nilai yang hilang dengan nilai yang diplot di sepanjang kurva model terlatih.



Perhatikan bahwa jika data Anda berisi beberapa seri, rangkaian tidak boleh memiliki tepi yang kokoh. Artinya, semua seri harus memiliki titik awal dan akhir yang sama.
SQL Server Analysis Services juga menggunakan nilai parameter ini untuk mengisi celah dalam data baru saat Anda melakukan PREDICTION JOIN pada model rangkaian waktu.
PERIODICITY_HINT Memberikan petunjuk algoritma tentang periodisitas data. Misalnya, jika penjualan bervariasi menurut tahun, dan satuan pengukuran dalam seri adalah bulan, periodisitasnya adalah 12. Parameter ini mengambil format {n [, n]}, di mana n adalah angka positif apa pun.

N dalam tanda kurung [] bersifat opsional dan dapat diulang sesering yang diperlukan. Misalnya, untuk memberikan beberapa petunjuk berkala untuk data yang disediakan setiap bulan, Anda dapat memasukkan {12, 3, 1} untuk mendeteksi pola untuk tahun, kuartal, dan bulan. Namun, periodisitas memiliki efek yang kuat pada kualitas model. Jika petunjuk yang Anda berikan berbeda dari periodisitas aktual, hasil Anda dapat terpengaruh dengan buruk.

Default adalah {1}.

Perhatikan bahwa kurung kurawal diperlukan. Selain itu, parameter ini memiliki jenis data string. Oleh karena itu, jika Anda mengetik parameter ini sebagai bagian dari pernyataan Ekstensi Penggalian Data (DMX), Anda harus mengapit angka dan kurung kurawal dalam tanda kutip.
PREDICTION_SMOOTHING Menentukan bagaimana model harus dicampur untuk mengoptimalkan prakiraan. Anda bisa mengetik nilai apa pun antara 0 dan 1 atau menggunakan salah satu nilai berikut:

0:
Menentukan bahwa prediksi hanya menggunakan ARTXP. Prakiraan dioptimalkan untuk prediksi yang lebih sedikit.

1: Menentukan bahwa prediksi hanya menggunakan ARIMA. Prakiraan dioptimalkan untuk banyak prediksi.

0.5: Default. Menentukan bahwa untuk prediksi kedua algoritma harus digunakan dan hasilnya dipadukan.



Saat melakukan smoothing prediksi, gunakan parameter FORECAST_METHOD untuk mengontrol pelatihan. Perhatikan bahwa parameter ini hanya tersedia dalam beberapa edisi SQL Server.

Bendera Pemodelan

Algoritma Microsoft Time Series mendukung bendera pemodelan berikut. Saat Anda membuat struktur penambangan atau model penambangan, Anda menentukan bendera pemodelan untuk menentukan bagaimana nilai di setiap kolom ditangani selama analisis. Untuk informasi selengkapnya, lihat Bendera Pemodelan (Penggalian Data).

Bendera Pemodelan Deskripsi
NOT_NULL Menunjukkan bahwa kolom tidak boleh berisi null. Kesalahan akan mengakibatkan jika Analysis Services mengalami null selama pelatihan model.

Berlaku untuk kolom struktur penambangan.
MODEL_EXISTENCE_ONLY Berarti bahwa kolom akan diperlakukan sebagai memiliki dua kemungkinan status: Hilang dan Ada. Null adalah nilai yang hilang.

Berlaku untuk kolom model penambangan.

Persyaratan

Model rangkaian waktu harus berisi kolom waktu kunci yang berisi nilai unik, kolom input, dan setidaknya satu kolom yang dapat diprediksi.

Kolom Input dan Dapat Diprediksi

Algoritma Microsoft Time Series mendukung jenis konten kolom input tertentu, jenis konten kolom yang dapat diprediksi, dan bendera pemodelan yang tercantum dalam tabel berikut.

Kolom Jenis konten
Atribut input Berkelanjutan, Kunci, Waktu Kunci, dan Tabel
Atribut yang dapat diprediksi Berkelanjutan, Tabel

Catatan

Jenis konten Siklis dan Berurutan didukung, tetapi algoritma memperlakukannya sebagai nilai diskrit dan tidak melakukan pemrosesan khusus.

Lihat juga

Algoritma Microsoft Time Series
Contoh Kueri Model Deret Waktu
Konten Model Penambangan untuk Model Deret Waktu (Analysis Services - Penggalian Data)