
ThoughtSpotのSpotIQ分析の「傾向分析」についてご紹介します
AkimasaKajitaniです。今回は、SpotIQ分析の「傾向分析」について試してみたいと思います。
SpotIQ分析の傾向分析とは?
SpotIQの傾向分析は、ある時系列データが増加傾向もしくは減少傾向といった「傾向」があるかどうかを判定してくれます。この傾向は見た目の雰囲気ではなく、統計的に有意であるところまで計算されているのでご安心ください。
アルゴリズム的には、最小二乗法を用いて近似直線を作成し、p値を求めてその近似直線が統計的に有意であるかどうかを判定します。さらに、その直線の最大値、最小値の差分(パーセンテージ)が指定値以上であれば傾向あり、として近似直線とともに表示します。
「傾向分析」を行うためには?
SpotIQの傾向分析を行うためには、時系列データを作成する必要があります。チャートタイプは何でもよく、極端な話円グラフでも良いのですが、わかりやすくするためには折れ線グラフや棒グラフ(列グラフ)などでグラフを作ると良いかと思います。
例えば、以下のように検索してみます。

これで以下のようなグラフができます。

3点メニューから「SpotIQ分析」を選択します。

以下の分析タイプ選択画面で「傾向分析」を選択し、「次へ」をクリックします。

次に、列を選択の画面が出ます。ここで数値項目を追加すると、傾向分析の対象として使われます。属性項目を追加しても使われません。

ここでパラメーターをカスタマイズすることも可能です。これは後ほどご紹介します。
「分析」ボタンをクリックすると、分析が開始され、少しすると完了します。完了したら「分析を見る」ボタンが出てくるので、これをクリックしてください。

結果としては、以下のようなものが今回得られました。右端にある「>」ボタンをクリックすると、別のインサイトを見ることができます。

右を一回押してみると、利益の傾向が出てきました。

結果をよく見ると、「Hardware(カテゴリ)」と記載があるかと思います。

これは、「カテゴリ」という項目内の「Hardware」というアイテムでフィルタリングしたデータに対して傾向分析を行った、という意味です。このように、検索トークンで表現した属性は傾向分析においてはフィルタとして機能します。そのため、項目内のアイテムが大量にあるとそれだけ分析に時間がかかる、ということになります。ただ、デフォルト値では結果の算出数は3となっているため、多くの結果が欲しい場合は設定を変更する必要があります。
パラメーターのカスタマイズについて
パラメータのカスタマイズ画面について見てみましょう。基本的に各機能共通のカスタマイズ設定と、各分析手法ごとの設定に分かれています。なお、この設定自体はワンショットの使い捨てになるのでご注意ください(ここで一度設定しても、再度SpotIQ分析を行う際、設定値はリセットされています)。

SpotIQの共通設定
SpotIQの共通設定は以下のとおりです。
- 分析を現在の結果セットに限定
- null値を現在の分析から除外
- メジャー値0を現在の分析から除外
- 現在の分析の日付境界を自動調整する
「分析を現在の結果セットに限定」は非常に重要な設定です。傾向分析を行う際、検索トークンに含めた属性でインサイトが得られないことがあります。内部的に分析対象となっていないからと想定されますが、確実に分析対象にしたい場合は分析したい項目をすべて検索トークン内に入れて、このチェックをオンにしてSpotIQを実行してください。
null値や0を除外するというのは、元データ内でnull値や0がどのような意味を持っているか、で設定を変更する必要があります。例えば、アイテムが存在しない場合にnullの代わりに0が入っているようなときは分析対象から除外すべきでしょう。
その他、メジャー列の最大数、属性列の最大数はそれぞれ0~3の範囲で設定可能ですが、特に変更する必要はないと思われます(どちらかというともっと増やしたいかと思いますが、3が最大のようです)。
現在の分析の日付境界を自動調整するオプションは、ドキュメントでは以下の通り説明されています。
「日付境界の自動調整」がtrueに設定されている場合、クエリに日付時刻フィルターがない場合はThoughtSpotは最小日付と最大日付の両方を除外します。フィルターが含まれている場合はThoughtSpotはクエリに明示的に含まれている日付を含めつつ、極端な日付ポイントを削除します。
傾向分析の詳細設定
上のスクショが途切れているので、傾向分析の詳細設定のスクショを改めて以下の通り掲載します。細かい値のカスタマイズについてはこちら に詳しく書かれています。

- 分析に必要な最小行数
- 最大P値
- 最小相対差異
- 傾向インサイトの最大数
分析に必要な最小行数では、分析に必要な最小行数の設定が可能ですが、減らせばその分精度は落ちます。最低2ポイントは必要です(0にも設定ができますが・・・)。
最大P値は、統計的なしきい値です。帰無仮説が真である確率、というのがこのパラメータの統計的な説明になりますが、より低い値にすると、それだけ正確性があがります。より大きい値にすると、より不確実なものもインサイトとして得られるようになります。なお、0.05(5%)というのは一般的に使われている値です。
最小相対差異は、トレンドとして見る場合に、最初と最後(正確には最小と最大なのですが、モデルが直線なので、最初と最後が最小もしくは最大となります)の相対差がここで設定したパーセンテージより大きい場合にトレンドとみなします(相対差が小さいということは、ほぼ変化がないということです)。ある程度変化がないとトレンドとみなさない、ということであれば、値を大きくしてください。小さい変化を捉えたい場合は値を小さくしてください。
傾向インサイトの最大数はデフォルト3ですが、100とかにも設定可能です(それ以上でもオッケーです)。いくら多くのインサイトがあったとしても、この設定値までしかインサイトを出力してくれません。
その他できること
右上にあるメニューにて「インサイトの保存」もできますが、それ以外に以下のことが可能です。

分析のカスタマイズは、どのようなオプションで分析を行ったのか確認できる機能です。
スケジュール分析は、定期的に同じオプションでSpotIQ分析を行う機能です。

分析詳細は、分析を行った際にどのような組み合わせでインサイトを見つけたかを詳しく確認することができます。

この分析詳細画面において、傾向分析の場合日付項目でしかインサイトが発見されないようになっています。
さらに、SpotIQで作成された各チャートはチャート内の3点メニューからライブボードへのピン留めやダウンロード、同期、分析の詳細の確認などができます。「コピーの作成」を行えば、チャートを自分でカスタマイズすることも可能です。

上のメニューの分析の詳細については、以下のようにどのアルゴリズムで作成されたのか、その時のパラメータがどうだったのかを確認することができます。

制約事項とベストプラクティス
制約事項
- SpotIQ分析では、Group_Aggregation 系の関数は利用できません。
ベストプラクティス
- 「傾向インサイトの最大数」が3に設定されているため、多くのインサイトが見つかってもデフォルト値の場合3つしか結果が出てきません。「傾向インサイトの最大数」は多めに設定することをおすすめします。
- 検索トークンに含まれている項目がデフォルト設定で分析対象とならないことがあるため、確実にトレンドを把握したい場合は、検索トークンに必要な属性、数値項目(メジャー)、日時型を含めた検索結果を作成し、「分析を現在の結果セットに限定」オプションをオンにして実行してください。この時「傾向インサイトの最大数」も大きめの数値に設定した方が良いかと思います。
参考URL
What are the spotIQ algorithms
SpotIQ analysis | ThoughtSpot documentation
※ThoughtSpot バージョン10.15時点の情報です
運営会社

