Bagikan melalui


Contoh Kueri Model Deret Waktu

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

Penting

Penambangan data tidak digunakan lagi di 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.

Saat Anda membuat kueri terhadap model penggalian data, Anda bisa membuat kueri konten, yang menyediakan detail tentang pola yang ditemukan dalam analisis, atau Anda bisa membuat kueri prediksi, yang menggunakan pola dalam model untuk membuat prediksi untuk data baru. Misalnya, kueri konten untuk model rangkaian waktu mungkin memberikan detail tambahan tentang struktur berkala yang terdeteksi, sementara kueri prediksi mungkin memberi Anda prediksi untuk 5-10 irisan waktu berikutnya. Anda juga dapat mengambil metadata tentang model dengan menggunakan kueri.

Bagian ini menjelaskan cara membuat kedua jenis kueri untuk model yang didasarkan pada algoritma Microsoft Time Series.

Kueri Konten

Mengambil Petunjuk Periodisitas untuk Model

Mengambil Persamaan untuk Model ARIMA

Mengambil Persamaan untuk Model ARTxp

Kueri Prediksi

Memahami Kapan Harus Mengganti dan Kapan Harus Memperpanjang Data Rangkaian Waktu

Membuat Prediksi dengan EXTEND_MODEL_CASES

Membuat Prediksi dengan REPLACE_MODEL_CASES

Penggantian Nilai yang Hilang dalam Model Deret Waktu

Mendapatkan Informasi tentang Model Deret Waktu

Kueri konten model dapat memberikan informasi dasar tentang model, seperti parameter yang digunakan saat model dibuat, waktu model terakhir diproses. Contoh berikut mengilustrasikan sintaks dasar untuk mengkueri konten model dengan menggunakan himpunan baris skema penggalian data.

Kueri Sampel 1: Mengambil Petunjuk Periodisitas untuk Model

Anda dapat mengambil periode yang ditemukan dalam rangkaian waktu dengan mengkueri pohon ARIMA atau pohon ARTXP. Namun, periode dalam model yang selesai mungkin tidak sama dengan periode yang Anda tentukan sebagai petunjuk saat membuat model. Untuk mengambil petunjuk yang disediakan sebagai parameter saat membuat model, Anda dapat mengkueri kumpulan baris skema konten model penambangan dengan menggunakan pernyataan DMX berikut:

SELECT MINING_PARAMETERS   
FROM $system.DMSCHEMA_MINING_MODELS  
WHERE MODEL_NAME = '<model name>'  

Hasil parsial:

MINING_PARAMETERS
COMPLEXITY_PENALTY=0.1,MINIMUM_SUPPORT=10,PERIODICITY_HINT={1,3},....

Petunjuk periodisitas default adalah {1} dan muncul di semua model; model sampel ini dibuat dengan petunjuk tambahan yang mungkin tidak ada dalam model akhir.

Catatan

Hasilnya telah dipotok di sini untuk keterbacaan.

Kueri Sampel 2: Mengambil Persamaan untuk Model ARIMA

Anda dapat mengambil persamaan untuk model ARIMA dengan mengkueri simpul apa pun di pohon individual. Ingatlah bahwa setiap pohon dalam model ARIMA mewakili periodisitas yang berbeda, dan jika ada beberapa seri data, setiap seri data akan memiliki sekumpulan pohon berkalanya sendiri. Oleh karena itu, untuk mengambil persamaan untuk seri data tertentu, Anda harus mengidentifikasi pohon terlebih dahulu.

Misalnya, awalan TA memberi tahu Anda bahwa simpul adalah bagian dari pohon ARIMA, sedangkan awalan TS digunakan untuk pohon ARTXP. Anda dapat menemukan semua pohon akar ARIMA dengan mengkueri konten model untuk simpul dengan nilai NODE_TYPE 27. Anda juga dapat menggunakan nilai ATTRIBUTE_NAME untuk menemukan simpul akar ARIMA untuk seri data tertentu. Contoh kueri ini menemukan simpul ARIMA yang mewakili jumlah yang dijual dari model R250 di wilayah Eropa.

SELECT NODE_UNIQUE_NAME  
FROM Forecasting.CONTENT  
WHERE ATTRIBUTE_NAME = 'R250 Europe: Quantity"  
AND NODE_TYPE = 27  

Dengan menggunakan ID simpul ini, Anda dapat mengambil detail tentang persamaan ARIMA untuk pohon ini. Pernyataan DMX berikut mengambil bentuk pendek dari persamaan ARIMA untuk seri data. Ini juga mengambil intersepsi dari tabel berlapis, NODE_DISTRIBUTION. Dalam contoh ini, persamaan diperoleh dengan mereferensikan ID unik simpul TA00000007. Namun, Anda mungkin harus menggunakan ID simpul yang berbeda, dan Anda mungkin mendapatkan hasil yang sedikit berbeda dari model Anda.

SELECT FLATTENED NODE_CAPTION as [Short equation],   
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE   
FROM NODE_DISTRIBUTION) as t  
FROM Forecasting.CONTENT  
WHERE NODE_NAME = 'TA00000007'  

Contoh hasil:

Persamaan pendek t.ATTRIBUTE_NAME t.ATTRIBUTE_VALUE
ARIMA (2,0,7)x(1,0,2)(12) R250 Eropa:Kuantitas(Intersepsi) 15.24....
ARIMA (2,0,7)x(1,0,2)(12) R250 Eropa:Kuantitas(Periodisitas) 1
ARIMA (2,0,7)x(1,0,2)(12) R250 Eropa:Kuantitas(Periodisitas) 12

Untuk informasi selengkapnya tentang cara menginterpretasikan informasi ini, lihat Menambang Konten Model untuk Model Deret Waktu (Analysis Services - Penggalian Data).

Kueri Sampel 3: Mengambil Persamaan untuk Model ARTXP

Untuk model ARTxp, informasi yang berbeda disimpan di setiap tingkat pohon. Untuk informasi selengkapnya tentang struktur model ARTxp, dan cara menginterpretasikan informasi dalam persamaan, lihat Menambang Konten Model untuk Model Deret Waktu (Analysis Services - Penggalian Data).

Pernyataan DMX berikut mengambil informasi bagian dari pohon ARTxp yang mewakili kuantitas penjualan untuk model R250 di Eropa.

Catatan

Nama kolom tabel berlapis, VARIANCE, harus diapit dalam tanda kurung siku untuk membedakannya dari kata kunci yang dicadangkan dengan nama yang sama. Kolom tabel berlapis, PROBABILITAS dan DUKUNGAN, tidak disertakan karena kosong dalam banyak kasus.

SELECT NODE_CAPTION as [Split information],   
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE,  
   [VARIANCE]  
   FROM NODE_DISTRIBUTION) AS t  
FROM Forecasting.CONTENT  
WHERE NODE_ATTRIBUTE_NAME = 'R250 Europe:Quantity'  
AND NODE_TYPE = 15  

Untuk informasi selengkapnya tentang cara menginterpretasikan informasi ini, lihat Menambang Konten Model untuk Model Deret Waktu (Analysis Services - Penggalian Data).

Membuat Prediksi pada Model Deret Waktu

Mulai SQL Server 2008 Enterprise, Anda dapat menambahkan data baru ke model rangkaian waktu dan secara otomatis memasukkan data baru ke dalam model. Anda menambahkan data baru ke model penambangan rangkaian waktu dengan salah satu dari dua cara:

  • Gunakan PREDICTION JOIN untuk menggabungkan data di sumber eksternal ke data pelatihan.

  • Gunakan kueri prediksi singleton untuk menyediakan data satu irama sekalian. Untuk informasi tentang cara membuat kueri prediksi database tunggal, lihat Alat Kueri Penggalian Data.

Memahami Perilaku Operasi Ganti dan Perpanjang

Saat menambahkan data baru ke model rangkaian waktu, Anda dapat menentukan apakah akan memperluas atau mengganti data pelatihan:

  • Memperpanjang: Saat Anda memperluas seri data, SQL Server Analysis Services menambahkan data baru di akhir data pelatihan yang ada. Jumlah kasus pelatihan juga meningkat.

    Memperluas kasus model berguna untuk terus memperbarui model dengan data baru. Misalnya, jika Anda ingin membuat set pelatihan tumbuh dari waktu ke waktu, Anda cukup memperluas model.

    Untuk memperluas data, Anda membuat PREDICTION JOIN pada model rangkaian waktu, menentukan sumber data baru, dan menggunakan argumen EXTEND_MODEL_CASES .

  • Menggantikan: Saat Anda mengganti data dalam seri data, SQL Server Analysis Services menyimpan model terlatih, tetapi menggunakan nilai data baru untuk menggantikan beberapa atau semua kasus pelatihan yang ada. Oleh karena itu, ukuran data pelatihan tidak pernah berubah, tetapi kasus itu sendiri terus diganti dengan data yang lebih baru. Jika Anda menyediakan cukup data baru, Anda dapat mengganti data pelatihan dengan seri yang sama sekali baru.

    Mengganti kasus model berguna saat Anda ingin melatih model pada satu set kasus lalu menerapkan model tersebut ke seri data yang berbeda.

    Untuk mengganti data, Anda membuat PREDICTION JOIN pada model rangkaian waktu, menentukan sumber data baru, dan menggunakan argumen REPLACE_MODEL_CASES .

Catatan

Anda tidak dapat membuat prediksi historis saat menambahkan data baru.

Terlepas dari apakah Anda memperluas atau mengganti data pelatihan, prediksi selalu dimulai pada stempel waktu yang mengakhiri set pelatihan asli. Dengan kata lain, jika data baru Anda berisi irisan waktu n, dan Anda meminta prediksi untuk langkah waktu 1 hingga n, prediksi akan bertepatan dengan periode yang sama dengan data baru, dan Anda tidak akan mendapatkan prediksi baru.

Untuk mendapatkan prediksi baru untuk periode waktu yang tidak tumpang tindih dengan data baru, Anda harus memulai prediksi pada irisan waktu n+1, atau memastikan bahwa Anda meminta irisan waktu tambahan.

Misalnya, asumsikan bahwa model yang ada memiliki data senilai enam bulan. Anda ingin memperpanjang model ini dengan menambahkan angka penjualan dari tiga bulan terakhir. Pada saat yang sama, Anda ingin membuat prediksi tentang tiga bulan ke depan. Untuk mendapatkan hanya prediksi baru saat Anda menambahkan data baru, tentukan titik awal sebagai iringan waktu 4, dan titik akhir sebagai iringan waktu 7. Anda juga dapat meminta total enam prediksi, tetapi irisan waktu untuk tiga pertama akan tumpang tindih dengan data baru yang baru saja ditambahkan.

Untuk contoh kueri dan informasi selengkapnya tentang sintaks untuk menggunakan REPLACE_MODEL_CASES dan EXTEND_MODEL_CASES, lihat PredictTimeSeries (DMX).

Membuat Prediksi dengan EXTEND_MODEL_CASES

Perilaku prediksi berbeda tergantung pada apakah Anda memperluas atau mengganti kasus model. Saat Anda memperluas model, data baru dilampirkan ke akhir seri dan ukuran set pelatihan meningkat. Namun, irisan waktu yang digunakan untuk kueri prediksi selalu dimulai di akhir seri asli. Oleh karena itu, jika Anda menambahkan tiga titik data baru dan meminta enam prediksi, tiga prediksi pertama mengembalikan tumpang tindih dengan data baru. Dalam hal ini, SQL Server Analysis Services mengembalikan poin data baru yang sebenarnya alih-alih membuat prediksi, sampai semua titik data baru habis. Kemudian, SQL Server Analysis Services membuat prediksi berdasarkan seri komposit.

Perilaku ini memungkinkan Anda menambahkan data baru, lalu menampilkan angka penjualan aktual Anda dalam bagan prediksi, alih-alih melihat proyeksi.

Misalnya, untuk menambahkan tiga poin data baru dan membuat tiga prediksi baru, Anda akan melakukan hal berikut:

  • Buat PREDICTION JOIN pada model rangkaian waktu, dan tentukan sumber data baru tiga bulan.

  • Meminta prediksi untuk enam irisan waktu. Untuk melakukan ini, tentukan 6 irisan waktu, di mana titik awal adalah irisan waktu 1, dan titik akhirnya adalah irisan waktu 7. Ini hanya berlaku untuk EXTEND_MODEL_CASES.

  • Untuk hanya mendapatkan prediksi baru, Anda menentukan titik awal sebagai 4 dan titik akhir sebagai 7.

  • Anda harus menggunakan argumen EXTEND_MODEL_CASES.

    Angka penjualan aktual dikembalikan untuk tiga irisan waktu pertama, dan prediksi berdasarkan model yang diperpanjang dikembalikan untuk tiga irisan waktu berikutnya.

Membuat Prediksi dengan REPLACE_MODEL_CASES

Saat Anda mengganti kasus dalam model, ukuran model tetap sama tetapi SQL Server Analysis Services menggantikan kasus individual dalam model. Ini berguna untuk prediksi silang dan skenario di mana mempertahankan himpunan data pelatihan pada ukuran yang konsisten penting.

Misalnya, salah satu toko Anda memiliki data penjualan yang tidak mencukup. Anda dapat membuat model umum dengan rata-rata penjualan untuk semua toko di wilayah tertentu lalu melatih model. Kemudian, untuk membuat prediksi untuk toko tanpa data penjualan yang memadai, Anda membuat PREDICTION JOIN pada data penjualan baru hanya untuk penyimpanan tersebut. Ketika Anda melakukan ini, SQL Server Analysis Services menyimpan pola yang berasal dari model regional, tetapi mengganti kasus pelatihan yang ada dengan data dari penyimpanan individual. Akibatnya, nilai prediksi Anda akan lebih dekat ke garis tren untuk masing-masing toko.

Saat Anda menggunakan argumen REPLACE_MODEL_CASES, SQL Server Analysis Services terus menambahkan kasus baru ke akhir kumpulan kasus dan menghapus angka yang sesuai dari awal kumpulan kasus. Jika Anda menambahkan lebih banyak data baru daripada yang ada di set pelatihan asli, SQL Server Analysis Services membuang data paling awal. Jika Anda menyediakan nilai baru yang memadai, prediksi dapat didasarkan pada data yang benar-benar baru.

Misalnya, Anda melatih model Anda pada himpunan data kasus yang berisi 1000 baris. Anda kemudian menambahkan 100 baris data baru. SQL Server Analysis Services menghilangkan 100 baris pertama dari set pelatihan dan menambahkan 100 baris data baru ke akhir set dengan total 1000 baris. Jika Anda menambahkan 1100 baris data baru, hanya 1000 baris terbaru yang digunakan.

Berikut adalah contoh lain. Untuk menambahkan data senilai tiga bulan baru dan membuat tiga prediksi baru, Anda akan melakukan tindakan berikut:

  • Buat PREDICTION JOIN pada model rangkaian waktu dan gunakan argumen REPLACE_MODEL_CASE .

  • Tentukan sumber data baru tiga bulan. Data ini mungkin berasal dari sumber yang sama sekali berbeda dari data pelatihan asli.

  • Meminta prediksi untuk enam irisan waktu. Untuk melakukan ini, tentukan 6 irisan waktu, atau tentukan titik awal sebagai irisan waktu 1, dan titik akhir sebagai irisan waktu 7.

    Catatan

    Tidak seperti EXTEND_MODEL_CASES, Anda tidak dapat mengembalikan nilai yang sama dengan yang Anda tambahkan sebagai data input. Keenam nilai yang dikembalikan adalah prediksi yang didasarkan pada model yang diperbarui, yang mencakup data lama dan baru.

    Catatan

    Dengan REPLACE_MODEL_CASES, mulai dari tanda waktu 1 Anda mendapatkan prediksi baru berdasarkan data baru, yang menggantikan data pelatihan lama.

Untuk contoh kueri dan informasi selengkapnya tentang sintaks untuk menggunakan REPLACE_MODEL_CASES dan EXTEND_MODEL_CASES, lihat PredictTimeSeries (DMX).

Penggantian Nilai yang Hilang dalam Model Deret Waktu

Saat Anda menambahkan data baru ke model rangkaian waktu dengan menggunakan pernyataan PREDICTION JOIN , himpunan data baru tidak boleh memiliki nilai yang hilang. Jika ada seri yang tidak lengkap, model harus menyediakan nilai yang hilang dengan menggunakan null, cara numerik, rata-rata numerik tertentu, atau nilai yang diprediksi. Jika Anda menentukan EXTEND_MODEL_CASES, SQL Server Analysis Services mengganti nilai yang hilang dengan prediksi berdasarkan model asli. Jika Anda menggunakan REPLACE_MODEL_CASES, SQL Server Analysis Services mengganti nilai yang hilang dengan nilai yang Anda tentukan dalam parameter MISSING_VALUE_SUBSTITUTION.

Daftar Fungsi Prediksi

Semua algoritma Microsoft mendukung serangkaian fungsi umum. Namun, algoritma Microsoft Time Series mendukung fungsi tambahan, yang tercantum dalam tabel berikut.

Fungsi Prediksi Penggunaan
Jeda (DMX) Mengembalikan sejumlah irisan waktu antara tanggal kasus saat ini dan tanggal terakhir set pelatihan.

Penggunaan umum fungsi ini adalah untuk mengidentifikasi kasus pelatihan terbaru sehingga Anda dapat mengambil data terperinci tentang kasus tersebut.
PredictNodeId (DMX) Mengembalikan ID simpul untuk kolom yang dapat diprediksi yang ditentukan.

Penggunaan umum fungsi ini adalah mengidentifikasi simpul yang menghasilkan nilai prediksi tertentu sehingga Anda dapat meninjau kasus yang terkait dengan simpul, atau mengambil persamaan dan detail lainnya.
PredictStdev (DMX) Mengembalikan simpannan standar prediksi di kolom yang dapat diprediksi yang ditentukan.

Fungsi ini menggantikan argumen INCLUDE_STATISTICS, yang tidak didukung untuk model rangkaian waktu.
PredictVariance (DMX) Mengembalikan varian prediksi untuk kolom yang dapat diprediksi yang ditentukan.

Fungsi ini menggantikan argumen INCLUDE_STATISTICS, yang tidak didukung untuk model rangkaian waktu.
PredictTimeSeries (DMX) Mengembalikan nilai historis yang diprediksi atau nilai yang diprediksi di masa mendatang untuk rangkaian waktu.

Anda juga dapat mengkueri model rangkaian waktu dengan menggunakan fungsi prediksi umum, Predict (DMX).

Untuk daftar fungsi yang umum untuk semua algoritma Microsoft, lihat Fungsi Prediksi Umum (DMX). Untuk sintaks fungsi tertentu, lihat Referensi Fungsi Ekstensi Penggalian Data (DMX).

Lihat juga

Kueri Penggalian Data
Algoritma Microsoft Time Series
Referensi Teknis Algoritma Microsoft Time Series
Menambang Konten Model untuk Model Deret Waktu (Analysis Services - Penggalian Data)