目次
こんにちは、美容室経営研究所Refineの井上です。
今回は美容室を営む企業で新メニューを導入したときの顧客反応分析を行っていこうと思います。
もちろんデータは私の自作データですのでご注意ください。
データの読み込みと説明
読み込み
import pandas as pd
import numpy as np
data = pd.read_excel("new_menu.xlsx")
data
今回のデータセットを読み込みました。
以下で、各変数について説明します。
- 「性別」は、各顧客の性別です。ここでは男性0、女性1と設定します。
- 「年代」は、各顧客の年代データです。
- 「平均来店周期」は、各顧客の平均の来店周期データです。
- 「来店回数」は、これまでの来店回数を表しています。
- 「新メニュー」は、顧客が新メニューをやってくれたかどうかです。やってくれたら1、やってくれていないなら0です。
300rowsなので、上記の顧客データが300人分集まっているクロスセクションデータであることがわかります。
仮説を立ててみる
ここで各変数から仮説を立ててみましょう。
目的変数である新メニューがどのようなメニューなのかわかりませんので、性別や年代など、説明変数からどのような顧客に好まれているのか見当もつかないですね...
通常のビジネスシーンであれば、あらかじめ狙ったターゲットに対して新メニューを打ち出すことになると思いますので、各変数の傾向も想像つくかと思います。
今回の分析では、とりあえずこのまま仮説を立てずに実行していきます。
お許しください(^▽^;)
EDA(Explanatory Data Analysis)
得られたデータに対してEDAを行っていこうと思います。
まずは、「顧客ID」は変数ではありませんのでインデックスに設定します。
data = data.set_index('顧客ID')次に、全体で新メニューをやった人とまだやっていない人で分けたときに、各変数の平均がどのくらいの割合になっているのか見てみましょう。
# 新メニューの利用状況(0か1)によるグループ化
grouped_data = data.groupby('新メニュー').mean()
grouped_data
これを見ると、来店周期が短めの人が多く新メニューをやってくれているのではないかな?と想像できます。
おそらく金額的に軽量なメニューなのだろうと思います。
相関行列
次は、各変数間の相関係数を見てみます。
# 全変数間の相関係数を計算
correlation_matrix = data.corr()
correlation_matrix
相関係数を見ると、女性の方が来店周期が長い、という直観に反さない傾向がありそうです。
要約統計量
次に要約統計量を見ておきましょう。
# 基本的な記述統計
data.describe()
平均を見ると、男性の方が多めで、新メニューはやってくれていない人が多い、というのがわかります。
男性の方が多いというのは、美容室においては直観に反する内容ですが、自作データなのでそこは見逃してください。
新メニュー比率
では、どのくらいの割合の人が新メニューをやってくれているのでしょう?
# 新メニューの利用者と非利用者の割合
# Normalizeで割合を集計
new_menu_counts = data['新メニュー'].value_counts(normalize=True)
new_menu_counts
18%の人が新メニューを実施したと出ました。
先ほどの新メニューの平均の値と同じですね。0と1のダミー変数なのでそうなります。
