9.Pythonでデータ分析を始めよう!初心者向けガイド-クロス集計編-

PR表記

※アフィリエイト広告を利用しています

どうもニコイチです。前回の記事で、基礎統計量やグラフ、相関分析に関する見方を学びました。今回は、データを分析する際の基本的なステップとして、「仮説を立てること」の重要性とその検証方法を学びます。データをただ眺めるだけでは意味を見出すのが難しいため、具体的な仮説を立てながら進めていきます。

以下は、定期預金契約に関するデモデータを使った仮説の例です。

目次

仮説の例

  1. 前回のキャンペーンで成功した人は、再度申し込む可能性が高いのではないか?
  2. 収入が高いほど定期預金を申し込む可能性が高いのではないか?
  3. 既婚者は未婚者よりも定期預金を申し込む傾向があるのではないか?

今回は、仮説1を基に「前回キャンペーンの成果(poutcome)と定期預金申し込み有無(y)」の関係性を調べます。


データ解析の基本:クロス集計

仮説検証の第一歩として、pandas.crosstab関数を使用したクロス集計を行います。この関数は、カテゴリーデータの分布や関連性を簡単に確認するのに便利です。

import pandas as pd

# データ読み込み
df = pd.read_csv('demo_data.csv')

# クロス集計
cross_tab = pd.crosstab(df['poutcome'], df['y'], margins=True)
print(cross_tab)

実行結果例

y           no   yes  All
poutcome                   
failure     300    50  350
success     150   200  350
unknown     400    50  450
All         850   300 1150
  • 縦軸:前回のキャンペーン結果(poutcome
  • 横軸:定期預金申し込み有無(y
  • 合計:margins=Trueオプションで全体の合計値を表示

申込率の計算

出現数の絶対値だけでは比較が難しいため、申込率(yesの割合)を算出します。

# 各カテゴリの申込率を計算
cross_tab['rate'] = cross_tab['yes'] / cross_tab['All']
print(cross_tab)

実行結果例

y           no   yes  All     rate
poutcome                          
failure     300    50  350  0.1429
success     150   200  350  0.5714
unknown     400    50  450  0.1111
All         850   300 1150      -
  • successの申込率が最も高く、約57%となっています。

データ操作の基本:カラムの値変更と新規追加

  1. カラムの値を変更する例 数値型のカラムすべてに1を足したい場合: df['balance'] = df['balance'] + 1
  2. 新しいカラムを追加する例 各行のbalanceを基にした新しい指標を計算して追加: df['balance_ratio'] = df['balance'] / df['balance'].sum()

データの可視化

データの傾向を視覚的に確認するために、以下の手法を使います。

1. 棒グラフ

カテゴリーデータの頻度を確認。

import matplotlib.pyplot as plt

df['poutcome'].value_counts().plot(kind='bar')
plt.xlabel('Poutcome')
plt.ylabel('Frequency')
plt.title('Distribution of Poutcome')
plt.show()

2. ヒートマップ

クロス集計結果を視覚化。

import seaborn as sns
sns.heatmap(cross_tab.iloc[:-1, :-1], annot=True, fmt='d', cmap='Blues')
plt.title('Poutcome vs Subscription')
plt.show()

まとめ

  • 仮説を立てることで、データ分析が効率的に進められます。
  • クロス集計や申込率の計算は、カテゴリーデータの関連性を調べる基本的な手法です。
  • 可視化を組み合わせることで、データの傾向をより直感的に理解できます。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次