合計比率指標を使用して貢献度分析モデルからデータ分析情報を取得する

このチュートリアルでは、貢献度分析モデルを使用して、アイオワ州の酒類販売データセットにおける売上原価率の貢献度を分析します。このチュートリアルでは、次のタスクについて説明します。

  • 一般公開されているアイオワ州の酒類データに基づいて入力テーブルを作成する。
  • 合計可能な比率指標を使用する貢献度分析モデルを作成する。このタイプのモデルは、2 つの数値列の値を要約し、データのセグメントごとにコントロール データセットとテストデータセットの比率の差異を決定します。
  • ML.GET_INSIGHTS 関数を使用して、モデルから指標の分析情報を取得します。

このチュートリアルを始める前に、貢献度分析のユースケースを理解しておく必要があります。

必要な権限

  • データセットを作成するには、bigquery.datasets.create Identity and Access Management(IAM)権限が必要です。

  • モデルを作成するには、次の権限が必要です。

    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
  • 推論を実行するには、次の権限が必要です。

    • bigquery.models.getData
    • bigquery.jobs.create

費用

このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。

  • BigQuery ML: You incur costs for the data that you process in BigQuery.

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。 新しい Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

BigQuery の料金の詳細については、BigQuery ドキュメントの BigQuery の料金をご覧ください。

始める前に

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

    Go to project selector

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

  3. Enable the BigQuery API.

    Enable the API

データセットの作成

ML モデルを格納する BigQuery データセットを作成します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] ページに移動

  2. [エクスプローラ] ペインで、プロジェクト名をクリックします。

  3. 「アクションを表示」> [データセットを作成] をクリックします。

    データセットを作成する。

  4. [データセットを作成する] ページで、次の操作を行います。

    • [データセット ID] に「bqml_tutorial」と入力します。

    • [ロケーション タイプ] で [マルチリージョン] を選択してから、[US (米国の複数のリージョン)] を選択します。

      一般公開データセットは US マルチリージョンに保存されています。わかりやすくするため、データセットを同じロケーションに保存します。

    • 残りのデフォルトの設定は変更せず、[データセットを作成] をクリックします。

      データセットの作成ページ

入力データのテーブルを作成する

分析するテストデータとコントロール データを含むテーブルを作成します。次のクエリは、2021 年の酒類データのテストテーブルと 2020 年の酒類データを含むコントロール テーブルの 2 つの中間テーブルを作成し、中間テーブルの結合を実行して、テスト行とコントロール行の両方と同じ列セットを持つテーブルを作成します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    BigQuery に移動

  2. クエリエディタで次のステートメントを実行します。

    CREATE OR REPLACE TABLE bqml_tutorial.iowa_liquor_sales_data AS
    (SELECT
      store_name,
      city,
      vendor_name,
      category_name,
      item_description,
      SUM(sale_dollars) AS total_sales,
      SUM(state_bottle_cost) AS total_bottle_cost,
      FALSE AS is_test
    FROM `bigquery-public-data.iowa_liquor_sales.sales`
    WHERE EXTRACT(YEAR FROM date) = 2020
    GROUP BY store_name, city, vendor_name, category_name, item_description, is_test)
    UNION ALL
    (SELECT
      store_name,
      city,
      vendor_name,
      category_name,
      item_description,
      SUM(sale_dollars) AS total_sales,
      SUM(state_bottle_cost) AS total_bottle_cost,
      TRUE AS is_test
    FROM `bigquery-public-data.iowa_liquor_sales.sales`
    WHERE EXTRACT(YEAR FROM date) = 2021
    GROUP BY store_name, city, vendor_name, category_name, item_description, is_test);

モデルを作成する

貢献度分析モデルを作成する:

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    BigQuery に移動

  2. クエリエディタで次のステートメントを実行します。

    CREATE OR REPLACE MODEL bqml_tutorial.liquor_sales_model
    OPTIONS(
      model_type = 'CONTRIBUTION_ANALYSIS',
      contribution_metric = 'sum(total_bottle_cost)/sum(total_sales)',
      dimension_id_cols = ['store_name', 'city', 'vendor_name', 'category_name', 'item_description'],
      is_test_col = 'is_test',
      min_apriori_support = 0.05
    ) AS
    SELECT * FROM bqml_tutorial.iowa_liquor_sales_data;

クエリが完了するまでに約 35 秒かかります。完了後、モデル liquor_sales_model が [エクスプローラ] ペインの bqml_tutorial データセットに表示されます。このクエリでは CREATE MODEL ステートメントを使用してモデルを作成するため、クエリの結果はありません。

モデルから分析情報を取得する

ML.GET_INSIGHTS 関数を使用して、貢献度分析モデルによって生成された分析情報を取得します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    BigQuery に移動

  2. クエリエディタで次のステートメントを実行します。

    SELECT
      *
    FROM
      ML.GET_INSIGHTS(
        MODEL `bqml_tutorial.liquor_sales_model`)
    ORDER BY aumann_shapley_attribution DESC;

    出力の最初の数行は次のようになります。

    +---------------------------------------------+------------+--------------+----------------------+---------------------------+------------------+---------------------+---------------------+-------------------------+-----------------------------+--------------------------------+----------------------------+----------------------+
    |                contributors                 | store_name |     city     |     vendor_name      |       category_name       | item_description |     ratio_test      |    ratio_control    | regional_relative_ratio | ambient_relative_ratio_test | ambient_relative_ratio_control | aumann_shapley_attribution |   apriori_support    |
    +---------------------------------------------+------------+--------------+----------------------+---------------------------+------------------+---------------------+---------------------+-------------------------+-----------------------------+--------------------------------+----------------------------+----------------------+
    | ["vendor_name=HEAVEN HILL BRANDS"]          | NULL       | NULL         | HEAVEN HILL BRANDS   | NULL                      | NULL             | 0.06082442061831622 | 0.05884218073008315 |      1.0336873967558387 |          0.8698365450783194 |              0.811596664491199 |      1.5104196544869235E-4 | 0.055361944752340866 |
    | ["category_name=CANADIAN WHISKIES"]         | NULL       | NULL         | NULL                 | CANADIAN WHISKIES         | NULL             | 0.05660065322101707 | 0.05527494446064277 |      1.0239839003604652 |          0.7978770326280865 |             0.7503324937642422 |       9.208157188656863E-5 |  0.09035117733470034 |
    | ["category_name=STRAIGHT BOURBON WHISKIES"] | NULL       | NULL         | NULL                 | STRAIGHT BOURBON WHISKIES | NULL             |  0.0780561336687973 | 0.07963402619292285 |      0.9801856995111244 |          1.1380300531561078 |              1.123518997118609 |      -3.521056388489075E-5 |  0.09069759353047172 |
    | ["vendor_name=JIM BEAM BRANDS"]             | NULL       | NULL         | JIM BEAM BRANDS      | NULL                      | NULL             | 0.07626103548689916 | 0.07922409994920188 |      0.9625989507712601 |          1.1085644148611702 |             1.1170286930895665 |     -1.7964572365978545E-4 |  0.08232281614374977 |
    | ["city=CEDAR RAPIDS"]                       | NULL       | CEDAR RAPIDS | NULL                 | NULL                      | NULL             | 0.06564795345695407 | 0.06914461951551351 |      0.9494296724306232 |          0.9431496213564421 |              0.964181423999566 |      -2.369897107336527E-4 | 0.060593459713451064 |
    | ["vendor_name=SAZERAC COMPANY  INC"]        | NULL       | NULL         | SAZERAC COMPANY  INC | NULL                      | NULL             | 0.06564824170155907 | 0.06728069733579875 |      0.9757366421740239 |           0.939610729279885 |             0.9343443980070573 |     -3.1033262381369034E-4 |  0.11571276474865996 |
    +---------------------------------------------+------------+--------------+----------------------+---------------------------+------------------+---------------------+---------------------+-------------------------+-----------------------------+--------------------------------+----------------------------+----------------------+
    

    出力から、データ セグメント vendor_name=HEAVEN HILL BRANDS のオーマン シャプレー アトリビューションが最も高く、売上比率の変化に最も大きく貢献していることがわかります。この差異は、ratio_test 列と ratio_control 列でも確認できます。この列は、テストデータとコントロール データの比率を示しています。regional_relative_ratioambient_relative_ratio_testambient_relative_ratio_control などの他の指標は、コントロールとテストの比率の関係と、それらが全体の集団とどのように関連しているかを示す追加の統計情報を計算します。詳細については、合計可能な比率指標の出力列をご覧ください。

クリーンアップ

  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.