15  演習

15.1 データセットの説明

糖尿病データセットでは,442人の糖尿病患者の年齢,性別,体重指数(BMI),血圧などの情報と,1年後の病状の進行度を示す数値が含まれている.年齢,性別,BMIなどは説明変数で,1年後の病状の進行度が目的変数である.また,説明変数は標準化されている.

特徴量 説明
age 年齢
sex 性別
bmi 体重指数
bp 平均血圧
s1 総コレステロール
s2 低密度リポタンパク質
s3 高密度リポタンパク質
s4 総コレステロール/HDL
s5 血清トリグリセリドレベルの対数
s6 血糖値
target 1年後の病状の進行度

sex2 種類の値のみを取る二値の特徴量である.load_diabetes() が返すデータは標準化されているため,元データの 12 はそれぞれ -0.04460.0507 に変換されている.

下記のコードは,糖尿病データセットを読み込み,年齢を X,目的変数を y に代入している.

from sklearn.datasets import load_diabetes

# 糖尿病データセットの読み込み
diabetes = load_diabetes(as_frame=True)

X = diabetes.data["age"]
y = diabetes.target

plt.savefig("scatter.png") を実行すると,散布図が scatter.png というファイル名で保存される.

import matplotlib.pyplot as plt

plt.scatter(X, y)
plt.savefig("scatter.png")  # 散布図を保存

X を1次元配列に変換するには,以下のコードを実行する.

import numpy as np

X = X.to_numpy().reshape(-1)

15.2 課題

糖尿病データセットを用いて,以下の問いに答えよ. (説明変数は標準化されていることに注意せよ.)

  1. 年齢とBMIの相関係数を計算せよ.
  2. 年齢と血圧の散布図を描け.
  3. 血圧を説明変数,1年後の病状の進行度を目的変数として,回帰モデルを構築し,回帰直線とデータの散布図を描け.
  4. agebmibps1s2s3s4s5s6 を説明変数,1年後の病状の進行度を目的変数として,重回帰モデルを構築し,各説明変数の回帰係数を表示せよ.
  5. 1〜4 の結果を踏まえて,500字程度で考察せよ.追加の分析や可視化を行ってもよい.
    1. 例えば,どの説明変数が目的変数に強い影響を与えているか.
    2. どの変数が他の変数と強い相関を持っているか.
    3. どのような人が病状の進行が早い傾向にあるか.

15.3 提出方法

  • 以下のいずれかの形式で提出せよ.
    • .pdf
    • .ipynb
    • .docx
  • 提出先:Google Classroom
  • 提出期限:10/16