AI使ったら、一度やってみたかったSaaSに必須のコホート分析が一瞬でできた

SaaSやサブスクリプション型のビジネスを運営していて、顧客の継続状況を把握するためのコホート分析に頭を悩ませていませんか？

「コホート分析という言葉は聞いたことがあるものの専門的な知識がないから、試す気力が湧かない...」「コホート分析は重要だとわかっているけど、データの準備が複雑で時間がかかる...」 「コホート分析の曲線の作り方が分からない...」

そんな悩みを抱えている方に朗報です。データの加工、可視化、分析、レポーティングのためのUIツールの[Exploratory](https://exploratory.io/?utm_campaign=ai-cohort&utm_medium=blog&utm_source=qiita)の「AI プロンプト」を使ったら、これが驚くほど簡単でした。

「AIプロンプト」を使うと、日本語で「コホート分析用のデータを作成して」「月間の生存率を計算して」と指示するだけでコホート分析ができたので、今回は実際に試した内容を紹介します。

# コホート分析とは

サブスク型のビジネスではリテンション率をモニターするのが一般的ですが、リテンション率だけを見ていると問題があります。

例えば、リテンション率が悪化したとき、それが新規の顧客あるいは、既存顧客のどちらに起因するのか、サービスのどこに問題があるのかが分かりません。

これはサブスク型のビジネスのように顧客の継続期間が収益に影響を与えるビジネスにおいて、顧客のサービスの継続期間の状況がわからない、ということを意味します。

そこで登場するのが以下のような**生存曲線**です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/6bc01d5a-b418-4507-89f7-b64864c6d08a.png)

生存曲線は顧客の「利用期間ごとのリテンション率（生存率）」を示したチャートで、時間経過による顧客の継続状況を可視化します。

一方でサービス全体の生存分析をするだけでは、時間の経過に伴う変化や現状を把握できません。

そこで、以下のようにサービスの開始時期ごとに顧客をグループ分けし、それぞれのグループごとに生存曲線を描き比較する**コホート分析**が重要になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/bb4bf188-f339-4f65-aacf-5990a458c3d9.png)

例えば「1月に利用を開始した顧客」と「9月に利用を開始した顧客」の生存率や生存曲線を比較することで、サービス改善の効果や新たな問題点を正確に把握できるのです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/c31da5f6-8040-48fa-9502-d3b4f8a61c9a.png)

このようにコホート分析を行うことで、顧客のサービスの継続状況の実態を正確に把握できるため、経営陣やプロダクトチーム、カスタマーサクセスチームは定期的にコホート分析を行い、サービス改善の効果測定や問題の早期発見に努めます。

# コホート分析の手順

例えば1行が1人の顧客の支払いを表す、よくある支払いデータが手元にある場合を例に考えてみます。（データは[こちら](https://exploratory.io/data/exploratory/TDY9Yyq0?utm_campaign=ai-cohort&utm_medium=blog&utm_source=qiita)からダウンロードいただけます。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/22bdd897-d694-4faf-b892-daac216c40aa.png)

このような支払いデータからコホート分析を行うためには、以下の作業が必要です。

1. コホート分析用のデータを作成する
2. コホート分析を行う

ここからは、それぞれの作業の手順を簡単に紹介します。

## 1. コホート分析用のデータを作成する

コホート分析を行うためのデータの持ち方はいくつかありますが、最も効率的なアプローチは、以下のように1行が1人の顧客を表し、「契約開始日」、「契約終了（予定）日」「キャンセルしているかどうか」の列をもったデータを用意することです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/b7445560-c3ab-46b9-acc0-6748c82d6247.png)

この時点で、頭を抱えたくなる方もいるかと思いますが、このようなデータを用意するには以下の工程が必要です。

1. 顧客ごとの支払い履歴データを収集する
2. 顧客ごとにデータをグループ化する
3. 顧客ごとに最初の支払い日と最後の支払い日を集計する
4. 最後の支払い日をもとに契約終了日を計算する（最後の支払い日が契約終了日ではないため）
5. 契約終了日とデータ上の最後の日付を比べて、契約終了日がデータ上の最後の日付より未来でない場合はキャンセルのフラグをつける

「え、こんなに手順が多いの！？」と驚くかもしれませんが、これが現実です。

大量の支払いデータから顧客ごとの最初と最後の支払日を抽出する作業は、Excelのピボット機能では限界があります。また、日付計算も思わぬ落とし穴があり、例えば「1月31日の1ヶ月後」をどう扱うかなど、細かな考慮が必要になります。

そのため、この一連の手順を完了させるには、SQL、Python、Rなどのプログラミングスキル、あるいはデータ加工の専門知識がない担当者にとっては大きな障壁となります。

## 2. コホート分析を行う

また、何とかコホート分析用のデータを作成したとしても、次に問題になるのが、コホート分析の実践です。

生存曲線の可視化には、一般的にカプランマイヤー法と呼ばれる統計手法が使われます。このカプランマイヤー法を使った処理はExcelでは実現が難しく、RやPythonなどの統計解析用のプログラミング言語を使って実装するのが一般的です。

もちろん、カプランマイヤー法を使わずに、各ユーザーをサービスの利用開始時期ごとにグループに分けて、グループごとにサービスの利用期間ごとのリテンション率をそれぞれ求めていくことはできなくもありません。しかし、それは非常に手間のかかる作業で、やはりSQLなどのプログラミングスキルが必要になります。

このようなハードルがあるため、多くの企業では「重要性はわかっているけれど、実装が難しい」という理由でコホート分析を諦めてしまうケースも少なくありません。

# AIプロンプトでコホート分析を行う

Exploratoryの「AIプロンプト」機能を使えば、このような複雑な処理がたったの2回の指示で完了します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/f4129f9e-92e5-4866-85a1-61de59c1a060.png)

支払いデータが手元にあれば、AIプロンプトに「生存分析用のデータを作成して」とタイプするだけで、必要なデータ処理のステップを、データ分析のための専用言語であるRのコードとして自動的に生成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/e4d7b211-69b6-4f70-836c-2da8873f4aba.png)

これだけで、生存分析の一種であるコホート分析を行うためのデータを作成するためのコードがステップとして追加されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/b795edd8-02c7-4ed7-bf62-c99415096609.png)

これでコホート分析を行う準備が整ったので、コホート分析を実行します。

例えば、「月ごと」の継続状況が、毎年改善しているかを理解したければ、「契約開始月ごとに、月間の生存率を計算して」と指示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/2bb1ad36-3e22-4e66-bb1a-6b53a47a20c8.png)

これだけで、AIが出力したコードがステップとして追加され、カプラン・マイヤー法を利用した、契約開始月ごとの月間の生存率の計算が完了します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/b3d6563e-1344-494d-b9ca-14594e91e937.png)

なお、Exploratoryでは加工したデータを使ってチャートも作れるので、ライン・チャートで、生存期間ごとの生存率を可視化するだけで、コホート分析が完了します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/ee675a85-8414-4d71-b136-e100013a7d6c.png)

「AI プロンプト」を利用すると、データの専門家を雇わなくても、誰でも簡単にコホート分析が行えるようになり、SaaSビジネスの健全性を継続的にモニタリングできるようになります。

# 自分のデータで今すぐ試してみたい！

今回はAIプロンプトを使って、コホート分析用のデータを作成して、コホート分析を行う方法を紹介しました。

これまで専門知識がないと難しかったデータ加工や分析が、たった一行の日本語入力で完了します。そのため、専門知識がなくても、データサイエンティストやプログラマーを雇わなくても、自身の手でSaaS指標の作成や分析が可能になります。

Exploratoryでは30日間の無料トライアルをご用意しているので、気になった方は、ぜひお試しください！

https://exploratory.io/?utm_campaign=ai-cohort&utm_medium=blog&utm_source=qiita