質問: array([[ 5.95002727, 93.90321683], [ 93.90321683, 1498.93958525]]) ``` 最適解となるM1,M2を求めることには成功したようですが、M1,M2それぞれのエラーの値をどう求めればよいのかわかりません。scipyの公式ドキュメントによると、 ``` np.sqrt(np.diag(M_cov)) ``` つまり、M_covという2行2列のマトリックスの対角成分の平方根がM1,M2それぞれのエラーに相当するようですが、ここでわからない点がいくつかあります。 1.なぜ共分散がエラーの値として正しいのか 2.そもそも共分散(M_cov)が行列として表現されるのはなぜか 3.一般的に分散の平方根=標準偏差だが、この行列の中の対角成分が共分散だとして、非対角成分は何を表しているのか 以上3点について、教えていただきたいと思います。よろしくお願いします。
回答: 一般に共分散は(非対角成分が等しい対称)行列として表現できます。 共分散を考えるということは沢山ある確率変数のうち、2変数を抜き出してその2つの確率変数間の相関とばらつきを考えることであり、それを列挙するための表現として行列は適切でしょう。(2の答え) wikipedia - 分散共分散行列 例えば確率変数x,yに対しては2×2の共分散行列が形成されます。 xとyの共分散をCov(x,y)と表現するとscipyが返す2×2行列は [[Cov(M1,M1), Cov(M1,M2)] [Cov(M2,M1), Cov(M2,M2)]] ここでM1同士の共分散Cov(M1,M1)は変数M1の分散を表します。 対角成分は結局のところM1とM2のそれぞれの**分散**になります。その平方根はそれぞれのパラメータの標準偏差です。エラーの定義にもよりますが、標準偏差はエラーの値として妥当ではないでしょうか?(1の答え) 非対角成分はM1とM2の**共分散**を表します。ここでCov(M1,M2)とCov(M2,M1)は当然等しいので、共分散行列は必ず対称行列になります。(3の答え)