Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで学ぶ相関と回帰分析の基礎|Seabornを使ったデータ分析入門

相関(Correlation)とは、2つのデータセット間に存在する依存関係を含む統計的な関係性を指します。一方、線形回帰(Linear Regression)は、従属変数と1つ以上の独立変数の間の関係を直線的なアプローチで捉える手法です。独立変数が1つの場合は「単回帰」、複数ある場合は「重回帰」と呼ばれます。

相関とは何か

依存現象の身近な例としては、親と子の身体的特徴(外見)の類似性や、商品の価格と供給量の関係などが挙げられます。価格が上がれば供給量が増える、といった具合に、変数同士が互いに影響し合う様子を統計的に表したものが相関です。

本記事では、Pythonの可視化ライブラリ「Seaborn」で提供されている有名なiris(アヤメ)データセットを例に取り上げます。このデータセットには、3種類のアヤメの花についてのがく片(sepal)と花びら(petal)の長さ・幅が記録されています。これらの変数間の相関を調べることで、品種を高精度に判別できる強力なモデルを構築する足がかりとなります。

ペアプロットで相関を可視化する

まず、回帰線を含めずに散布図行列(ペアプロット)で全変数間の相関関係を一覧表示してみましょう。

サンプルコード

import matplotlib.pyplot as plt
import seaborn as sns

df = sns.load_dataset('iris')

# 回帰線なしの散布図行列を描画
sns.pairplot(df, kind="scatter")
plt.show()

実行結果

上記のコードを実行すると、各変数の組み合わせごとの散布図が格子状に表示されます。花びらの長さと幅のように強い正の相関が見られる組み合わせでは、点群がはっきりとした直線状に並び、品種ごとのクラスタも視覚的に確認できます。

Pythonで学ぶ相関と回帰分析の基礎|Seabornを使ったデータ分析入門

線形回帰とは何か

数学的に言えば、線形の関係とはグラフ上で直線として表される関係です。一方、変数の指数が1にならない非線形の関係は曲線を描きます。線形回帰では、この直線の傾きと切片を求めることで、独立変数から従属変数の値を予測します。

Seabornには、線形回帰の関係を簡単に可視化するためのregplot関数が用意されています。散布図に加えて、データに最もよく当てはまる回帰直線と信頼区間を自動的に描画してくれる便利な機能です。

regplotで回帰直線を描く

次に、Seabornのもう一つの定番データセットであるtips(チップ)データセットを使用して、食事の総額(total_bill)とチップ額(tip)の間の線形回帰を確認してみます。

サンプルコード

import seaborn as sb
from matplotlib import pyplot as plt

df = sb.load_dataset('tips')

# 総額とチップの関係に回帰直線を重ねて描画
sb.regplot(x = "total_bill", y = "tip", data = df)
plt.show()

実行結果

上記のコードを実行すると、散布図の上に回帰直線が引かれたグラフが得られます。直線の周囲に薄く表示された帯は信頼区間を表しており、総額が増えるほどチップ額も増加するという明確な正の相関関係が読み取れます。

Pythonで学ぶ相関と回帰分析の基礎|Seabornを使ったデータ分析入門

まとめ

相関分析と線形回帰は、データサイエンスにおける最も基本的かつ重要な手法です。Pythonでは、Seabornのpairplotで相関の全体像を素早く把握し、regplotで個別の変数間の回帰関係を詳細に検証する、という流れで効率的に分析を進められます。まずはirisやtipsなどのサンプルデータセットで手を動かしながら、データ間の関係性を読み解く力を身につけてみてください。

  1. Pythonで実践する線形回帰:データ探索からモデル構築・精度改善までの完全ガイド

    線形回帰は、機械学習における最もシンプルで標準的な手法の1つであり、2つの変数の間に正の相関があるか負の相関があるかを判定するために広く使われています。 また、線形回帰は迅速な予測分析に役立つ数少ない強力なツールでもあります。この記事では、Pythonのpandasパッケージを使ってデータを読み込み、線形回帰モデルの推定・解釈・可視化までを一通り行う方法を解説します。 本題に入る前に、まず「回帰」とは何かを確認しておきましょう。 回帰とは? 回帰とは、従属変数(目的変数)と独立変数(説明変数)の間の関係性をモデル化するための予測モデリング手法の一種です。 回帰の主な種類 線形回帰 ロジステ

  2. Pythonにおける「+=」と「=+」の違いとは?演算子の動作をわかりやすく解説

    Pythonには見た目がよく似ているのに、まったく異なる動作をする演算子が存在します。その代表例が「+=」と「=+」です。この2つは一見同じように見えますが、実際には意味も役割も大きく違います。本記事では、それぞれの動作の仕組みと具体的な使い方を詳しく解説します。 「+=」は複合代入演算子(in-place演算) +=は、Pythonでは複合代入演算子と呼ばれるもので、内部的には object.__iadd__() メソッドへのシンタックスシュガー(糖衣構文)です。 公式ドキュメントには次のように記載されています。 これらのメソッドは、拡張された算術代入(+=、-=、*=、@=、/=、//=