前回は「カイ二乗検定」と「t検定」をそれぞれ試してみました。
今回は「相関分析」を試してみたいと思います。

今回の環境
今回利用するデータ
今回は「一般社団法人日本野球機構」の公式サイトより、2005年度から2021年度までの両リーグ個人打撃成績(規定打席以上)のデータをスクレイピングして取得したデータを使います。
今回試す分析手法
「相関分析」を行っていきます。
データの確保
データの取得方法は以前の記事をご参照ください。

データ分析
相関分析
相関分析とは
散布図や相関係数をもとにして、2変数の関係を調べる統計解析の手法である。相関係数とは、 簡単にいうと2つの変数がどのような関係にあるのかを数値で表したものであり、相関係数は-1から+1の間の値をとる。一般的に相関係数はrで表記され、得られた相関係数は次のように解釈する。
・r=0のとき、2つの変数には関連性がない
・rが1 に近いときは2つの確率変数には正の相関がある
・rが-1 に近いときは2つの確率変数には負の相関がある出典:ニッセイ基礎研究所
使用するライブラリ
- Pandas
データ分析用のライブラリです。
- matplotlib
グラフ描画用のライブラリです。
- seaborn
matplotlibよりお手軽にグラフを描画できるライブラリです。
仮説・コードの実装
今回の仮説
犠打が多い選手は小兵。
完全にイメージですが、「犠打が多い選手は本塁打が少なく、盗塁が多い」という仮説を立てます。
コードの実装
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# データの読み込み
df = pd.read_csv("2005-2021_batter_all.csv")
# インデックス、年度毎の順位、選手名、所属を削除
df_droped = df.drop(columns=df.columns[[0,1,2,3]])
# 相関分析を実施
df_corr = df_droped.corr()
# 相関係数の表示
print(df_corr)
# ***以下、グラフ関係***
# matplotlibを日本語表示する設定
plt.rc('font', family='BIZ UDGothic')
# matplotlibの描画領域を整理する
plt.figure(figsize=(10,10),dpi=200)
# ヒートマップを描画
sns.heatmap(df_corr)
実行結果・考察
実行結果
考察
- 犠打が多い選手は本塁打が少ない
上記のヒートマップを見ると、犠打と本塁打が交わるセルはかなり濃い色をしています。相関係数は「-0.5167017333」と犠打と本塁打はそこそこ強い反比例の関係にあるようです。
- 犠打が多い選手は盗塁が多い
上記のヒートマップを見ると、犠打と盗塁が交わるセルは正の値を示す色となっています。しかし、相関係数は「0.3264242692」であり、そこまで強い相関関係にはないようです。
まとめ
相関分析の結果をヒートマップで確認するのは視認性の観点からは素晴らしいです。
一方で、色の濃さは相対的なものであり、相関係数「-1」が「黒」という訳ではないので落ち着いて確認する必要がありそうです。
次回は「因子分析」を行ってみたいと思います。