無料Google Sheetsで始める売上・アクセスデータの異常検知入門
データ分析は、ビジネスの現状を理解し、将来の意思決定に役立てるための強力な手段です。しかし、「データ分析」と聞くと、専門的な知識や高価なツールが必要だと感じ、一歩踏み出せないという方もいらっしゃるかもしれません。
このサイトでは、コストをかけずにデータ分析を始めるための無料ツールと、その具体的な使い方をご紹介しています。今回は、日々の業務で目にする売上データやWebサイトのアクセスデータなど、時系列データに潜む「異常」を検知するための基本的なアプローチを、身近なツールであるGoogle Sheetsを使って行う方法を解説します。
異常検知とは何か? なぜビジネスで重要なのか?
異常検知とは、データの中で通常とは異なるパターンや外れ値を特定する分析手法です。ビジネスの文脈では、例えば以下のようなケースが異常と見なされることがあります。
- 売上の急激な増加や減少: 想定外のプロモーション効果、競合の動き、システム障害など、原因を特定し対策を講じる必要があります。
- Webサイトアクセス数の異常な変動: SEO順位の急落、広告効果の変化、サーバーダウン、不正アクセスなどの兆候かもしれません。
- サービスの利用状況の急変: 特定機能のバグ、ユーザー行動の変化などが考えられます。
このような異常を早期に発見することは、機会損失を防いだり、リスクに迅速に対応したり、あるいは予期せぬ成功要因を見つけたりするために非常に重要です。
なぜGoogle Sheetsで異常検知を始めるのか?
専門的な異常検知ツールやプログラミング言語(Pythonなど)は高度な分析が可能ですが、導入や学習に時間とコストがかかります。一方で、Google Sheetsは多くのビジネスパーソンが日常的に利用しており、特別な環境構築も不要です。
Google Sheetsでも、簡単な統計的手法を用いることで、基本的な異常検知を行うことができます。特に、時系列データ(時間の経過とともに観測されるデータ)に対して、過去の傾向から大きく外れるポイントを見つけるアプローチは、Sheetsで比較的容易に実装できます。
もちろん、Sheetsでの手法は複雑な異常パターンや大量データには向きませんが、データ活用の第一歩として、自身の業務データで「何かいつもと違うぞ?」という変化を捉えるには十分役立ちます。
Google Sheetsで実践する簡単な異常検知の手順
ここでは、過去データから算出した「平均的な値」と「ばらつきの度合い」を使って、最新のデータがそれらからどの程度外れているかを判断する基本的な異常検知手法を解説します。具体的には、「移動平均」と「標準偏差」を利用します。
準備:データを用意する
まず、分析したい時系列データを用意します。Google Sheetsに、日付または時間の列と、対象となる数値データ(売上、アクセス数など)の列があることを確認してください。
例:日別の売上データ
| 日付 | 売上 | | :------- | :--- | | 2023/10/1 | 50000 | | 2023/10/2 | 55000 | | ... | ... | | 2023/10/30| 52000 | | 2023/10/31| 150000 | <-- 異常かも?
手順1:移動平均を計算する
移動平均とは、特定期間のデータの平均値を計算し、それを期間をずらしながら連続的にプロットしたものです。データの短期的な変動をならし、長期的なトレンドや周期性を把握しやすくします。
異常検知では、移動平均を「その時点での通常の値」の目安として使用します。
Google Sheetsでは、AVERAGE
関数とセル参照を組み合わせて計算できます。例えば、7日間の移動平均を計算する場合を考えます。データがB列にあるとして、C列に移動平均を計算します。
- C8セルに、過去7日間の売上(B2からB8)の平均を計算します。
excel =AVERAGE(B2:B8)
- 次に、C8セルの右下のフィルハンドルをダブルクリックまたはドラッグして、数式をデータがある最終行までコピーします。これにより、各日付に対応する過去7日間の移動平均が計算されます。
手順2:移動標準偏差を計算する
標準偏差とは、データが平均値からどの程度散らばっているか(ばらつきの度合い)を示す指標です。標準偏差が大きいほどデータは平均値から広く散らばっており、小さいほど平均値の近くに集中しています。
異常検知では、移動平均と同様の期間で標準偏差を計算し、「通常の値からのばらつきの許容範囲」の目安として使用します。
Google Sheetsでは、STDEV.S
関数を使って計算できます。移動平均と同じく、7日間の移動標準偏差をD列に計算します。
- D8セルに、過去7日間の売上(B2からB8)の標準偏差を計算します。
excel =STDEV.S(B2:B8)
補足:STDEV.S
は標本標準偏差を計算します。データ全体であればSTDEV.P
を使用します。ここでは直近のデータ期間を「標本」とみなすためSTDEV.S
が一般的です。 - D8セルのフィルハンドルをコピーして、数式を最終行までコピーします。
手順3:異常値のしきい値を設定する
移動平均(通常の値)と移動標準偏差(ばらつきの度合い)を使って、異常と判断するための上限と下限のしきい値を設定します。一般的な方法として、「移動平均 ± n × 移動標準偏差」という形で設定します。この n
には何らかの値を設定しますが、通常は2や3といった値が使われます。例えば n=2
とすると、「移動平均から標準偏差の2倍以上離れているデータ」を異常候補とみなすことになります。
E列に上限しきい値、F列に下限しきい値を計算します。ここでは n=2
と仮定します。
- E8セルに上限しきい値を計算します。
excel =C8 + 2*D8
- F8セルに下限しきい値を計算します。
excel =C8 - 2*D8
- E8セルとF8セルの数式を最終行までコピーします。
手順4:異常値を判定する
最後に、実際の売上データが設定したしきい値の範囲内に収まっているかを確認します。範囲外であれば異常値候補となります。G列に判定結果を表示します。
- G8セルに、売上(B8)が上限しきい値(E8)と下限しきい値(F8)の間に収まっているかを判定する式を入力します。
excel =IF(AND(B8<=E8, B8>=F8), "正常", "異常候補")
補足:AND
関数は複数の条件がすべて真(TRUE)の場合に真を返します。IF
関数は、条件が真なら最初の値を、偽(FALSE)なら2番目の値を返します。ここでは、売上が下限以上かつ上限以下なら「正常」、そうでなければ「異常候補」としています。 - G8セルの数式を最終行までコピーします。
これで、G列に各日のデータが「正常」か「異常候補」かが表示されます。
さらに、異常候補の行を見やすくするために、「条件付き書式」を設定することもおすすめです。G列を選択し、「表示形式」メニューから「条件付き書式」を選択します。「テキストを含みます」で「異常候補」を選び、背景色や文字色を赤にするなどの設定を行います。
分析結果の活用例
この分析により、「異常候補」と判定された日付を特定できます。その日付に何が起きたのか、原因を調査することで、ビジネス上の重要な洞察を得ることができます。
- 売上データ: 異常な高値があれば、その日のプロモーションやニュースの影響を調べ、成功要因を特定します。異常な安値があれば、システム障害、競合の値下げ、在庫切れなどを調査し、再発防止や改善策を検討します。
- アクセスデータ: 急増があれば、メディア露出やSNSでの話題化などを確認します。急減があれば、検索エンジンのアップデート、広告配信停止、Webサイトの技術的な問題などを確認し、迅速な対応を行います。
この手法のメリット・デメリット
- メリット:
- Google Sheetsだけで完結でき、追加コストがかかりません。
- 表計算ソフトの基本的な操作スキルがあれば実装できます。
- 時系列データの基本的な変動を捉え、外れ値候補を特定するのに役立ちます。
- デメリット:
- 「異常」の定義がシンプルすぎ、複雑なパターン(季節性の中の異常、複数の要因が絡む異常など)を検出するのは困難です。
- 移動平均や標準偏差を計算する期間(上記例では7日間)や、しきい値の幅(標準偏差の何倍か)のパラメータ設定が分析結果に影響し、適切な値を決めるのが難しい場合があります。
- データ量が非常に多い場合、Sheetsでの計算が重くなる可能性があります。
まとめ:データ活用の第一歩として
Google Sheetsを使った簡単な異常検知は、高度なツールを使わずとも、日々のビジネスデータに隠された重要な変化の兆候を捉えるための有効な第一歩となります。すべての「異常候補」が真の異常であるとは限りませんが、これをきっかけにデータに注意を払い、原因を探るプロセスは、データに基づいた意思決定の習慣を養うことに繋がります。
まずは、自身の関わるデータでこの手法を試してみてはいかがでしょうか。さらに高度な分析が必要になった場合は、無料のGoogle ColabでPythonを使った時系列分析や異常検知ライブラリを利用するなど、次のステップに進むことを検討してみてください。
このサイトでは、他にも様々な無料ツールを使ったデータ分析手法をご紹介していますので、ぜひご参照ください。