集団Aと集団Bから平均と分散を計算し、ヒストグラムと近似する確率密度関数func Aとfunc Bがわかっています。参考までに両者のグラフイメージをコードで示します。
python
1# locとscaleの値は仮想のもの 2y1 = stats.norm.pdf(x,loc=2,scale=0.5) 3y2 = stats.norm.pdf(x,loc=3,scale=0.8) 4plt.plot(x,y1,label='func A') 5plt.plot(x,y2,label='func B') 6plt.legend() 7plt.show()
やりたいことは上記のグラフの重なり合った部分の面積を計算することです。
まだ、コードにしていませんが、次のようなプロセスで計算します。
(1)fucn Aとfunc Bの交点を推定する。
func A - Func B という関数を定義して答えとなり得るxを複数生成してこの関数に入力する、
この結果が限りなくゼロに近くなるxを交点のxとする。
(2)func Bの極小値から交点までのxを範囲にfunc Bの面積を計算する。
func Bについてxの極小値から交点までの面積(積分値)を計算する、計算はscipy.integrate.quadを用いて計算する。極小値は、期待値(func Bの結果)が0.0001となるxを答えとなりそうなxを複数生成して結果が最も近似するものを探索することで推測する。
(3)func Aの極大値と交点までのxの範囲を対象にfunv Aの面積を計算する。
計算方式は項番(2)と同じとする。
教えてほしいこと
項番(1)の交点を求める関数はあるのでしょうか?
今は試行錯誤で近似値を計算する方針ですが、できればpythonに実装されている関数でうまく処理したく思っています。
項番(2)および(3)における極小値・極大値を求める関数はあるのでしょうか?
今は上記と同様に試行錯誤で計算する方針ですが、pythonで実装済みの関数を使いたいと考えています。
科学計算系なので、scipyにあるのではないかと想定して公式サイトで探そうとしたのですが、キーワードがわからず検索できていません。よって、関数そのものでなくてもキーワードでも構いません。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/12 10:31
退会済みユーザー
2018/03/12 11:10
2018/03/12 11:52
2018/03/12 15:39
2018/03/12 16:04
2018/03/12 20:51