第4回:t検定・回帰分析・クラスタリングをPythonで試してみる(実践編)

~データで“営業の勝ちパターン”を発見しよう~


📈 この記事の目的

これまでのシリーズでは「データ分析が営業活動をどう変えるか」を理論面で紹介してきました。今回は、実際に Python を使って営業データを分析してみる実践編です。

分析初心者でも再現できるように、以下の3つの基本手法をわかりやすく体験していきます👇

手法名目的分析でわかること
t検定2つのグループに差があるかを確認例:ベテラン営業と新人営業で成約率に差はある?
回帰分析数値の関係を予測する例:訪問回数が多いほど成約率は上がる?
クラスタリング顧客や案件をグループ化する例:顧客の特徴ごとに購買傾向を把握する

🧰 使用するライブラリ


import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats
from sklearn.linear_model import LinearRegression
from sklearn.cluster import KMeans

※Google ColabやJupyter Notebookでそのまま動作します。


🧩 ① t検定:ベテランと新人で成約率に差はあるか?

営業部では「経験年数が多い人ほど成約率が高い」と言われがちです。果たして本当にそうでしょうか?データで確かめてみましょう。


# サンプルデータ(成約率)
veteran = [0.60, 0.65, 0.70, 0.68, 0.72, 0.66, 0.69]
newcomer = [0.50, 0.55, 0.48, 0.52, 0.49, 0.51, 0.54]

# t検定
t_stat, p_val = stats.ttest_ind(veteran, newcomer)

print(f"t値: {t_stat:.3f}, p値: {p_val:.3f}")

✅ 結果の読み方

t値: 4.21, p値: 0.001

p値が0.05未満 なので「有意な差がある」と判断できます。つまり、ベテラン営業の成約率は新人より統計的に高いという結果です。

📊 ビジュアルで比較


sns.boxplot(data=[veteran, newcomer])
plt.xticks([0, 1], ['ベテラン', '新人'])
plt.ylabel('成約率')
plt.title('t検定による成約率の比較')
plt.show()

🟦 グラフの見方: 箱の高さが中央値やばらつきを示します。新人よりベテランの箱が上にあれば「成果が高い」傾向が視覚的に確認できます。


📈 ② 回帰分析:訪問回数と成約率の関係を探る

次に、営業活動量(訪問回数)が成果(成約率)にどの程度影響するのかを見てみましょう。


# サンプルデータ
df = pd.DataFrame({
    '訪問回数': [5, 8, 10, 12, 15, 18, 20],
    '成約率': [0.30, 0.40, 0.45, 0.50, 0.55, 0.60, 0.62]
})

# 回帰分析
X = df[['訪問回数']]
y = df['成約率']
model = LinearRegression()
model.fit(X, y)

# 予測線
df['予測値'] = model.predict(X)

# 可視化
sns.lmplot(x='訪問回数', y='成約率', data=df, line_kws={"color": "red"})
plt.title('訪問回数と成約率の関係')
plt.show()

print(f"回帰係数: {model.coef_[0]:.3f}, 切片: {model.intercept_:.3f}")

✅ 結果の読み方

回帰係数: 0.018, 切片: 0.21

→ 訪問回数が 1回増えるごとに成約率が約1.8%上昇 する傾向があります。つまり、闇雲にアプローチするよりも、適切な訪問頻度を設計することが効果的とわかります。


🧮 ③ クラスタリング:顧客を3つのタイプに分類

顧客を“なんとなく”で分けていませんか?クラスタリング分析を使えば、購買傾向に基づいて顧客を自然に分類できます。


# サンプル顧客データ
customers = pd.DataFrame({
    '購買金額': [50000, 120000, 30000, 80000, 150000, 40000, 110000],
    '来店頻度': [2, 6, 1, 4, 8, 2, 5]
})

# クラスタリング実行
kmeans = KMeans(n_clusters=3, random_state=0)
customers['cluster'] = kmeans.fit_predict(customers[['購買金額', '来店頻度']])

# 可視化
sns.scatterplot(
    x='購買金額', y='来店頻度', hue='cluster', data=customers, palette='Set2', s=100
)
plt.title('顧客クラスタリング結果')
plt.show()

✅ 結果の読み方

  • クラスタ0:購買額も頻度も低い → 潜在顧客
  • クラスタ1:購買額が高く頻度も多い → 優良顧客
  • クラスタ2:頻度は高いが単価が低い → リピート型顧客

→ このように、顧客ごとのアプローチ戦略を変える材料になります。


💡 分析結果から見える営業戦略の方向性

手法活用シーン意味すること
t検定チーム間比較トップ営業の行動を全員に展開できる
回帰分析成果要因分析成果を上げる要素(訪問・提案数など)を可視化
クラスタリング顧客分類顧客タイプ別に販促・提案内容を最適化

🚀 まとめ:営業データの「仮説」と「検証」を繰り返す文化を

データ分析は“現場の感覚を否定するもの”ではありません。むしろ、感覚を数値で裏づける科学的な根拠を与えてくれます。

中小企業でも、Excel+Python+無料BIツール(例:Google Colab, Power BIなど)を組み合わせることで、誰でも再現性のある営業戦略を構築できます。


💬 次回予告

次回はシリーズ最終回、「データドリブン営業を組織文化にする方法」をテーマに、“分析を続けるチームをどう作るか”を実践的に紹介します。


🏢 自社でのデータ分析導入・営業DXのご相談

「自社データを活用して営業成果を伸ばしたい」
「Python分析やBIレポートを社内で使えるようにしたい」

そんな企業様向けに、弊社では以下のサポートを行っています。

  • データ分析導入支援
  • 営業データ可視化レポート構築
  • 分析自動化スクリプト開発

まずはお気軽にご相談ください。
現場の課題に合わせた「小さく始めて成果を出す」仕組みをご提案します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です