[lmfit] 7. lmfitのModelにおけるNaNの処理方法の選択

lmfit

はじめに

lmfitは非線形最小二乗法を用いてカーブフィットするためのライブラリであり、Scipy.optimize.curve_fitの拡張版に位置する。ここでは、データにNaNを含む場合、どのようにカーブフィッティングするかを選択する方法について説明する。

コード

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

解説

モジュールのインポートなど

バージョン

関数の定義

指数関数的減衰関数を定義する。

データの生成

np.linspace(0, 10, num=1000)で1000このデータを作成して、関数に入れてデータを作成する。np.random.randn(t.size)/2でノイズを加えた。

その後、データの一部をNaNにする。

nan_policy=”raise”でフィッティング

データにNaNがあるので、ValueErrorが返ってくる。

nan_policy=’omit’でフィッティング

NaNを除外したデータでフィッティングが行われる。

結果を図示すると以下のようになる。

nan_policy=’propagate’でフィッティング

フィッティングは行われない。

パラメータは初期値のままとなる。

参考

Non-Linear Least-Squares Minimization and Curve-Fitting for Python — Non-Linear Least-Squares Minimization and Curve-Fitting for Python
Modeling Data and Curve Fitting — Non-Linear Least-Squares Minimization and Curve-Fitting for Python

コメント