Tutorial ini mengajarkan cara menggunakan
model deret waktu univariat ARIMA_PLUS
untuk memperkirakan nilai mendatang untuk kolom tertentu berdasarkan nilai historis
untuk kolom tersebut.
Tutorial ini memperkirakan deret waktu tunggal. Nilai yang diperkirakan dihitung satu kali untuk setiap titik waktu dalam data input.
Tutorial ini menggunakan data dari tabel sampel
bigquery-public-data.google_analytics_sample.ga_sessions
publik. Tabel ini berisi data e-commerce dengan obfuscation dari Google Merchandise Store.
Membuat set data
Buat set data BigQuery untuk menyimpan model ML Anda.
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel Explorer, klik nama project Anda.
Klik
View actions > Create dataset.Di halaman Create dataset, lakukan hal berikut:
Untuk Dataset ID, masukkan
bqml_tutorial
.Untuk Location type, pilih Multi-region, lalu pilih US (multiple regions in United States).
Jangan ubah setelan default yang tersisa, lalu klik Create dataset.
bq
Untuk membuat set data baru, gunakan perintah bq mk
dengan flag --location
. Untuk daftar lengkap kemungkinan parameter, lihat referensi
perintah bq mk --dataset
.
Buat set data bernama
bqml_tutorial
dengan lokasi data yang ditetapkan keUS
dan deskripsiBigQuery ML tutorial dataset
:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Perintah ini menggunakan pintasan
-d
, bukan flag--dataset
. Jika Anda menghapus-d
dan--dataset
, perintah defaultnya adalah membuat set data.Pastikan set data telah dibuat:
bq ls
API
Panggil metode datasets.insert
dengan resource set data yang ditentukan.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Memvisualisasikan data input
Sebelum membuat model, Anda dapat secara opsional memvisualisasikan data deret waktu input untuk memahami distribusinya. Anda dapat melakukannya menggunakan Looker Studio.
Ikuti langkah-langkah berikut untuk memvisualisasikan data deret waktu:
SQL
Dalam kueri GoogleSQL berikut, pernyataan
SELECT
mengurai kolom date
dari tabel
input ke jenis TIMESTAMP
dan mengganti namanya menjadi parsed_date
, serta menggunakan
klausa SUM(...)
dan klausa GROUP BY date
untuk membuat nilai
totals.visits
harian.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, tempel kueri berikut, lalu klik Run:
SELECT PARSE_TIMESTAMP("%Y%m%d", date) AS parsed_date, SUM(totals.visits) AS total_visits FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` GROUP BY date;
Setelah kueri selesai, klik Jelajahi data > Jelajahi dengan Looker Studio. Looker Studio akan terbuka di tab baru. Selesaikan langkah-langkah berikut di tab baru.
Di Looker Studio, klik Sisipkan > Diagram deret waktu.
Di panel Chart, pilih tab Setup.
Di bagian Metrik, tambahkan kolom total_visits, lalu hapus metrik default Jumlah Catatan. Diagram yang dihasilkan akan terlihat mirip dengan berikut ini:
Dengan melihat diagram, Anda dapat melihat bahwa deret waktu input memiliki pola musiman mingguan.
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Hasilnya akan mirip dengan berikut ini:
Buat model deret waktu
Buat model deret waktu untuk memperkirakan total kunjungan situs yang diwakili oleh kolom totals.visits
, dan latih model tersebut menggunakan data Google Analytics 360.
SQL
Dalam kueri berikut, klausa
OPTIONS(model_type='ARIMA_PLUS', time_series_timestamp_col='date', ...)
menunjukkan bahwa Anda membuat model deret waktu
berbasis ARIMA. Opsi
auto_arima
dari pernyataan CREATE MODEL
secara default adalah TRUE
, sehingga algoritma auto.ARIMA
akan otomatis menyesuaikan hyperparameter dalam model. Algoritma ini sesuai dengan beberapa model kandidat dan memilih model terbaik, yaitu model dengan kriteria informasi Akaike (AIC) terendah.
Opsi
data_frequency
dari pernyataan CREATE MODEL
secara default adalah AUTO_FREQUENCY
, sehingga
proses pelatihan secara otomatis menyimpulkan frekuensi data dari deret waktu
input. Opsi decompose_time_series
pernyataan CREATE MODEL
secara default adalah TRUE
, sehingga informasi tentang
data deret waktu akan ditampilkan saat Anda mengevaluasi model pada langkah berikutnya.
Ikuti langkah-langkah berikut untuk membuat model:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, tempel kueri berikut, lalu klik Run:
CREATE OR REPLACE MODEL `bqml_tutorial.ga_arima_model` OPTIONS (model_type = 'ARIMA_PLUS', time_series_timestamp_col = 'parsed_date', time_series_data_col = 'total_visits', auto_arima = TRUE, data_frequency = 'AUTO_FREQUENCY', decompose_time_series = TRUE ) AS SELECT PARSE_TIMESTAMP("%Y%m%d", date) AS parsed_date, SUM(totals.visits) AS total_visits FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` GROUP BY date;
Kueri membutuhkan waktu sekitar 4 detik untuk diselesaikan, setelah itu Anda dapat mengakses model
ga_arima_model
. Karena kueri ini menggunakan pernyataanCREATE MODEL
untuk membuat model, Anda tidak akan melihat hasil kueri.
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Mengevaluasi model kandidat
SQL
Evaluasi model deret waktu menggunakan fungsi ML.ARIMA_EVALUATE
. Fungsi ML.ARIMA_EVALUATE
menampilkan metrik evaluasi
semua model kandidat yang dievaluasi selama proses penyesuaian
hyperparameter otomatis.
Ikuti langkah-langkah berikut untuk mengevaluasi model:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, tempel kueri berikut, lalu klik Run:
SELECT * FROM ML.ARIMA_EVALUATE(MODEL `bqml_tutorial.ga_arima_model`);
Hasilnya akan terlihat seperti berikut:
BigQuery DataFrames
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Kolom output non_seasonal_p
, non_seasonal_d
, non_seasonal_q
, dan has_drift
menentukan model ARIMA dalam pipeline pelatihan. Kolom output
log_likelihood
, AIC
, dan variance
relevan dengan proses penyesuaian model
ARIMA.
Algoritma auto.ARIMA
menggunakan
pengujian KPSS untuk menentukan nilai terbaik
untuk non_seasonal_d
, yang dalam hal ini adalah 1
. Jika non_seasonal_d
adalah 1
,
algoritma auto.ARIMA
akan melatih 42 model ARIMA kandidat yang berbeda secara paralel.
Dalam contoh ini, ke-42 model kandidat sudah valid, sehingga outputnya berisi 42
baris, satu untuk setiap model ARIMA kandidat; jika beberapa model tidak valid, model tersebut akan dikecualikan dari output. Model kandidat ini ditampilkan dalam urutan menaik menurut AIC. Model di baris pertama memiliki AIC terendah, dan dianggap sebagai model terbaik. Model terbaik disimpan sebagai model akhir dan digunakan saat Anda memanggil fungsi seperti ML.FORECAST
pada model
Kolom seasonal_periods
berisi informasi tentang pola musiman yang
diidentifikasi dalam data deret waktu. Hal ini tidak ada hubungannya dengan pemodelan ARIMA, sehingga memiliki nilai yang sama di semua baris output. Laporan ini menunjukkan pola mingguan, yang sesuai dengan hasil yang Anda lihat jika Anda memilih untuk memvisualisasikan data input.
Kolom has_holiday_effect
, has_spikes_and_dips
, dan has_step_changes
hanya diisi saat decompose_time_series=TRUE
. Kolom ini juga mencerminkan
informasi tentang data deret waktu input, dan tidak terkait dengan pemodelan
ARIMA. Kolom ini juga memiliki nilai yang sama di semua baris output.
Kolom error_message
menampilkan error yang terjadi selama proses penyesuaian auto.ARIMA
. Salah satu kemungkinan penyebab error adalah saat kolom non_seasonal_p
, non_seasonal_d
, non_seasonal_q
, dan has_drift
yang dipilih tidak dapat menstabilkan deret waktu. Untuk mengambil pesan error dari semua model kandidat, tetapkan opsi show_all_candidate_models
ke TRUE
saat Anda membuat model.
Untuk mengetahui informasi selengkapnya tentang kolom output, lihat
fungsi ML.ARIMA_EVALUATE
.
Memeriksa koefisien model
SQL
Periksa koefisien model deret waktu menggunakan
fungsi ML.ARIMA_COEFFICIENTS
.
Ikuti langkah-langkah berikut untuk mengambil koefisien model:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, tempel kueri berikut, lalu klik Run:
SELECT * FROM ML.ARIMA_COEFFICIENTS(MODEL `bqml_tutorial.ga_arima_model`);
Kolom output ar_coefficients
menampilkan koefisien model bagian
autoregresif (AR) dari model ARIMA. Demikian pula, kolom output ma_coefficients
menampilkan koefisien model bagian rata-rata bergerak (MA) dari
model ARIMA. Kedua kolom ini berisi nilai array, yang panjangnya
sama dengan non_seasonal_p
dan non_seasonal_q
secara berurutan. Anda melihat di
output fungsi ML.ARIMA_EVALUATE
bahwa model terbaik memiliki
nilai non_seasonal_p
sebesar 2
dan nilai non_seasonal_q
sebesar 3
. Oleh karena itu, dalam
output ML.ARIMA_COEFFICIENTS
, nilai ar_coefficients
adalah array 2 elemen
dan nilai ma_coefficients
adalah array 3 elemen. Nilai
intercept_or_drift
adalah istilah konstan dalam model ARIMA.
Untuk mengetahui informasi selengkapnya tentang kolom output, lihat
fungsi ML.ARIMA_COEFFICIENTS
.
BigQuery DataFrames
Periksa koefisien model deret waktu menggunakan fungsi coef_
.
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Kolom output ar_coefficients
menampilkan koefisien model bagian
autoregresif (AR) dari model ARIMA. Demikian pula, kolom output ma_coefficients
menampilkan koefisien model bagian rata-rata bergerak (MA) dari
model ARIMA. Kedua kolom ini berisi nilai array, yang panjangnya
sama dengan non_seasonal_p
dan non_seasonal_q
secara berurutan.
Menggunakan model untuk memperkirakan data
SQL
Perkirakan nilai deret waktu di masa mendatang menggunakan fungsi ML.FORECAST
.
Dalam kueri GoogleSQL berikut, klausa STRUCT(30 AS horizon, 0.8 AS confidence_level)
menunjukkan bahwa kueri memperkirakan 30 titik waktu di masa mendatang, dan menghasilkan interval prediksi dengan tingkat keyakinan 80%.
Ikuti langkah-langkah berikut untuk memperkirakan data dengan model:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, tempel kueri berikut, lalu klik Run:
SELECT * FROM ML.FORECAST(MODEL `bqml_tutorial.ga_arima_model`, STRUCT(30 AS horizon, 0.8 AS confidence_level));
Hasilnya akan terlihat seperti berikut:
BigQuery DataFrames
Perkirakan nilai deret waktu di masa mendatang menggunakan fungsi predict
.
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Baris output diurutkan dalam urutan kronologis berdasarkan
nilai kolom forecast_timestamp
. Dalam perkiraan deret waktu, interval
prediksi, sebagaimana diwakili oleh nilai kolom prediction_interval_lower_bound
dan
prediction_interval_upper_bound
, sama pentingnya dengan nilai kolom
forecast_value
. Nilai forecast_value
adalah titik tengah
interval prediksi. Interval prediksi bergantung pada nilai kolom standard_error
dan confidence_level
.
Untuk mengetahui informasi selengkapnya tentang kolom output, lihat
fungsi ML.FORECAST
.
Menjelaskan hasil perkiraan
SQL
Anda bisa mendapatkan metrik kemampuan penjelasan selain data perkiraan menggunakan
fungsi ML.EXPLAIN_FORECAST
. Fungsi ML.EXPLAIN_FORECAST
memperkirakan nilai deret waktu di masa mendatang dan juga menampilkan semua komponen terpisah dari deret waktu.
Mirip dengan fungsi ML.FORECAST
, klausa STRUCT(30 AS horizon, 0.8 AS confidence_level)
yang digunakan dalam fungsi ML.EXPLAIN_FORECAST
menunjukkan bahwa kueri memperkirakan 30 titik waktu di masa mendatang dan menghasilkan interval prediksi dengan keyakinan 80%.
Ikuti langkah-langkah berikut untuk menjelaskan hasil model:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, tempel kueri berikut, lalu klik Run:
SELECT * FROM ML.EXPLAIN_FORECAST(MODEL `bqml_tutorial.ga_arima_model`, STRUCT(30 AS horizon, 0.8 AS confidence_level));
Hasilnya akan terlihat seperti berikut:
Baris output diurutkan secara kronologis berdasarkan nilai kolom
time_series_timestamp
.Untuk mengetahui informasi selengkapnya tentang kolom output, lihat fungsi
ML.EXPLAIN_FORECAST
.
BigQuery DataFrames
Anda bisa mendapatkan metrik kemampuan penjelasan selain data perkiraan menggunakan
fungsi predict_explain
. Fungsi predict_explain
memperkirakan
nilai deret waktu mendatang dan juga menampilkan semua komponen terpisah dari
deret waktu.
Mirip dengan fungsi predict
, klausa
horizon=30, confidence_level=0.8
yang digunakan dalam
fungsi predict_explain
menunjukkan bahwa kueri memperkirakan 30 titik waktu
di masa mendatang dan menghasilkan interval prediksi dengan keyakinan 80%.
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Jika ingin memvisualisasikan hasilnya, Anda dapat menggunakan Looker Studio seperti yang dijelaskan di bagian Memvisualisasikan data input untuk membuat diagram, menggunakan kolom berikut sebagai metrik:
time_series_data
prediction_interval_lower_bound
prediction_interval_upper_bound
trend
seasonal_period_weekly
step_changes