はじめに
本記事では、lmfitライブラリを使用したべき乗則モデル(Power Law Model)によるカーブフィッティングの方法について解説します。べき乗則モデルの基本概念から実装方法、パラメータ推定までを具体的なPythonコード例とともに説明します。
コード

解説
モジュールのインポートなど
バージョン
データの生成
yデータは関数f(x,a,k)を用いて作成します。rng = default_rng()を設定し、rng.random(50)によってランダムデータを生成してyデータにノイズを加えます。xとyの関係性は以下の図に示されています。

モデルの定義
lmfit.models
の PowerLawModel
をモデル関数として用います。
初期パタメータの推定
model.guess(y, x=x)を使用して、上図のデータをべき乗則モデルで近似するためのフィッティングパラメータの初期値を推定します。得られるパラメータ(params)は以下のようになります。
カーブフィット
model.fit(y, params, x=x)を使用して、カーブフィッティングを実行します。
フィッティング結果の表示
print(result.fit_report())を使用することで、フィッティング結果の詳細を確認できます。
result.plot_fit()を使用することで、データとフィッティングカーブをグラフとして視覚化できます。

result.plot()を使用すると、フィッティング結果と残差が同時に表示されます。

まとめ
本記事では、lmfitライブラリを用いたべき乗則モデルによるカーブフィッティングの実践方法を紹介しました。べき乗則モデルは様々な自然現象や社会現象の解析に適用可能で、lmfitを活用することで効率的にパラメータ推定と結果の評価ができます。データ分析において強力なツールとなるこの手法を、ぜひ実際のプロジェクトに応用してみてください。
参考
Built-in Fitting Models in the models module — Non-Linear Least-Squares Minimization and Curve-Fitting for Python
Random Generator — NumPy v2.3 Manual
コメント