サロン経営ラボRefine
  • ホーム
  • 当サイトについて
    • 当サイトの説明
    • 管理人自己紹介
    • 経営とコンサルティングについて
  • 経営ブログ
    • データ分析実装
    • 経営戦略
    • 人事・労務
  • 学習ブログ
    • 経営戦略(学習)
    • データ分析(学習)
    • マーケティング(学習)
    • 財務・会計(学習)
  • 書籍レビュー
    • 経営戦略(書籍)
    • データ分析(書籍)
    • マーケティング(書籍)
    • 財務・会計(書籍)
  • お問い合わせ
    • お問い合わせ
    • プライバシーポリシー
サロン経営ラボRefine
より良い経営を探求する
データ分析実装経営ブログ

美容室の売上高を重回帰分析でモデリング

【重回帰分析】

by Yoshinori Inoue 2023年11月14日
written by Yoshinori Inoue 2023年11月14日
1.9K

目次

  • データの読み込みと説明
    • 読み込み
      • 仮説を立ててみる
    • EDA(Explanatory Data Analysis)
      • 要約統計量
      • 相関行列
      • VIF
  • モデリング
    • モデル1
      • モデル1学習(scikit-learnバージョン)
      • モデル1結果解釈
      • モデル1学習(statsmodelsバージョン)
      • モデル1で予測
    • モデル2
      • モデル2学習
      • モデル2で予測
    • モデル3
      • モデル3学習
  • 3つのモデルを比較する
  • 参考書籍
    • 多変量解析法入門 (ライブラリ新数学大系) 
    • 機械学習のエッセンス -実装しながら学ぶPython,数学,アルゴリズム- (Machine Learning) 

こんにちは美容室経営研究所Refineの井上です。

今回は、美容室を複数店舗運営している企業で店舗ごとの売上高データを利用して重回帰分析を行っていこうと思います。

※データはあくまで例であり、私が作成した人工データです!

データの読み込みと説明

読み込み


以下のデータフレームが今回用意したデータセットです。

import numpy as np 
import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib

#データの読み込み
df = pd.read_excel('beauty_salon_data.xlsx')
df

各変数について説明します。

  • 「駅徒歩15分以内」は、店舗の立地が駅から徒歩15分以内であれば1、そうでなければ0のダミー変数が付与されています。
  • 「店舗席数」は、そのまま店舗の座席数を表しています。
  • 「ホットペッパー掲載費」は、月間のホットペッパービューティー掲載費用です。(ここでは77,000円と154,000円の2種類としています)
  • 「ホットペッパー評価」は、ホットペッパービューティーの口コミページに表示される星の平均値です。5点満点なので標準化しようか迷いましたが、解釈性を優先してそのまま使用しています。
  • 「スタッフ数」は、店舗ごとのスタッフ数です。
  • 「売上」は、店舗ごとの月間売上高です

仮説を立ててみる

上記のデータからどのような仮説が立てられるか考えてみます。

一般的な感覚として、各説明変数は売上高に対してプラスに働きそうな感じがしますね。

理想としては、算出されたパラメータがプラスであることで売上高を説明できればと思います。

同じような働きの変数同士の多重共線性に注意しながら重回帰分析を実行していきたいと思います。

EDA(Explanatory Data Analysis)


要約統計量

要約統計量を表示してみます。

df.describe()

データの各変数について説明していきます。

データ数は30件、要するに30店舗分のデータとしています

売上高を目的変数yとしてモデリングしていきます。

# 説明変数と目的変数に分ける
X = df[['駅徒歩15分以内','店舗席数','ホットペッパー掲載費(万/月)','ホットペッパー評価(平均)','スタッフ数']]
y = df['売上(万)']

相関行列

説明変数同士の相関係数をプロットします。

計算は以下の通りです。

$$\rho_{ij} = \frac{\text{Cov}(X_i, X_j)}{\sigma_{X_i} \sigma_{X_j}}$$

相関行列の表示には、seabornのheatmapを使用します。

import seaborn as sns

correlation_matrix = X.corr()
plt.figure(figsize=(10, 8))
sns.heatmap(correlation_matrix, annot=True, cmap='bwr')
plt.title('Correlation Matrix')
plt.show()

結果を見る限り、強い相関がある組み合わせはなさそうですね。

VIF

説明変数に多重共線性が発生していないか確認するために変数インフレーション係数(Variance Inflation Factor、VIF)を計算しようと思います。

VIFの計算式と判断目安の基準を以下に記載します。

$$
VIF_i = \frac{1}{1 – R_i^2}
$$

  • VIF = 1: ほとんどまたは全く共線性なし。
  • 1 < VIF < 5: 一般的に容認可能だが、値が大きくなるにつれて、。
  • VIF ≥ 5: この値は、中程度から高い共線性の存在を示唆している。このレベルでは、特にVIFが10に近づくにつれて、共線性が統計分析に与える影響に注意が必要。
  • VIF ≥ 10: この値は、非常に高い共線性を示し、回帰モデルの信頼性に影響を及ぼす可能性がある。このレベルでは、モデルから変数を除外する、または他の方法で問題を緩和する必要があるかもしれない。
from statsmodels.stats.outliers_influence import variance_inflation_factor

# 各特徴量のVIF
vif_data = pd.DataFrame()
vif_data["Feature"] = X.columns
vif_data["VIF"] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])]
vif_data

VIFを見る限り、駅徒歩15分以内の変数と、ホットペッパー掲載費以外の変数はダメそうですね。

あまり変数を減らしたくないので、とりあえずこのまま分析してみようと思います。

ページ: 1 2 3

ブログ経営美容室
previous post
美容室の顧客離反の生存時間分析
next post
美容室の新メニューに対する顧客反応分析

You may also like

サロン経営ノート...

2024年8月29日

サロン経営ノート...

2024年8月11日

サロン経営ノート...

2024年7月27日

顧客特性をグルー...

2024年4月12日

顧客の来店頻度を...

2024年4月11日

売上高の時系列分...

2023年11月28日

売上高の時系列分...

2023年11月22日

美容室の新メニュ...

2023年11月18日

美容室の顧客離反...

2023年11月10日

Category search

【Author】

井上 慶典

Yoshinori Inoue


株式会社Nfractal(美容室)代表取締役

経営コンサルタント

専門分野


経営戦略

マーケティング分析

論理思考

興味関心


機械学習

ベイズ統計学

経営全般

保有資格


美容師

管理美容師

統計検定準1級

ビジネス統計スペシャリスト

最近の投稿

  • 「現代数理統計学の基礎」(久保川著) 2章の演習問題を解いてみる
  • サロン経営ノート(ロジカルシンキング編)―論理的思考を深める―
  • サロン経営ノート(経営戦略編)―中小企業の負けないための戦い方―
  • 確率分布(probability distribution)曼荼羅
  • サロン経営ノート(分析編)―データ分析をどう活用できるか―
  • Facebook
  • Linkedin
  • ホーム
  • 当サイトについて
    • 当サイトの説明
    • 管理人自己紹介
    • 経営とコンサルティングについて
  • 経営ブログ
    • データ分析実装
    • 経営戦略
    • 人事・労務
  • 学習ブログ
    • 経営戦略(学習)
    • データ分析(学習)
    • マーケティング(学習)
    • 財務・会計(学習)
  • 書籍レビュー
    • 経営戦略(書籍)
    • データ分析(書籍)
    • マーケティング(書籍)
    • 財務・会計(書籍)
  • お問い合わせ
    • お問い合わせ
    • プライバシーポリシー

@2019 - All Right Reserved. Designed and Developed by PenciDesign

サロン経営ラボRefine
  • ホーム
  • 当サイトについて
    • 当サイトの説明
    • 管理人自己紹介
    • 経営とコンサルティングについて
  • 経営ブログ
    • データ分析実装
    • 経営戦略
    • 人事・労務
  • 学習ブログ
    • 経営戦略(学習)
    • データ分析(学習)
    • マーケティング(学習)
    • 財務・会計(学習)
  • 書籍レビュー
    • 経営戦略(書籍)
    • データ分析(書籍)
    • マーケティング(書籍)
    • 財務・会計(書籍)
  • お問い合わせ
    • お問い合わせ
    • プライバシーポリシー