OLS③
OLS攻めシリーズ第3弾。
今回は、numpyのlinalg.lstsqを使う。
回帰式は例によってこれで、
コードはこんな感じ。
# -*- coding: utf-8 -*- import matplotlib.pyplot as plt import numpy as np import seaborn as sns import statsmodels.api as sm #サンプリング数 N=1000 #データ生成 np.random.seed(0) x=np.random.normal(1,1,N) X=sm.add_constant(x, prepend=True) eps=np.random.normal(0,1,N) y=2+1.5*x+eps #OLS(numpy.linalg.lstsq) np.linalg.lstsq(X,y)
結果は、いつも通り。返ってくる値は順番に、OLSのパラメータ、残差の合計、係数行列のランク、係数行列のsingular valueとのこと。ただ、出してくれる情報も少ないので、これを積極的に使用することはあまり無さそうな印象。
In [160]: np.linalg.lstsq(X,y) Out[160]: (array([ 2.04312405, 1.4690942 ]), array([ 936.40319615]), 2, array([ 49.95346943, 19.75905117]))