この記事では、Python言語とNumPyを用いて、回帰分析による曲線近似(非線形フィッティング)の方法をソースコード付きで解説します。
曲線近似(回帰分析)
PythonモジュールNumPyでは、polyfitメソッドで回帰分析ができます。
書式
a1, a2, ..., an, b = numpy.polyfit(x, y, n)
パラメータ | 説明 |
---|---|
a1, a2, … ,an | 近似曲線の各変数の重み |
b | 近似曲線の切片 |
n | 近似曲線の変数の個数(次元数) |
ソースコード
サンプルプログラムのソースコードです。
(2次曲線の場合)
# -*- 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] # 要素の順序反転 f = f[::-1] # x軸の生成 x = np.linspace(1, len(f), len(f)) # フィッティング a1, a2, b = np.polyfit(x, f, 2) # フィッティング曲線 fh = a1 * x**2 + a2 * x + b # 日経平均株価のプロット plt.plot(x, f, label="f") # フィッティング曲線のプロット plt.plot(x, fh, label="fh") # グラフの各種設定 plt.xlabel("Days") plt.ylabel("Stock Price") plt.legend() plt.grid() plt.show() if __name__ == "__main__": main()
– | リンク |
---|---|
3次バージョン | 3d.py |
4次バージョン | 4d.py |
■使用したデータ:nikkei16.csv (2016年の日経平均株価のデータ)
※株価データの入手は下記サイトを参考に行いました。
【参考】【日経平均株価】過去データ(CSV)をダウンロード
実行結果
サンプルプログラムの実行結果は下記の通りです。
【2次】
【3次】
【4次】
関連ページ
Pythonで株価データ分析超入門
プログラミング言語Pythonを用いて、株価のデータを分析・予測する方法をソースコード付きで解説します。
コメント