Pandas⑮ (重回帰分析)

重回帰分析

重回帰分析 は、2つ以上の 説明変数(予測に使うデータ) から1つの 目的変数(予測するデータ) を予測する手法です。

重回帰分析 では、説明変数の数はいくつでもかまいませんが、説明変数が意味のあるものでなければ数を増やしても意味がありません。

説明変数は、前回記事で実施したように 相関関係 を調べて相関の強いものを使用すると、予測の精度 を高めることができます。

サンプルコード

重回帰分析 を行うサンプルコードは下記のようになります。

重回帰分析単回帰分析 と同じように LinearRegressionオブジェクト に対して fitメソッド を実行することで行います。(11行目))

(CSVファイルは前回記事で使用したものを読み込みます。)

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import pandas as pd
import numpy as np
from sklearn import linear_model

# ファイルを読み込んでdfに格納
df = pd.read_csv('sales.csv')

x = df.iloc[:, 2:5] # 競合店、満足度、品揃え充実度の列
y = df['売上額'] # 売上額の列
model = linear_model.LinearRegression() # LinearRegressionオブジェクトを生成
model.fit(x, y) # 線形重回帰分析を実行

print('回帰係数:', model.coef_) # 係数aを取得
print('切片  :', model.intercept_) # 切片bを取得
print('決定係数:', model.score(x, y)) # 決定係数を取得

[実行結果]

回帰係数 は、それぞれの説明変数の係数(目的変数に与える影響)となります。

絶対値で考えると、満足度(1413.39) が売上に与える影響が一番大きいことが確認できます。

決定係数0.8024 となっており、3つの説明変数で 約80パーセント の確率で説明できることを表しています。