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.
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 keadaan musiman dan tren,
dengan menggunakan
ML.EXPLAIN_FORECASTfunction. 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify 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.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. Untuk membuat set data, Anda memerlukan izin IAM
bigquery.datasets.create.Untuk membuat model, Anda memerlukan izin berikut:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateData
Untuk menjalankan inferensi, Anda memerlukan izin berikut:
bigquery.models.getDatabigquery.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 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_tutorialdengan lokasi data yang ditetapkan keUSdan 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-ddan--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 Open in > 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
secara 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 MODELuntuk 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 output 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 secara 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 menggunakan
fungsi ML.EXPLAIN_FORECAST. Fungsi ML.EXPLAIN_FORECAST memperkirakan
nilai deret waktu 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 keterjelasan 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_dataprediction_interval_lower_boundprediction_interval_upper_boundtrendseasonal_period_weeklystep_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.