カスタム数式:構文と定義

  • 更新

イベントセグメンテーションまたはデータテーブルチャートでは、[Measured As Module](モジュールとして測定)の[アドバンスト]ドロップダウンの[数式]オプションを利用することで、さらに柔軟な分析を実行できます。カスタム数式は、同じチャートでさまざまな分析を比較する際にも便利です。

20以上のカスタム数式から選択して、必要なメトリクス(指標)をチャートに表示します。セミコロンで区切ることで、同じチャートに最大6つの数式の結果をプロットできます。

この記事では、カスタム数式の仕組みを、今すぐ使用できる数式を例にとって説明します。

注:Experiment Results(実験結果)チャートも数式メトリクスを使用しますが、Event Segmentation(イベントセグメンテーション)チャートやData Table(データテーブル)チャートとは異なる方法で使用しています。これらの違いについて、詳しくはAmplitudeの実験結果チャートでの数式メトリクスの使用に関する、こちらのヘルプセンターの記事を参照してください

利用可能な数式のリスト

ACTIVE LOG10 PROPSUM
ARPAU PERCENTILE REVENUETOTAL
AVG POWER ROLLAVG
CUMSUM PROPAVG ROLLWIN
EXP PROPCOUNT SQRT
FREQPERCENTILE PROPCOUNTAVG TOTALS
HIST PROPHIST TRENDLINE
LN PROPMAX UNIQUES
LOG PROPMIN  

 

数式構文

数式で、イベントモジュールで対応する文字で選択したイベントを参照します。関数とパラメータは大文字小文字を区別しません。次の算術演算を実行することもできます。

  • 括弧()
  • 追加(+)
  • 減算(-)
  • 乗算(*)
  • 除算(/)

例えば、以下の数式UNIQUES(A)の文字Aは、イベントView Item Details(アイテムの詳細を表示する)を参照し、数式UNIQUES(B)の文字Bは、イベントAdd Item to Cart(カートにアイテムを追加する)を参照しています。このセットアップは、アイテムの詳細を見たユーザーとアイテムをカートに入れたユーザーの比率を表示します。

custom_formulas_1.png

各イベントを1つまたは複数のプロパティでグループ化して、複数のイベントで構成される数式を作成することもできます。ただし、数式が有効であるためには、区分しているすべてのイベントにわたって、プロパティの値が一致している必要があります。

例えば、Page Nameというイベントがある場合、次のプロパティ値は一致しません

  • TutorialTUTORIAL(マッチングは大文字小文字を区別します)
  • 11.0(文字の不一致)

項目でプロパティをグループ化する順序も同様です。両方のイベントで、grouped by(グループ化する項目)の値の順序が同じでないと、イベントのgrouped by値が一致しないという警告が表示されます。

custom_formulas_group_by_error.png

カスタム数式を使用して、1つのコホートのユーザーが、別のコホートのユーザーよりも何回多く特定のイベントをトリガーしているかを特定することもできます。

2つの異なるコホートまたはユーザーセグメント間のメトリクスを比較するには、UNIQUES(A1)/UNIQUES(A2)のように、イベントを指定する文字にセグメントの番号を追加します。これにより、同じイベントでの2つのコホートのパフォーマンス比率が、グラフ上にプロットされた1本の線として表示されます。

custom_forumlas_2.png

数式に次の接頭辞を追加することで、パーセンテージまたはドルでメトリクスを表示することもできます。

  • パーセンテージ(%:)
  • ドル($:)

メトリクス式

メトリクス式では、関心のある特定のイベントのメトリクスについてクエリできます。これらの数式は、で色分けされます。各メトリクス式は、パラメータとして、関心のあるイベントに対応する文字を必要とします。

ACTIVE

構文:ACTIVE(イベント(に対応する文字))

  • イベント:関心のあるイベントを参照します。これは、Events(イベント)カードのイベントに対応する文字でなければなりません。

ACTIVE数式は、イベントをトリガーしたアクティブユーザーの割合を返します。これは、Measured(測定済み)カードのActive %メトリクスと同じですが、ここでは小数点数形式で表示されます。以下のセットアップは、View Item Details(アイテム詳細の表示)イベントをトリガーしたアクティブユーザーの割合を表示します。

custom_formulas_active.png

AVG

構文:AVG(イベント)

  • イベント:関心のあるイベントを参照します。これは、チャートコントロールパネルの左側のモジュールのイベントに対応する文字でなければなりません。

イベントがトリガーされた回数の平均を返します。この関数は、TOTALS(イベント)/UNIQUES(イベント)と同じ値になります。以下に示すセットアップは、View Item Details(アイテム詳細の表示)がトリガーされた回数とAdd Item to Cart(アイテムをカートに追加)がトリガーされた回数の比率、View Item Details(アイテム詳細の表示)がトリガーされた平均回数、Add Item to Cart(アイテムをカートに追加)がトリガーされた平均回数を表示します。

custom_formulas_avg.png

TOTALS

構文:TOTALS(イベント)

  • イベント:関心のあるイベントを参照します。これは、チャートコントロールパネルの左側のモジュールのイベントに対応する文字でなければなりません。

イベントがトリガーされた合計数を返します。以下のセットアップは、アイテムの詳細が閲覧された合計回数と、アイテムがカートに追加された合計回数を表示します。

custom_events_totals.png

ユニーク数

構文:UNIQUES(イベント)

  • イベント:関心のあるイベントを参照します。これは、Events(イベント)カードのイベントに対応する文字でなければなりません。

イベントをトリガーしたユニークユーザー数を返します。例えば、次のセットアップは、アイテムの詳細を見たユーザーとカートにアイテムを追加したユーザーの比率を示しています。

custom_formulas_uniques.png

HIST

構文:HIST(イベント)

  • イベント:関心のあるイベントを参照します。これは、Events(イベント)カードのイベントに対応する文字でなければなりません。

選択した期間のユニークユーザーあたりのイベント頻度の分布を返します。次のセットアップは、Complete Purchase(購入完了)イベントのイベント頻度の分布を表示します。

custom_formulas_hist.png

過去30日間に、22,075人のユーザーが5回購入を完了したことがわかります。

FREQPERCENTILE

構文:FREQPERCENTILE(イベント, パーセンテージ)

  • イベント:関心のあるイベントを参照します。これは、Events(イベント)カードのイベントに対応する文字でなければなりません。
  • パーセンテージ関心のあるパーセンタイル値を参照します。これは、1以下の値でなければなりません。

全ユーザーのイベント頻度について、入力されたパーセンタイルの値を返します。パーセンタイルは、所与のパーセンテージの測定対象が、その値未満になることを示すメトリクスです。例えば、次の数式は、View Item Details(アイテム詳細の表示)イベントをトリガーしたユーザーの90パーセンタイルを表示します。

c_f_freqpercentile.png

次に、この情報使ってパワーユーザーの行動コホートを作成し、それをさらに分析することによって、このコホートに入らないユーザーとの違いを確認することができます。

PERCENTILE

構文:PERCENTILE(イベント, パーセンテージ)

  • イベント:関心のあるイベントを参照します。これは、Events(イベント)カードのイベントに対応する文字でなければなりません。
  • パーセンテージ:関心のあるパーセンタイルの値を参照します。これは、1以下の値でなければなりません。

注:この関数は、イベントを数値プロパティのみでグループ化している場合のみ機能します。

グループ化しているプロパティについての、入力されたパーセンタイルの値を返します。例えば、次の数式は、すべてのComplete Purchase(購入完了)イベントの収益の90パーセンタイルを返します。

c_f_percentile.png

PERCENTILE数式は、読み込み時間をトラッキングしていて、一定の割合の読み込み時間が特定のしきい値未満であることを保証しようとしている場合などにも有用です。

PROPSUM

構文:PROPSUM(イベント)

  • イベント:関心のあるイベントを参照します。これは、Events(イベント)カードのイベントに対応する文字である必要があります。イベントは、合計するプロパティでグループ化する必要があります。
  • この関数は、イベントの数値プロパティでグループ化されている場合のみ機能します。複数のプロパティでグループ化する場合、数式は、最初のGROUP BY(グループ化)句で計算を実行します。

指定されたイベントをグループ化しているプロパティ値の合計を返します。例えば、このビジュアライゼーションは、Complete Purchase(購入完了)イベントから得られた総収益を示しています。

c_f_propsum.png

PROPAVG

構文:PROPAVG(イベント)

  • イベント:関心のあるイベントを参照します。これは、Events(イベント)カードのイベントに対応する文字でなければなりません。
  • この関数は、イベントの数値プロパティでグループ化されている場合のみ機能します。複数のプロパティでグループ化する場合、数式は、最初のGROUP BY(グループ化)句で計算を実行します。

グループ化しているプロパティ値の平均を返します。この関数は、PROPSUM(イベント)/TOTALS(イベント)と同じ値になります。次のセットアップは、特定の日の購入完了から得られた収益の平均を表示します。

propavg_sidecontrols.png

PROPHIST

構文:PROPHIST(イベント)

  • イベント:関心のあるイベントを参照します。これは、Events(イベント)カードのイベントに対応する文字でなければなりません。
  • この関数は、イベントの数値プロパティでグループ化されている場合のみ機能します。複数のプロパティでグループ化する場合、数式は、最初のグループ化句で計算を実行します。

選択した期間のグループ化しているプロパティ値の分布を返します。次のセットアップは、過去30日間の収益の分布を表示します。

prophist_sidecontrols.png

PROPCOUNT

構文:PROPCOUNT(イベント)

  • イベント:関心のあるイベントを参照します。これは、Events(イベント)カードのイベントに対応する文字である必要があります。複数のプロパティでグループ化する場合、数式は最初のGROUP BY(グループ化)句で計算を実行します。

イベントがグループ化されているプロパティの異なるプロパティ値の数を返します。以下の例では、数式は、詳細が閲覧されたすべてのアイテムに対応する異なる部門の数を取得します。

propcount_sidecontrols.png

PROPCOUNTは、異なるプロパティ値の推定値であることに注意してください。この推定は、HyperLogLogアルゴリズムによって生成され、精度は、処理するデータの量によって異なります。プロパティのカーディナリティに応じて、12,000未満のユニーク値では0.1%の範囲の相対誤差、12,000を超えるユニークなプロパティ値では、最大0.5%の範囲で相対誤差が想定されます。

PROPCOUNTAVG

構文:PROPCOUNTAVG(イベント)

  • イベント:関心のあるイベントを参照します。これは、Events(イベント)カードのイベントに対応する文字である必要があります。複数のプロパティでグループ化する場合、数式は、最初のGROUP BY(グループ化)句で計算を実行します。

指定されたプロパティで、各ユーザーが持っている異なる値の平均数を返します。

例えば、音楽アプリ加入者が聞く楽曲ジャンルの平均数に関心があるとしましょう。曲が再生されるたびに、Play Song or Video(曲または動画を再生)イベントがトリガーされます。再生された各曲は、Genre_Type(ジャンル_タイプ)イベントプロパティもキャプチャします。Genre_Typeでグループ化されたPlay Song or VideoPROPCOUNTAVGを実行すると、Play Song or Videoを再生するユーザーのユニークなGenre_Type値の平均数がわかります。

PROPMAX

構文:PROPMAX(イベント)

  • イベント:指定されたイベントをグループ化しているプロパティの最大値を返します。プロパティは、数値である必要があります。複数のプロパティでグループ化する場合、計算は、最初のGROUP BY(グループ化)句を使用して実行されます。

PROPMIN

構文:PROPMIN(イベント)

  • イベント:指定されたイベントをグループ化しているプロパティの最小値を返します。プロパティは、数値である必要があります。複数のプロパティでグループ化する場合、計算は、最初のGROUP BY(グループ化)句を使用して実行されます。

REVENUETOTAL

構文:$:REVENUETOTAL(イベント)

  • イベント:収益イベントを参照します。これは、Events(イベント)カードのイベントに対応する文字である必要があります。
  • この関数は、イベントの数値プロパティでグループ化されている場合のみ機能します。また、

通貨形式でプロパティの合計を返します。これは、PROPSUM(イベント)と同じ値になります。例えば、次のセットアップは、購入から得られた日ごとの総収益を示しています。

revtotal_sidecontrols.png

上記のスクリーンショットでわかるように、$:接頭辞はオプションです。これによって、必ず通貨形式で出力されます。

 

ARPAU

構文:$:ARPAU(イベント)

  • イベント:収益イベントを参照します。これは、Events(イベント)カードのイベントに対応する文字でなければなりません。
  • この関数は、イベントの数値プロパティでグループ化されている場合のみ機能します。

通貨形式の収益イベントプロパティの合計を、同じ期間のユニークアクティブユーザー数で割った値を返します。これは、PROPSUM(イベント) / UNIQUES(任意のアクティブイベント)と同じ値になります。

例えば、次のセットアップは、一般的なeコマース企業のアクティブユーザーあたりの平均収益を示しています。

ARPAU_sidecontrols.png

上記のスクリーンショットでわかるように、$:接頭辞はオプションです。これによって、必ず通貨形式で出力されます。

 

集計数式

集計数式では、関心のあるメトリクスとイベントのローリング平均またはローリングウィンドウでクエリできます。これらの数式は、紫で色分けされます。各集計数式には、集計しているメトリクス、関心のあるイベント、集計する間隔の3つのコンポーネントが必要です。

ROLLAVG

構文:ROLLAVG(メトリクス、イベント、間隔数)

  • メトリクス:集計するメトリクス。これは、上記のメトリクス式の1つです。
  • イベント:関心のあるイベントを参照します。これは、Events(イベント)カードのイベントに対応する文字でなければなりません。
  • 間隔数:ローリング平均に含める5分間隔、時間、日、週、または月の数。例えば、日次チャートでは、日間隔のローリング平均のみを許可します。ローリング平均の最大範囲は、5分間隔×36(合計3時間)、72時間、90日、12週間、または12ヶ月です。

選択されたイベントのメトリクスを選択した間隔でローリング平均で返します。例えば、次のチャートは、週次ローリング平均を、日次アクティブユーザーの上に重ねて表示しています。

rollavg_sidecontrols.png

下の青い線は日次アクティブユーザーを示し、緑の線は週次ローリング平均を示しています。これは、日次アクティブユーザー数がローリング平均よりも高いか低いかを確認するのに便利です。

rollavg_linechart.png

 

ROLLWIN

構文:ROLLWIN(メトリクス、イベント、5分間隔数/時間/日/週/月)

  • メトリクス:集計するメトリクス。これは、上記のメトリクス式の1つです。
  • イベント:関心のあるイベントを参照します。これは、Events(イベント)カードのイベントに対応する文字でなければなりません。
  • 間隔数:ローリング平均に含める5分間隔、時間、日、週、または月の数。例えば、日次チャートでは、日間隔のローリング平均のみを許可します。ローリング平均の最大範囲は、5分間隔×36(合計3時間)、72時間、90日、12週間、または12ヶ月です。

入力された日/週/月数のローリングウィンドウで、選択されたイベントのメトリクスを返します。コホートフィルタを使用している場合、コホートフィルタの後にローリングウィンドウ集計が適用されます

例えば、このチャートは、最初に月次アクティブユーザー数を計算してから、各データポイントで新規ユーザー数のみを記入します。

rollwin_sidecontrols.png

ROLLWINBEFORE

構文:ROLLWINBEFORE(メトリクス、イベント、5分間隔数/時間/日/週/月)

  • メトリクス:集計するメトリクス。これは、上記のメトリクス式の1つです。
  • イベント:関心のあるイベントを参照します。これは、Events(イベント)カードのイベントに対応する文字でなければなりません。
  • 間隔数:ローリング平均に含める5分間隔、時間、日、週、または月の数。例えば、日次チャートでは、日間隔のローリング平均のみを許可します。ローリング平均の最大範囲は、5分間隔×36(合計3時間)、72時間、90日、12週間、または12ヶ月です。

入力された日/週/月数のローリングウィンドウで、選択されたイベントのメトリクスを返します。コホートフィルタを使用している場合、コホートフィルタの後にローリングウィンドウ集計が適用されます。

例えば、このチャートは、最初に新規ユーザーを分離し、次に、過去1ヶ月間にアクティブだった数を計算します。

rollwinbefore_sidecontrols.png

CUMSUM

構文:CUMSUM(メトリクス、イベント)

  • メトリクス:集計するメトリクス。これは、上記のメトリクス式の1つです。

選択されたイベントのメトリクスを、チャート期間の日/週/月の現在合計高で返します。

例えば、下のチャートは、過去30日間のComplete Purchase(購入完了)イベントによる収益の日次累計を示しています。2月22日のデータポイントは、2月20日、21日、22日に発生した収益の合計です。

CUMSUM_sidecontrols.png

CUMSUM(UNIQUES,A)は、各データポイントの重複したユニークユーザー数を返します。

 

関数式

関数式では、関心のある特定のイベントとメトリクスについて数学的関数でクエリできます。これらの数式は、青で色分けされます。各関数式には、定数またはイベントを含む別の数式のいずれかの値が必要です。

TRENDLINE

構文:TRENDLINE(値)

  • 値:値は、定数または別の関数である可能性があります(例えば、入力する値はイベントのUNIQUESである可能性があります)。

値のトレンドラインを返します。これは、通常の最小二乗線形回帰で計算されます。このカスタム数式と一緒に別のカスタム数式をプロットして、比較できるようにすることを強くお勧めします。そうでない場合、TRENDLINE関数がチャートに描くのは、コンテキストのない直線になります。

例えば、この関数を使用して、曲またはビデオを購入するユーザー数のトレンドラインを表示し、ユニークユーザー数と比較します。

trendline_sidecontrols.png

EXP

構文:EXP(値)

  • 値:値は、定数または別の関数である可能性があります(例えば、入力する値はイベントのUNIQUESである可能性があります)。受け入れられる最大値は700です。

eを指定した値で累乗した値を返します。例えば、ここでは、eをユーザーがチケットを購入する平均回数累乗しています。

expavg_sidecontrols.png

LOG

構文:LOG(値, 底)

  • 値:値:値は、定数または別の関数である可能性があります(例えば、入力する値はイベントのTOTALSである可能性があります)。
  • 底:定数。底は、定数である必要があり、別の関数を含めることはできません。

底に対する値の対数を戻します。例えば、次の数式は、底3にに対し、ユニークアクティブユーザー数の対数を返します。

log_sidecontrols.png

LOG10

構文:LOG10(値)

  • 値:値は、定数または別の関数である可能性があります(例えば、入力する値はイベントのAVGである可能性があります)。

底10に対する、値の対数を返します。例えば、次の数式は底10に対する、Complete Purchase(購入完了)がトリガーされた平均回数の対数を返します。

log10_sidecontrols.png

LN

構文:LN(値)

  • 値:値は、定数または別の関数である可能性があります(例えば、入力する値はイベントのUNIQUESである可能性があります)。

値の自然対数を返します。これは、数学的定数eの底に対する対数です。例えば、LN(UNIQUES(A))は、イベントAをトリガーしたユニークユーザー数の自然対数を計算します。

POWER

構文:POWER(値, 指数)

  • 値:値:値は、定数または別の関数である可能性があります(例えば、入力する値はイベントのTOTALSである可能性があります)。
  • 指数:定数。指数は、定数である必要があり、別の関数を含めることはできません。

入力された値を指定された指数で累乗した値を返します。例えば、POWER(UNIQUES(A), 2)は、イベントAをトリガーしたユニークユーザー数を返します。

SQRT

構文:SQRT(値)

  • 値:値は、定数または別の関数である可能性があります(例えば、入力する値はイベントのAVGである可能性があります)。

値の平方根を返します。例えば、SQRT(TOTALS(A))は、ユーザーがイベントAをトリガーした総数の平方根を返します。