Membuat perkiraan beberapa deret waktu dengan model univariat ARIMA_PLUS


Tutorial ini mengajarkan cara menggunakan model deret waktu univariat ARIMA_PLUS untuk memperkirakan nilai mendatang dari kolom tertentu, berdasarkan nilai historis untuk kolom tersebut.

Tutorial ini memperkirakan beberapa deret waktu. Nilai perkiraan dihitung untuk setiap titik waktu, untuk setiap nilai dalam satu atau beberapa kolom yang ditentukan. Misalnya, jika Anda ingin memperkirakan cuaca dan menentukan kolom yang berisi data kota, data yang diprediksi akan berisi perkiraan untuk semua titik waktu untuk Kota A, lalu nilai yang diprediksi untuk semua titik waktu untuk Kota B, dan seterusnya.

Tutorial ini menggunakan data dari tabel bigquery-public-data.new_york.citibike_trips publik. Tabel ini berisi informasi tentang perjalanan Citi Bike di New York City.

Sebelum membaca tutorial ini, sebaiknya baca Membuat perkiraan deret waktu tunggal dengan model univariat.

Tujuan

Tutorial ini memandu Anda menyelesaikan tugas-tugas berikut:

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

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. BigQuery secara otomatis diaktifkan dalam project baru. Untuk mengaktifkan BigQuery dalam project yang sudah ada, buka

    Enable the BigQuery API.

    Enable the API

Izin yang Diperlukan

  • 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

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

  1. Di Google Cloud konsol, buka halaman BigQuery.

    Buka halaman BigQuery

  2. Di panel Explorer, klik nama project Anda.

  3. Klik View actions > Create dataset.

    Opsi menu Create dataset.

  4. 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 parameter yang mungkin, lihat referensi perintah bq mk --dataset.

  1. Buat set data bernama bqml_tutorial dengan lokasi data ditetapkan ke US dan deskripsi BigQuery 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.

  2. Pastikan set data telah dibuat:

    bq ls

API

Panggil metode datasets.insert dengan resource set data yang ditentukan.

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

Memvisualisasikan data input

Sebelum membuat model, Anda dapat memvisualisasikan data deret waktu input secara opsional untuk mendapatkan gambaran distribusi. Anda dapat melakukannya menggunakan Looker Studio.

SQL

Pernyataan SELECT dari kueri berikut menggunakan fungsi EXTRACT untuk mengekstrak informasi tanggal dari kolom starttime. Kueri ini menggunakan klausa COUNT(*) untuk mendapatkan jumlah total harian perjalanan Citi Bike.

Ikuti langkah-langkah berikut untuk memvisualisasikan data deret waktu:

  1. Di Google Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, tempel kueri berikut dan klik Jalankan:

    SELECT
     EXTRACT(DATE from starttime) AS date,
     COUNT(*) AS num_trips
    FROM
    `bigquery-public-data.new_york.citibike_trips`
    GROUP BY date;
  3. Setelah kueri selesai, klik Explore data > Explore with Looker Studio. Looker Studio akan terbuka di tab baru. Selesaikan langkah-langkah berikut di tab baru.

  4. Di Looker Studio, klik Sisipkan > Diagram deret waktu.

  5. Di panel Chart, pilih tab Setup.

  6. Di bagian Metric, tambahkan kolom num_trips, dan hapus metrik Record Count default. Diagram yang dihasilkan akan terlihat mirip dengan berikut ini:

    Diagram yang menampilkan data perjalanan sepeda dari waktu ke waktu.

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 informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.


import bigframes.pandas as bpd

df = bpd.read_gbq("bigquery-public-data.new_york.citibike_trips")

features = bpd.DataFrame(
    {
        "num_trips": df.starttime,
        "date": df["starttime"].dt.date,
    }
)
date = df["starttime"].dt.date
df.groupby([date])
num_trips = features.groupby(["date"]).count()

# Results from running "print(num_trips)"

#                num_trips
# date
# 2013-07-01      16650
# 2013-07-02      22745
# 2013-07-03      21864
# 2013-07-04      22326
# 2013-07-05      21842
# 2013-07-06      20467
# 2013-07-07      20477
# 2013-07-08      21615
# 2013-07-09      26641
# 2013-07-10      25732
# 2013-07-11      24417
# 2013-07-12      19006
# 2013-07-13      26119
# 2013-07-14      29287
# 2013-07-15      28069
# 2013-07-16      29842
# 2013-07-17      30550
# 2013-07-18      28869
# 2013-07-19      26591
# 2013-07-20      25278
# 2013-07-21      30297
# 2013-07-22      25979
# 2013-07-23      32376
# 2013-07-24      35271
# 2013-07-25      31084

num_trips.plot.line(
    # Rotate the x labels so they are more visible.
    rot=45,
)

Membuat model deret waktu

Anda ingin memperkirakan jumlah perjalanan sepeda untuk setiap stasiun Citi Bike, yang memerlukan banyak model deret waktu; satu untuk setiap stasiun Citi Bike yang disertakan dalam data input. Anda dapat membuat beberapa model untuk melakukannya, tetapi proses ini mungkin membosankan dan memakan waktu, terutama jika Anda memiliki banyak deret waktu. Sebagai gantinya, Anda dapat menggunakan satu kueri untuk membuat dan menyesuaikan serangkaian model deret waktu guna memperkirakan beberapa deret waktu sekaligus.

SQL

Dalam kueri berikut, klausa OPTIONS(model_type='ARIMA_PLUS', time_series_timestamp_col='date', ...) menunjukkan bahwa Anda membuat model deret waktu berbasis ARIMA. Anda menggunakan opsi time_series_id_col dari pernyataan CREATE MODEL untuk menentukan satu atau beberapa kolom dalam data input yang ingin Anda dapatkan prakiraan, dalam hal ini stasiun Citi Bike, seperti yang diwakili oleh kolom start_station_name. Anda menggunakan klausa WHERE untuk membatasi stasiun awal hanya untuk stasiun dengan Central Park di namanya. Opsi auto_arima_max_order dalam pernyataan CREATE MODEL mengontrol ruang penelusuran untuk penyesuaian hyperparameter dalam algoritma auto.ARIMA. Opsi decompose_time_series dari pernyataan CREATE MODEL secara default ditetapkan ke TRUE, sehingga informasi tentang data deret waktu ditampilkan saat Anda mengevaluasi model di langkah berikutnya.

Ikuti langkah-langkah berikut untuk membuat model:

  1. Di Google Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, tempel kueri berikut dan klik Jalankan:

    CREATE OR REPLACE MODEL `bqml_tutorial.nyc_citibike_arima_model_group`
    OPTIONS
    (model_type = 'ARIMA_PLUS',
     time_series_timestamp_col = 'date',
     time_series_data_col = 'num_trips',
     time_series_id_col = 'start_station_name',
     auto_arima_max_order = 5
    ) AS
    SELECT
     start_station_name,
     EXTRACT(DATE from starttime) AS date,
     COUNT(*) AS num_trips
    FROM
    `bigquery-public-data.new_york.citibike_trips`
    WHERE start_station_name LIKE '%Central Park%'
    GROUP BY start_station_name, date;

    Kueri ini selesai dalam sekitar 24 detik, setelah itu model nyc_citibike_arima_model_group akan muncul di panel Explorer. Karena kueri ini menggunakan pernyataan CREATE MODEL, Anda tidak akan melihat hasil kueri.

Kueri ini membuat dua belas model deret waktu, satu untuk masing-masing dari dua belas stasiun awal Citi Bike dalam data input. Biaya waktu, sekitar 24 detik, hanya 1,4 kali lebih lama daripada membuat satu model deret waktu karena paralelisme. Namun, jika Anda menghapus klausa WHERE ... LIKE ..., akan ada lebih dari 600 deret waktu untuk diperkirakan, dan tidak akan sepenuhnya diperkirakan secara paralel karena keterbatasan kapasitas slot. Dalam hal ini, kueri akan memerlukan waktu sekitar 15 menit untuk selesai. Untuk mengurangi runtime kueri dengan potensi sedikit menurunnya kualitas model, Anda dapat mengurangi nilai auto_arima_max_order. Tindakan ini akan mengecilkan ruang penelusuran penyesuaian hyperparameter dalam algoritma auto.ARIMA. Untuk informasi selengkapnya, lihat Large-scale time series forecasting best practices.

DataFrame BigQuery

Dalam cuplikan berikut, Anda membuat model deret waktu berbasis ARIMA.

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 informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.

from bigframes.ml import forecasting
import bigframes.pandas as bpd

model = forecasting.ARIMAPlus(
    # To reduce the query runtime with the compromise of a potential slight
    # drop in model quality, you could decrease the value of the
    # auto_arima_max_order. This shrinks the search space of hyperparameter
    # tuning in the auto.ARIMA algorithm.
    auto_arima_max_order=5,
)

df = bpd.read_gbq("bigquery-public-data.new_york.citibike_trips")

# This query creates twelve time series models, one for each of the twelve
# Citi Bike start stations in the input data. If you remove this row
# filter, there would be 600+ time series to forecast.
df = df[df["start_station_name"].str.contains("Central Park")]

features = bpd.DataFrame(
    {
        "start_station_name": df["start_station_name"],
        "num_trips": df["starttime"],
        "date": df["starttime"].dt.date,
    }
)
num_trips = features.groupby(
    ["start_station_name", "date"],
    as_index=False,
).count()

X = num_trips["date"].to_frame()
y = num_trips["num_trips"].to_frame()

model.fit(
    X,
    y,
    # The input data that you want to get forecasts for,
    # in this case the Citi Bike station, as represented by the
    # start_station_name column.
    id_col=num_trips["start_station_name"].to_frame(),
)

# The model.fit() call above created a temporary model.
# Use the to_gbq() method to write to a permanent location.
model.to_gbq(
    your_model_id,  # For example: "bqml_tutorial.nyc_citibike_arima_model",
    replace=True,
)

Tindakan ini akan membuat dua belas model deret waktu, satu untuk masing-masing dari dua belas stasiun awal Citi Bike dalam data input. Biaya waktu, sekitar 24 detik, hanya 1,4 kali lebih lama daripada membuat model deret waktu tunggal karena paralelisme kueri.

Mengevaluasi model

SQL

Evaluasi model deret waktu menggunakan fungsi ML.ARIMA_EVALUATE. Fungsi ML.ARIMA_EVALUATE menampilkan metrik evaluasi yang dihasilkan untuk model selama proses penyesuaian hyperparameter otomatis.

Ikuti langkah-langkah berikut untuk mengevaluasi model:

  1. Di Google Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, tempel kueri berikut dan klik Jalankan:

    SELECT
    *
    FROM
    ML.ARIMA_EVALUATE(MODEL `bqml_tutorial.nyc_citibike_arima_model_group`);

    Hasilnya akan terlihat seperti berikut:

    Metrik evaluasi untuk model deret waktu.

    Meskipun auto.ARIMA mengevaluasi banyak kandidat model ARIMA untuk setiap deret waktu, ML.ARIMA_EVALUATE secara default hanya menghasilkan output informasi model terbaik untuk meringkas tabel output. Untuk melihat semua kandidat model, Anda dapat menetapkan argumen show_all_candidate_model fungsi ML.ARIMA_EVALUATE ke TRUE.

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 informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.

# Evaluate the time series models by using the summary() function. The summary()
# function shows you the evaluation metrics of all the candidate models evaluated
# during the process of automatic hyperparameter tuning.
summary = model.summary()
print(summary.peek())

# Expected output:
#    start_station_name                  non_seasonal_p  non_seasonal_d   non_seasonal_q  has_drift  log_likelihood           AIC     variance ...
# 1         Central Park West & W 72 St               0               1                5      False    -1966.449243   3944.898487  1215.689281 ...
# 8            Central Park W & W 96 St               0               0                5      False     -274.459923    562.919847   655.776577 ...
# 9        Central Park West & W 102 St               0               0                0      False     -226.639918    457.279835    258.83582 ...
# 11        Central Park West & W 76 St               1               1                2      False    -1700.456924   3408.913848   383.254161 ...
# 4   Grand Army Plaza & Central Park S               0               1                5      False    -5507.553498  11027.106996   624.138741 ...

Kolom start_station_name mengidentifikasi kolom data input yang deret waktunya dibuat. Ini adalah kolom yang Anda tentukan dengan opsi time_series_id_col saat membuat model.

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 pencocokan model ARIMA.Proses pencocokan menentukan model ARIMA terbaik dengan menggunakan algoritma auto.ARIMA, satu untuk setiap deret waktu.

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 oleh AIC. Model di baris pertama memiliki AIC terendah, dan dianggap sebagai model terbaik. Model terbaik ini disimpan sebagai model akhir dan digunakan saat Anda memperkirakan data, mengevaluasi model, dan memeriksa koefisien model seperti yang ditunjukkan pada langkah-langkah berikut.

Kolom seasonal_periods berisi informasi tentang pola musiman yang diidentifikasi dalam data deret waktu. Setiap deret waktu dapat memiliki pola musiman yang berbeda. Misalnya, dari gambar, Anda dapat melihat bahwa satu deret waktu memiliki pola tahunan, sementara yang lainnya tidak.

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.

Memeriksa koefisien model

SQL

Periksa koefisien model deret waktu menggunakan fungsi ML.ARIMA_COEFFICIENTS.

Ikuti langkah-langkah berikut untuk mengambil koefisien model:

  1. Di Google Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, tempel kueri berikut dan klik Jalankan:

    SELECT
    *
    FROM
    ML.ARIMA_COEFFICIENTS(MODEL `bqml_tutorial.nyc_citibike_arima_model_group`);

    Kueri ini selesai dalam waktu kurang dari satu detik. Hasilnya akan terlihat mirip dengan berikut:

    Koefisien untuk model deret waktu.

    Untuk 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 informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.

coef = model.coef_
print(coef.peek())

# Expected output:
#    start_station_name                                              ar_coefficients                                   ma_coefficients intercept_or_drift
# 5    Central Park West & W 68 St                                                [] [-0.41014089  0.21979212 -0.59854213 -0.251438...                0.0
# 6         Central Park S & 6 Ave                                                [] [-0.71488957 -0.36835772  0.61008532  0.183290...                0.0
# 0    Central Park West & W 85 St                                                [] [-0.39270166 -0.74494638  0.76432596  0.489146...                0.0
# 3    W 82 St & Central Park West                         [-0.50219511 -0.64820817]             [-0.20665325  0.67683137 -0.68108631]                0.0
# 11  W 106 St & Central Park West [-0.70442887 -0.66885553 -0.25030325 -0.34160669]                                                []                0.0

Kolom start_station_name mengidentifikasi kolom data input yang deret waktunya dibuat. Ini adalah kolom yang Anda tentukan dalam opsi time_series_id_col saat membuat 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. Nilai intercept_or_drift adalah istilah konstan dalam model ARIMA.

Menggunakan model untuk memperkirakan data

SQL

Perkiraan nilai deret waktu mendatang menggunakan fungsi ML.FORECAST.

Dalam kueri GoogleSQL berikut, klausa STRUCT(3 AS horizon, 0.9 AS confidence_level) menunjukkan bahwa kueri memperkirakan 3 titik waktu di masa mendatang, dan menghasilkan interval prediksi dengan tingkat keyakinan 90%.

Ikuti langkah-langkah berikut untuk memperkirakan data dengan model:

  1. Di Google Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, tempel kueri berikut dan klik Jalankan:

    SELECT
    *
    FROM
    ML.FORECAST(MODEL `bqml_tutorial.nyc_citibike_arima_model_group`,
     STRUCT(3 AS horizon, 0.9 AS confidence_level))
  3. Klik Run.

    Kueri ini selesai dalam waktu kurang dari satu detik. Hasilnya akan terlihat seperti berikut:

    Output ML.FORECAST.

Untuk informasi selengkapnya tentang kolom output, lihat fungsi ML.FORECAST.

DataFrame BigQuery

Perkiraan 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 informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.

prediction = model.predict(horizon=3, confidence_level=0.9)

print(prediction.peek())
# Expected output:
#            forecast_timestamp                             start_station_name  forecast_value  standard_error  confidence_level ...
# 4   2016-10-01 00:00:00+00:00                         Central Park S & 6 Ave      302.377201       32.572948               0.9 ...
# 14  2016-10-02 00:00:00+00:00  Central Park North & Adam Clayton Powell Blvd      263.917567       45.284082               0.9 ...
# 1   2016-09-25 00:00:00+00:00                    Central Park West & W 85 St      189.574706       39.874856               0.9 ...
# 20  2016-10-02 00:00:00+00:00                    Central Park West & W 72 St      175.474862       40.940794               0.9 ...
# 12  2016-10-01 00:00:00+00:00                   W 106 St & Central Park West        63.88163       18.088868               0.9 ...

Kolom pertama, start_station_name, menganotasi deret waktu yang dicocokkan dengan setiap model deret waktu. Setiap start_station_name memiliki tiga baris hasil perkiraan, seperti yang ditentukan oleh nilai horizon.

Untuk setiap start_station_name, baris output diurutkan sesuai dengan kronologi berdasarkan nilai kolom forecast_timestamp. Dalam perkiraan deret waktu, interval prediksi, seperti yang 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.

Menjelaskan hasil perkiraan

SQL

Anda bisa mendapatkan metrik penjelasan 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. Jika Anda hanya ingin menampilkan data perkiraan, gunakan fungsi ML.FORECAST, seperti yang ditunjukkan dalam Menggunakan model untuk memperkirakan data.

Klausa STRUCT(3 AS horizon, 0.9 AS confidence_level) yang digunakan dalam fungsi ML.EXPLAIN_FORECAST menunjukkan bahwa kueri memperkirakan 3 titik waktu di masa mendatang dan menghasilkan interval prediksi dengan keyakinan 90%.

Ikuti langkah-langkah berikut untuk menjelaskan hasil model:

  1. Di Google Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, tempel kueri berikut dan klik Jalankan:

    SELECT
    *
    FROM
    ML.EXPLAIN_FORECAST(MODEL `bqml_tutorial.nyc_citibike_arima_model_group`,
     STRUCT(3 AS horizon, 0.9 AS confidence_level));

    Kueri ini selesai dalam waktu kurang dari satu detik. Hasilnya akan terlihat seperti berikut:

    Sembilan kolom output pertama dari data perkiraan dan penjelasan perkiraan. Kolom output kesepuluh hingga ketujuh belas dari data perkiraan dan penjelasan perkiraan. Enam kolom output terakhir dari data perkiraan dan penjelasan perkiraan.

    Ribuan baris pertama yang ditampilkan adalah semua data histori. Anda harus men-scroll hasil untuk melihat data perkiraan.

    Baris output diurutkan terlebih dahulu berdasarkan start_station_name, lalu berdasarkan kronologis berdasarkan nilai kolom time_series_timestamp. Dalam perkiraan deret waktu, interval prediksi, seperti yang 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 ML.EXPLAIN_FORECAST.

DataFrame BigQuery

Anda bisa mendapatkan metrik 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. Jika Anda hanya ingin menampilkan data perkiraan, gunakan fungsi predict, seperti yang ditunjukkan dalam Menggunakan model untuk memperkirakan data.

Klausa horizon=3, confidence_level=0.9 yang digunakan dalam fungsi predict_explain menunjukkan bahwa kueri memperkirakan 3 titik waktu di masa mendatang dan menghasilkan interval prediksi dengan keyakinan 90%.

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 informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.

explain = model.predict_explain(horizon=3, confidence_level=0.9)

print(explain.peek(5))
# Expected output:
#   time_series_timestamp	        start_station_name	            time_series_type	    time_series_data	    time_series_adjusted_data	    standard_error	    confidence_level	    prediction_interval_lower_bound	    prediction_interval_upper_bound	    trend	    seasonal_period_yearly	    seasonal_period_quarterly	    seasonal_period_monthly	    seasonal_period_weekly	    seasonal_period_daily	    holiday_effect	    spikes_and_dips	    step_changes	    residual
# 0	2013-07-01 00:00:00+00:00	Central Park S & 6 Ave	                history	                  69.0	                   154.168527	              32.572948	             <NA>	                        <NA>	                            <NA>	                 0.0	          35.477484	                       <NA>	                        <NA>	                  -28.402102	                 <NA>	                <NA>	               0.0	         -85.168527	        147.093145
# 1	2013-07-01 00:00:00+00:00	Grand Army Plaza & Central Park S	    history	                  79.0	                      79.0	                  24.982769	             <NA>	                        <NA>	                            <NA>	                 0.0	          43.46428	                       <NA>	                        <NA>	                  -30.01599	                     <NA>	                <NA>	               0.0	            0.0	             65.55171
# 2	2013-07-02 00:00:00+00:00	Central Park S & 6 Ave	                history	                  180.0	                   204.045651	              32.572948	             <NA>	                        <NA>	                            <NA>	              147.093045	      72.498327	                       <NA>	                        <NA>	                  -15.545721	                 <NA>	                <NA>	               0.0	         -85.168527	         61.122876
# 3	2013-07-02 00:00:00+00:00	Grand Army Plaza & Central Park S	    history	                  129.0	                    99.556269	              24.982769	             <NA>	                        <NA>	                            <NA>	               65.551665	      45.836432	                       <NA>	                        <NA>	                  -11.831828	                 <NA>	                <NA>	               0.0	            0.0	             29.443731
# 4	2013-07-03 00:00:00+00:00	Central Park S & 6 Ave	                history	                  115.0	                   205.968236	              32.572948	             <NA>	                        <NA>	                            <NA>	               191.32754	      59.220766	                       <NA>	                        <NA>	                  -44.580071	                 <NA>	                <NA>	               0.0	         -85.168527	        -5.799709

Baris output diurutkan terlebih dahulu berdasarkan time_series_timestamp, lalu berdasarkan kronologis berdasarkan nilai kolom start_station_name. Dalam perkiraan deret waktu, interval prediksi, seperti yang 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.

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:

  1. Jika perlu, buka halaman BigQuery di konsolGoogle Cloud .

    Buka halaman BigQuery

  2. Di navigasi, klik set data bqml_tutorial yang Anda buat.

  3. Klik Hapus set data untuk menghapus set data, tabel, dan semua data.

  4. Pada dialog Hapus set data, konfirmasi perintah hapus dengan mengetikkan nama set data Anda (bqml_tutorial), lalu klik Hapus.

Menghapus project Anda

Untuk menghapus project:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Langkah berikutnya