[lmfit] 26. 指数関数的に修正されたガウス分布モデルによるカーブフィッティング

lmfit

はじめに

この記事では、lmfitライブラリを使用して指数関数的に修正されたガウス分布(Exponentially Modified Gaussian、EMG)モデルによるカーブフィッティングの方法について解説します。非線形最小二乗法を用いたデータ分析の実践的なアプローチを学ぶことができます。

解説

モジュールのインポート

バージョン

データの生成

関数exp_gaussを使用してデータを作成します。誤差関数には、scipyのspecial.erfcを採用しました。作成したデータは以下のようになります。

モデルの定義

lmfit.modelsExponentialGaussianModelをモデル関数として用います。

初期パタメータの推定

eg_mod.guess(y, x=x)により、初期値を推定します。

カーブフィット

out = eg_mod.fit(y, pars, x=x)により、カーブフィッティングを実行します。

フィッティング結果の表示

print(out.fit_report())により、フィッティングの結果を見ることができます。

out.plot_fit()によりデータとフィッティングカーブが表示されます。

out.plot()とすることで残差とともにフィッティング結果が表示されます。

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

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

参考

Built-in Fitting Models in the models module — Non-Linear Least-Squares Minimization and Curve-Fitting for Python
Exponentially modified Gaussian distribution - Wikipedia

コメント