【NumPy】回帰分析で直線近似(線形フィッティング)

この記事では、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年の日経平均株価のデータ)

実行結果

サンプルプログラムの実行結果です。

おすすめ記事

Python入門 サンプル集
NumPy入門 サンプル集

コメント