単回帰直線
回帰分析のうち、単回帰分析は1つの目的変数 $y$ を1つの説明変数 $x$ で予測するもので、その2変量の間の関係性を $y=ax+b$ という一次方程式で表します。
回帰直線の傾き
データ $x$ $y$ の相関係数を $r_{xy}$、標準偏差を $\sigma_y$ $\sigma_x$ としたとき、回帰直線の傾きは
$$ a = \frac{r_{xy} \sigma_y}{\sigma_x} $$
回帰直線のy切片
回帰直線の傾きを $a$、データ $x$ $y$ の平均を $\mu_y$、$\mu_x$ としたとき、回帰直線のy切片は
$$ b = \mu_y - a \mu_x$$
アヤメのデータ
次の「アヤメのデータ」を用いて、以下の課題に取り組んでください。アヤメのデータには、 Sepal.Length
Sepal.Width
Petal.Length
Petal.Width
Species
などのカラム(列)があります。
課題28:単回帰直線
- 単回帰直線を求める関数を作成し、
Sepal.Width
を説明変数 $x$ とし、Sepal.Length
を目的変数 $y$ とする単回帰直線を求めてください。
# 回帰直線の傾き=相関係数*((yの標準偏差)/(xの標準偏差))を求める関数を作ろう
def a_fit(xlist, ylist):
# y切片=yの平均-(傾き*xの平均)を求める関数を作ろう
def b_fit(xlist, ylist):
# 回帰直線の式を表示
print("y = f(x) = {0} x + {1}".format(a_fit(X, Y), b_fit(X, Y)))
-
matplotlib
を用いてSepal.Width
とSepal.Length
をプロットし、単回帰直線を描いてください。
課題提出方法
-
基本的にGoogle Colaboratoryを用いてプログラミングしてください。どうしても Google Colaboratory を用いることができない場合のみ、Jupyter Notebook または Jupyter Lab を用いてください。
-
課題1つごとに、ノートブックを新規作成してください。1つのノートブックで複数の課題を解かないでください。
-
ノートブックを新規作成すると「Untitled.ipynb」のような名前になりますが、それを「学籍番号・氏名・課題番号」のような名前に変更してください。
-
質問・感想・要望などございましたらぜひ書き込んでください。
-
もし課題を解くにあたって参考になったウェブサイトがあれば、それについても触れてください。
-
課題を計算し終わった ipynb ファイルを提出するときは、指定したメールアドレスに Google Drive で共有する形で授業担当者に提出してください。