Memperkirakan beberapa deret waktu dengan model univariat TimesFM

Tutorial ini mengajarkan cara menggunakan fungsi AI.FORECAST dengan model univariat TimesFM bawaan BigQuery ML untuk memperkirakan nilai mendatang untuk kolom tertentu, berdasarkan nilai historis kolom tersebut.

Tutorial ini menggunakan data dari tabel publik bigquery-public-data.san_francisco_bikeshare.bikeshare_trips.

Tujuan

Tutorial ini memandu Anda menggunakan fungsi AI.FORECAST dengan model TimesFM bawaan untuk memperkirakan perjalanan rental sepeda. Dua bagian pertama membahas cara memperkirakan dan memvisualisasikan hasil untuk satu deret waktu. Bagian ketiga membahas cara memperkirakan beberapa deret waktu.

Biaya

Tutorial ini menggunakan komponen yang dapat ditagih Google Cloud, 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. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

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

    Aktifkan BigQuery API.

    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 Admin Service Usage (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

    Mengaktifkan API

Memperkirakan satu deret waktu perjalanan rental sepeda

Perkirakan nilai deret waktu di masa mendatang menggunakan fungsi AI.FORECAST.

Kueri berikut memperkirakan jumlah perjalanan transportasi online pelanggan per jam untuk bulan berikutnya (sekitar 720 jam), berdasarkan data historis empat bulan sebelumnya. Argumen confidence_level menunjukkan bahwa kueri menghasilkan interval prediksi dengan tingkat keyakinan 95%.

Ikuti langkah-langkah berikut untuk memperkirakan data dengan model TimesFM:

  1. Di Google Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, tempelkan kueri berikut, lalu klik Run:

    SELECT *
    FROM
      AI.FORECAST(
        (
          SELECT TIMESTAMP_TRUNC(start_date, HOUR) as trip_hour, COUNT(*) as num_trips
    FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips`
    WHERE subscriber_type = 'Subscriber' AND start_date >= TIMESTAMP('2018-01-01')
    GROUP BY TIMESTAMP_TRUNC(start_date, HOUR)
        ),
        horizon => 720,
        confidence_level => 0.95,
        timestamp_col => 'trip_hour',
        data_col => 'num_trips');

    Hasilnya akan terlihat seperti berikut:

    +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | forecast_timestamp      | forecast_value    | confidence_level | prediction_interval_lower_bound | prediction_interval_upper_bound | ai_forecast_status |
    +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | 2018-05-01 00:00:00 UTC | 26.3045959...     |            0.95  | 21.7088378...                   | 30.9003540...                   |                    |
    +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | 2018-05-01 01:00:00 UTC | 34.0890502...     |            0.95  | 2.47682913...                   | 65.7012714...                   |                    |
    +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | 2018-05-01 02:00:00 UTC | 24.2154693...     |            0.95  | 2.87621605...                   | 45.5547226...                   |                    |
    +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | ...                     | ...               |  ...             | ...                             |  ...                            |                    |
    +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
    

Membandingkan data perkiraan dengan data input

Buat diagram output fungsi AI.FORECAST bersama dengan subkumpulan data input fungsi untuk melihat perbandingannya.

Ikuti langkah-langkah berikut untuk membuat diagram output fungsi:

  1. Di Google Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, tempelkan kueri berikut, lalu klik Run:

    SELECT *
    FROM
      AI.FORECAST(
        (
          SELECT TIMESTAMP_TRUNC(start_date, HOUR) as trip_hour, COUNT(*) as num_trips
          FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips`
          WHERE subscriber_type = 'Subscriber' AND start_date >= TIMESTAMP('2018-01-01')
          GROUP BY TIMESTAMP_TRUNC(start_date, HOUR)
        ),
        horizon => 720,
        confidence_level => 0.95,
        timestamp_col => 'trip_hour',
        data_col => 'num_trips',
        output_historical_time_series => true);
  3. Setelah kueri selesai berjalan, klik tab Visualization di panel Query results. Untuk Visualization type, pilih Line. Untuk Dimension, pilih time_series_timestamp. Untuk Measures, pilih time_series_data, prediction_interval_lower_bound, dan prediction_interval_upper_bound. Diagram yang dihasilkan akan terlihat seperti berikut:

    Buat grafik 100 titik waktu data input bersama dengan data output fungsi AI.FORECAST untuk mengevaluasi kesamaannya.

    Anda dapat melihat bahwa data input dan data perkiraan menunjukkan penggunaan transportasi online yang serupa. Anda juga dapat melihat bahwa batas bawah dan atas interval prediksi meningkat seiring dengan semakin jauhnya titik waktu perkiraan di masa mendatang.

Memperkirakan beberapa deret waktu perjalanan rental sepeda

Kueri berikut memperkirakan jumlah perjalanan transportasi online per jenis pelanggan dan per jam untuk bulan berikutnya (sekitar 720 jam), berdasarkan data historis empat bulan sebelumnya. Argumen confidence_level menunjukkan bahwa kueri menghasilkan interval prediksi dengan tingkat keyakinan 95%.

Ikuti langkah-langkah berikut untuk memperkirakan data dengan model TimesFM:

  1. Di Google Cloud konsol, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, tempelkan kueri berikut, lalu klik Run:

    SELECT *
    FROM
      AI.FORECAST(
        (
          SELECT TIMESTAMP_TRUNC(start_date, HOUR) as trip_hour, subscriber_type, COUNT(*) as num_trips
          FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips`
          WHERE start_date >= TIMESTAMP('2018-01-01')
          GROUP BY TIMESTAMP_TRUNC(start_date, HOUR), subscriber_type
        ),
        horizon => 720,
        confidence_level => 0.95,
        timestamp_col => 'trip_hour',
        data_col => 'num_trips',
        id_cols => ['subscriber_type']);

    Hasilnya akan terlihat seperti berikut:

    +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | subscriber_type     | forecast_timestamp       | forecast_value   | confidence_level | prediction_interval_lower_bound | prediction_interval_upper_bound | ai_forecast_status |
    +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | Subscriber          | 2018-05-01 00:00:00 UTC  | 26.3045959...    |            0.95  | 21.7088378...                   | 30.9003540...                   |                    |
    +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | Subscriber          |  2018-05-01 01:00:00 UTC | 34.0890502...    |            0.95  | 2.47682913...                   | 65.7012714...                   |                    |
    +---------------------+-------------------+------------------+-------------------------+---------------------------------+---------------------------------+--------------------+
    | Subscriber          |  2018-05-01 02:00:00 UTC | 24.2154693...    |            0.95  | 2.87621605...                   | 45.5547226...                   |                    |
    +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | ...                 | ...                      |  ...             | ...              | ...                             |  ...                            |                    |
    +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
    

Pembersihan

Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.

Menghapus project Anda

Untuk menghapus project:

  1. Di Google Cloud konsol, buka halaman Manage resources.

    Buka Kelola resource

  2. Pada daftar project, pilih project yang Anda ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Langkah berikutnya