教員の方からの相談で, 物理モデルのパラメーター決定を統計的にやりたい, とのことでした. 似たような相談は過去の相談事例にもあります.
以下のように一緒に作業したところ, 1時間半程度で, ご自身でフィッティング及びフィッティング以外のパラメーターの批判的チェックまでできるようになられました.
1. Python (jupyter Notebook) で, モデルを関数として表す.
2. 実測値と計算値をプロットし, 比較する.
3. ここでパラメーターを色々と動かし, 最適値のおおよその見当をつける.
4. この課題の場合, 最初, フィッティングパラメーターを動かしても計算値は実測値に近くならなかったため, モデルを再検討したところ, フィッティング以外のパラメーター(パラメーターAとする)が現実に合ってないと考えられた.
5. パラメーターA を旧設定値から新たな暫定値に動かし, 暫定値のもとで, 実測値と計算値がおおよそ一致するようにできた.
6. scipy.optimize.curve_fit で, パラメーターフィッティングを行なった.
7. 相談者は, パラメーターA の値を再検討して, そのもとで再度フィッティングを行う, とのことでした.
コメント
1. このような問題で相談に来られた方には, まず, 上記の 1, 2 を行うことをすすめています. モデルの挙動を視覚的に把握するのは非常に重要です.
2. 今回の場合, グラフを作らず, 最初からフィッティングを行なっていたとしたら, パラメーターAの問題に気づくのに時間がかかったと思います. 下手したら数日間をロスした可能性すらあります.
3. Python, Pandas では, 比較的簡単にデータ解析ができますが, 慣れないうちは, 思うように動かせないものです. 今回, 世話人が横についてコーディングを行うことによって, 短時間で目的を果たされたようです.
4. Python, Pandas の中級レベルに達しても, 例えば, データフレームから必要なものを抽出する方法など, できるはずなんだけど, その方法を調べるのに時間が掛かる, といったことが多々あります. ちょっとのヒントで問題が解決することもあります. 何か Python で困ったら, 遠慮なく統計Cafe に来室ください.
コメント
コメントを投稿