前提・実現したいこと
scipy.optimeze を用いた、エラーの算出について。
共分散から標準偏差への変換のしくみについて知りたい。
発生している問題・エラーメッセージ
プログラムのエラーとかは特に発生していません。 得られたデータの解釈について困っています・・・ 下に載せたコードを実行した結果、M_para_optがパラメータM1, M2の最適解であることはわかります。 しかしM1, M2に対するエラー(標準偏差)を求める時に、公式ドキュメントによると、 エラーの値は np.sqrt(np.diag(M_cov))で求められるそうです。 1.なぜこれがエラーの値として正しいのか 2.そもそも共分散(M_cov)が行列として表現されるのはなぜか 3.一般的に分散の平方根=標準偏差だが、この行列の中の対角成分が共分散だとして、非対角成分は何を表しているのか 以上3点について、教えていただきたいと思います。
該当のソースコード
Python3
1#フィッティングに用いる関数の定義 2import scipy.optimize 3 4Epsilon_list = [e1, e2, e3, ... , e14] #実際は数値 5G_list = [g1, g2, g3, ... , g14] #実際は数値 6 7def M_fitfunc(x, M1, M2): 8 return (1 - 2*x)**(5/2) * (M1 + M2*x) 9 10#それぞれ14個の数値が入ったリストEpsilon_list, G_listをx, yの値とする 11M_para_opt, M_cov = scipy.optimize.curve_fit(M_fitfunc, Epsilon_list, G_list) 12 13#フィッティング結果 14M_para_opt = array([ 133.45631973, -149.65607315]) 15M_cov = array([[ 5.95002727, 93.90321683], 16 [ 93.90321683, 1498.93958525]])
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。