どうもニコイチです。今回は実際にデータの見る際に重要な視点の一つである相関についてご紹介します。できるだけわかりやすく例えを交えながら紹介しています。
Pythonでデータ分析を始めよう!初心者向けガイド | いきかちガジェットゲームLab:ガジェット・ゲーム・DX
どうもニコイチです。今回はdemoデータを使って実際に予測モデルを作れるようになることを目的とした、シリーズをご紹介します。Pyhonってなに?どうやってつかうの?と戸惑って…
目次
1. 相関とは?
基本的な概念
相関とは、2つの変数間の関係性の強さを示すものです。
📌 身近な例で考えてみましょう:
- 勉強時間と成績の関係(正の相関)
- 勉強時間が増える → 成績も上がる
- アイスクリームの売上と気温の関係(正の相関)
- 気温が上がる → 売上も増える
- 暖房の使用時間と気温の関係(負の相関)
- 気温が下がる → 暖房使用時間が増える
2. Pythonでの相関分析
相関係数の計算
# 必要なライブラリのインポート
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# データの読み込み
df = pd.read_csv('定期貯金契約データ.csv')
# 相関係数の計算
correlation = df.corr()
print(correlation)
相関係数の解釈
- 1.0に近い → 強い正の相関
- -1.0に近い → 強い負の相関
- 0に近い → 相関が弱い
📌 目安として:
- |0.7| 以上:強い相関
- |0.4| ~ |0.7|:中程度の相関
- |0.2| ~ |0.4|:弱い相関
- |0.2| 未満:ほとんど相関なし
3. 相関の可視化
1. 散布図(量的データ×量的データ)
# 散布図の作成
plt.figure(figsize=(10, 6))
plt.scatter(df['年齢'], df['契約金額'])
plt.xlabel('年齢')
plt.ylabel('契約金額')
plt.title('年齢と契約金額の関係')
plt.show()
散布図のパターンと解釈
- 右上がりの分布
・ ・
・ ・
・ ・
- 正の相関
- 例:年齢と貯金額が比例する場合
- 右下がりの分布
・ ・
・ ・
・ ・
- 負の相関
- 例:年齢と新規契約数が反比例する場合
- バラバラな分布
・ ・
・ ・ ・
・ ・
- 相関なし
- 例:誕生月と契約金額
2. 箱ひげ図(量的データ×質的データ)
# 箱ひげ図の作成
plt.figure(figsize=(10, 6))
sns.boxplot(x='性別', y='契約金額', data=df)
plt.title('性別ごとの契約金額分布')
plt.show()
箱ひげ図の読み方
○ <- 外れ値
|
| <- ひげ(1.5×IQR)
+-----+ <- 第3四分位数(75%)
| |
| | <- 箱(真ん中50%のデータ)
+-----+ <- 第1四分位数(25%)
|
| <- ひげ
○ <- 外れ値
🔍 箱ひげ図で分かること:
- データの分布の形
- 外れ値の存在
- グループ間の違い
4. 実践:定期貯金データの分析
Step 1: 数値データ間の相関確認
# 数値データの相関係数をヒートマップで可視化
numerical_cols = ['年齢', '契約金額', '契約期間']
correlation_matrix = df[numerical_cols].corr()
plt.figure(figsize=(8, 6))
sns.heatmap(correlation_matrix,
annot=True, # 相関係数を表示
cmap='coolwarm', # 色使い
vmin=-1, vmax=1) # 値の範囲
plt.title('定期貯金データの相関関係')
plt.show()
Step 2: カテゴリデータとの関係確認
# 性別ごとの契約金額分布
plt.figure(figsize=(10, 6))
sns.boxplot(x='性別', y='契約金額', data=df)
plt.title('性別による契約金額の分布')
plt.show()
5. よくあるつまずきポイント
1. 相関≠因果関係
⚠️ 注意点:
- 相関があっても、必ずしも因果関係があるとは限りません
- 例:アイスクリームの売上と犯罪発生率
- 両方とも夏に増えるだけで、直接の関係はない
2. 外れ値の影響
- 外れ値が相関係数を歪める可能性
- 解決策:
- 外れ値を除外して分析
- 外れ値がなぜ発生したか調査
3. 非線形な関係
- 相関係数は線形な関係のみ捉える
- 解決策:
- 散布図で視覚的に確認
- 必要に応じてデータ変換
まとめ
- 相関分析は変数間の関係を理解する基本ツール
- 数値(相関係数)と可視化(散布図・箱ひげ図)の両方を使う
- 相関≠因果関係という点に注意
- 外れ値の影響を考慮する
コメント