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 satu deret waktu. 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.
Tujuan
Tutorial ini memandu Anda menyelesaikan tugas-tugas berikut:
- Membuat model deret waktu untuk memperkirakan traffic situs menggunakan
pernyataan
CREATE MODEL
. - Mengevaluasi informasi autoregressive integrated moving average (ARIMA) dalam model menggunakan fungsi
ML.ARIMA_EVALUATE
. - Memeriksa koefisien model menggunakan
fungsi
ML.ARIMA_COEFFICIENTS
. - Mengambil informasi traffic situs yang diperkirakan dari model menggunakan
fungsi
ML.FORECAST
. - Mengambil komponen deret waktu, seperti tren musiman dan tren,
dengan menggunakan
ML.EXPLAIN_FORECAST
function. Anda dapat memeriksa komponen deret waktu ini untuk menjelaskan nilai yang diperkirakan.
Biaya
Tutorial ini menggunakan komponen Google Cloudyang dapat ditagih, termasuk:
- BigQuery
- BigQuery ML
Untuk informasi selengkapnya tentang biaya BigQuery, lihat halaman harga BigQuery.
Untuk informasi selengkapnya tentang biaya BigQuery ML, lihat harga BigQuery ML.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- BigQuery secara otomatis diaktifkan dalam project baru.
Untuk mengaktifkan BigQuery dalam project yang sudah ada, buka
Enable the BigQuery API.
Untuk membuat set data, Anda memerlukan izin IAM
bigquery.datasets.create
.Untuk membuat model, Anda memerlukan izin berikut:
bigquery.jobs.create
bigquery.models.create
bigquery.models.getData
bigquery.models.updateData
Untuk menjalankan inferensi, Anda memerlukan izin berikut:
bigquery.models.getData
bigquery.jobs.create
Izin yang Diperlukan
Untuk mengetahui informasi lebih lanjut tentang peran dan izin IAM di BigQuery, baca Pengantar IAM.
Membuat set data
Buat set data BigQuery untuk menyimpan model ML Anda.
Konsol
Di Google Cloud konsol, 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" } }
DataFrame BigQuery
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 Google Cloud konsol, 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.
DataFrame BigQuery
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
pernyataan CREATE MODEL
secara default adalah TRUE
, sehingga algoritma auto.ARIMA
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 Google Cloud konsol, 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 model
ga_arima_model
akan muncul di panel Explorer. Karena kueri tersebut menggunakan pernyataanCREATE MODEL
untuk membuat model, Anda tidak akan melihat hasil kueri.
DataFrame BigQuery
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 Google Cloud konsol, 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:
DataFrame BigQuery
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 Google Cloud konsol, 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
.
DataFrame BigQuery
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 dengan 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 Google Cloud konsol, 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:
DataFrame BigQuery
Perkirakan nilai deret waktu di masa mendatang dengan 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 keterjelasan selain data perkiraan dengan 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 Google Cloud konsol, 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
.
DataFrame BigQuery
Anda bisa mendapatkan metrik keterjelasan selain data perkiraan dengan 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
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus resource satu per satu.
- Anda dapat menghapus project yang dibuat.
- Atau, Anda dapat menyimpan project dan menghapus set data.
Menghapus set data
Jika project Anda dihapus, semua set data dan semua tabel dalam project akan dihapus. Jika ingin menggunakan kembali project tersebut, Anda dapat menghapus set data yang dibuat dalam tutorial ini:
Jika perlu, buka halaman BigQuery di konsolGoogle Cloud .
Di navigasi, klik set data bqml_tutorial yang telah Anda buat.
Klik Delete dataset di sisi kanan jendela. Tindakan ini akan menghapus set data, tabel, dan semua data.
Di kotak dialog Delete dataset, konfirmasi perintah hapus dengan mengetikkan nama set data Anda (
bqml_tutorial
), lalu klik Delete.
Menghapus project Anda
Untuk menghapus project:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Langkah berikutnya
- Pelajari cara memperkirakan deret waktu tunggal dengan model multivariat
- Pelajari cara memperkirakan beberapa deret waktu dengan model univariat
- Pelajari cara menskalakan model univariat saat memperkirakan beberapa deret waktu di banyak baris.
- Pelajari cara memperkirakan beberapa deret waktu secara hierarkis dengan model univariat
- Untuk ringkasan BigQuery ML, lihat Pengantar AI dan ML di BigQuery.