No.044 統計学のお勉強 積分の計算

1.今回の目的

統計検定2級の勉強をしていますが、統計検定には積分の計算をしなければならない問題もでてきます。連続型確率変数の確率密度を計算するために積分が必要ですが、手計算って面倒ですよね。Pythonで積分できないかなーと探したところ、できるようなので備忘としてノートに書いておきます。

2.Reference

こちらのサイトを参考にしました。

https://qiita.com/maskot1977/items/51caa6c8cbf8a2c691db

3.Python

統計検定2級の2019年11月問9の問題をPythonで解いてみます。
この問題では1か月の一人暮らしの水道使用量が連続型確率変数Xで表され、確率密度関数 fx = a(1-x/20)  (0≦x≦20)が与えられています(x<0, x>20の確率は0)。

2019年11月問9(1)は定数aの値がを求める問題ないので a(1-x/20)の積分の値を求めれば、定数aの値も求められます。Pythonでは以下のようにSympyを使います。

#sympyのImport
import sympy as sym

#a, xをシンボルとして扱う
a, x = sym.symbols("a x")

#確率密度関数fxを定義
fx  = a*(1-x/20)

#fxをxで積分範囲は0から20まで
sym.Eq(sym.Integral(fx, (x, 0, 20)), sym.integrate(fx, (x, 0, 20)))

下記の通り計算できました。問題文より10aが1になるので、a=1/10が回答になります。

続いて、2019年11月問9(2)は水道使用量の期待値を求める問題となります。
(1)から定数項a=1/10が分かっているので、x/10(1-x/20)を積分すればよいですね。ということでPythonのCodeのfxを少し変えて実行20/3が正解です。

fx  = x/10*(1-x/20)
sym.Eq(sym.Integral(fx, (x, 0, 20)), sym.integrate(fx, (x, 0, 20)))

続いて、2019年11月問9(3)は 水道使用量料金の期待値を求める問題です。問題文から0≦x<10 の使用料金は1000円、10≦x<15の使用料金は1120円、x≧15の使用料金は1280円とありますので、それぞれの範囲のfxを足し合わせる必要があります。

それぞれパラメータを変えて計算すると750円、210円、80円となりましたのですべて足して1040円が正解となります。

以上です。Pythonで計算してもらえると楽ですよね。
しかしながら、試験合格のためには自分で計算できるようにならなければなりませんので頑張りましょう。

この記事が気に入ったらサポートをしてみませんか?