解 説

今回はscikit-learn で単回帰分析する方法について解説します。
分析対象は「スプレッドシート(エクセル)とPythonで統計分析(2) 単回帰分析の方法」で行った「1日の最高気温とアイスクリームの販売個数」のデータを使います。

スプレッドシートで単回帰分析を行う方法は「スプレッドシート(エクセルなど)とPythonで統計分析(2) 単回帰分析の方法」を参考にしてください。

データの準備

用意したデータはある店舗における1日の最高気温とアイスクリーム購入数です。
(注)データの数値は架空の数値です。

必要なライブラリの読み込みを行います。
sklearn.linear_model.LinearRegression クラスをあわせて読み込みます。

CSVの読み込みを行います。

読み込んだデータの一部を「ice.head(5)」で表示しています。

回帰係数を求めます。
回帰係数とは回帰直線の傾きのことで、この値が求まると散布図に回帰直線を引くことができます。
また、回帰直線を引けるということは、予測ができるようになります。
scikit-learn を使うことで回帰係数も簡単に求めることができます。

結果:[1.76617647]

scikit-learn を使わなかった場合は最小二乗法を使うことになります。

最小二乗法の公式
$$
a = \frac{\frac{1}{n}{\displaystyle\sum_{i=1}^{n}}(X_i – \overline{X})(Y_i – \overline{Y})}
{\displaystyle{\frac{1}{n}\sum_{i=1}^{n}}(X_i – \overline{X})^{2}}
= \frac{\displaystyle\sum_{i=1}^{n}(X_i – \overline{X})(Y_i – \overline{Y})}
{\displaystyle\sum_{i=1}^{n}(X_i – \overline{X})^{2}}
$$

切片を求めます。

結果:-9.75735294117645

決定係数を求めます。

結果:0.920300641543021

散布図を描画します。