重回帰分析

 ここでは、Excelでお気楽「重回帰分析」というサイトに掲載されているサンプルデータを利用してPythonで重回帰分析を行ってみる。

まず、サンプルデータを下図に示す。

 

図1.サンプルデータ

サンプルデータ(ファイル名:kenshu_data_20201114.xlsx)をダウンロードしてGoogleドライブのマイドライブ内にあるColab Notebooksフォルダ内に保存する。

以下のコードでサンプルデータをデータフレームに読み込む。

import pandas as pd
path = '/content/drive/MyDrive/Colab Notebooks/kenshu_data_20201114.xlsx'
df = pd.read_excel(path, header=1, index_col=0, 
  usecols=[1, 2, 3, 4, 5])
df.columns = ['x1', 'x2', 'x3', 'y']
x = df[['x1','x2','x3']].values
y = df['y'].values

リスト1 サンプルデータの読み込み

Pandasのread_excelでExcelファイルをデータフレームdfに読み込むが、その際、B列~F列までを読み込むためにusecolsパラメタで1~5列を指定している(usecolsの先頭列は0から始まることに注意)。その際、index_col=0というパラメタを指定してB列をインデックスとして設定している。また、header=1として2行目をヘッダとして設定している。ただし、その後、df.columnsを設定してヘッダを'x1', 'x2', 'x3', 'y'に書き換えている。

最後に説明変数'x1'~'x3'の値を2次元配列として取り出して変数 x に、目的変数'y'を1次元配列として取り出して変数 y に代入している。

重回帰分析のコードを以下に示す。

# 重回帰

from sklearn.linear_model import LinearRegression

model = LinearRegression()

model.fit(x, y)

print(f'モデル関数の回帰変数 w:{model.coef_}')
print(f'モデル関数の切片 b: {model.intercept_:.1f}')
print('決定係数 R^2: ', model.score(x, y))

リスト2 scikit-learnを用いた重回帰分析

実行結果は以下のようになる。

モデル関数の回帰変数 w:[  351.91580045 -3114.68394171 31731.9682103 ]
モデル関数の切片 b: 495788.1
決定係数 R^2:  0.2628038898225983

0 件のコメント:

コメントを投稿

機械学習

機械学習は、コンピュータがデータからその背後にあるルールやパターンを自動で「学習」し、その学習結果に基づいてそれぞれの目的に合ったデータの分析を行う手法です。 本講義ではこの機械学習を診療情報管理で応用するための基本的な概念を講義し、簡単な機械学習のプログラムを作成できるようにな...