15  演習

15.1 データセットの説明

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

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

下記のコードは、糖尿病データセットを読み込み、年齢を 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