この記事では、Python言語とNumPyを用いて、回帰分析による直線近似方法をソースコード付きで解説します。
直線近似(回帰分析)
PythonモジュールNumPyでは、polyfitメソッドで回帰分析ができます。
書式
a, b = numpy.polyfit(x, y, 1)
■返り値
a:近似直線の傾き
b:近似直線の切片
ソースコード
サンプルプログラムのソースコードです。
# -*- coding: utf-8
import numpy as np
import matplotlib.pyplot as plt
def main():
# CSVのロード
data = np.genfromtxt("nikkei16.csv",delimiter=",", skip_header=1, dtype='float')
# 5行目を抽出(日経平均株価の終値)
f = data[:,4]/1000.0
# xの値を生成
x = np.linspace(1, len(f), len(f))
# フィッティング
a, b = np.polyfit(x, f, 1)
# フィッティング直線
fh = a * x + b
# グラフ作成
plt.figure(1)
# サンプル(日経平均株価)
plt.plot(x, f, label="f")
plt.plot(x, fh, label="fh")
# ラベル軸
plt.xlabel("Day")
plt.ylabel("f")
# 凡例
plt.legend()
# グリッド
plt.grid()
# グラフ表示
plt.show()
if __name__ == "__main__":
main()
■使用したデータ:nikkei16.csv
(2016年の日経平均株価のデータ)
実行結果
サンプルプログラムの実行結果です。



コメント