Tutorial ini mengajarkan cara menggunakan model deret waktu univariat ARIMA_PLUS guna memperkirakan nilai mendatang untuk kolom tertentu berdasarkan nilai historis untuk kolom tersebut.
Tutorial ini memperkirakan deret waktu tunggal. Nilai perkiraan dihitung sekali untuk setiap titik waktu dalam data input.
Tutorial ini menggunakan data dari tabel contoh bigquery-public-data.google_analytics_sample.ga_sessions publik. Tabel ini berisi data e-commerce yang di-obfuscate 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 perkiraan traffic situs dari model menggunakan
fungsi
ML.FORECAST. - Mengambil komponen deret waktu, seperti tren musiman dan tren,
menggunakan
fungsi
ML.EXPLAIN_FORECAST. 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
-
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
Aktifkan BigQuery API, jika belum diaktifkan.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.
Izin yang Diperlukan
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
Untuk mengetahui informasi lebih lanjut tentang peran dan izin IAM di BigQuery, baca Pengantar IAM.
Membuat set data
Untuk membuat set data BigQuery, pilih salah satu opsi berikut:Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel kiri, klik Explorer:

Jika Anda tidak melihat panel kiri, klik Luaskan panel kiri untuk membuka panel.
Di Explorer, luaskan project Anda, lalu klik Datasets.
Di halaman Datasets, klik Create dataset.
Di panel Create dataset, lakukan hal berikut:
Untuk Dataset ID, masukkan
bqml_tutorial.Untuk lokasi data, pilih US.
Jangan ubah setelan default yang tersisa.
Klik Create dataset.
bq
Untuk membuat set data baru, gunakan
perintah bq mk --dataset.
Buat set data bernama
bqml_tutorialdengan lokasi data yang ditetapkan keUS:bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
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 memvisualisasikan data deret waktu input untuk mendapatkan gambaran distribusinya. Anda dapat melakukannya menggunakan Data Studio.
Ikuti langkah-langkah berikut untuk memvisualisasikan data deret waktu:
SQL
Dalam kueri GoogleSQL berikut, pernyataan SELECT mengurai kolom date dari tabel input menjadi 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 dan 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 > Data Studio. Data Studio akan terbuka di tab baru. Selesaikan langkah-langkah berikut di tab baru.
Di Data Studio, klik Insert > Time series chart.
Di panel Chart, pilih tab Setup.
Di bagian Metric, tambahkan kolom total_visits, lalu hapus metrik Record Count default. Diagram yang dihasilkan akan terlihat seperti berikut:
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 mirip dengan berikut ini:
Membuat model deret waktu
Buat model deret waktu untuk memperkirakan total kunjungan situs seperti yang diwakili oleh kolom totals.visits, dan latih model tersebut pada 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 ditetapkan secara default ke 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 ditetapkan secara default ke AUTO_FREQUENCY, sehingga
proses pelatihan akan otomatis menyimpulkan frekuensi data dari deret waktu
input. Opsi decompose_time_series
dari pernyataan CREATE MODEL ditetapkan secara default ke TRUE, sehingga informasi tentang
data deret waktu ditampilkan saat Anda mengevaluasi model di langkah berikutnya.
Ikuti langkah-langkah berikut untuk membuat model:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, tempel kueri berikut dan 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 memerlukan waktu sekitar 4 detik untuk diselesaikan, setelah itu Anda dapat mengakses model
ga_arima_model. Karena kueri tersebut 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 menunjukkan 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 dan 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 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 berdasarkan 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 karena memiliki nilai yang sama di semua baris output. Model ini melaporkan 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 menunjukkan error yang terjadi selama proses penyesuaian auto.ARIMA. Salah satu kemungkinan alasan terjadinya 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 dan klik Run:
SELECT * FROM ML.ARIMA_COEFFICIENTS(MODEL `bqml_tutorial.ga_arima_model`);
Kolom output ar_coefficients menunjukkan koefisien model bagian autoregresif (AR) dari model ARIMA. Demikian pula, kolom output ma_coefficients
menunjukkan 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 telah melihat dalam 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 menunjukkan koefisien model bagian autoregresif (AR) dari model ARIMA. Demikian pula, kolom output ma_coefficients
menunjukkan 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 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 dan 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 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, seperti yang direpresentasikan 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 mendatang dan juga menampilkan semua komponen terpisah dari deret waktu.
Serupa 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 dan 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 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 Data 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:
- Di konsol Google Cloud , buka halaman Manage resources.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus 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.