【Python】備忘録 正規分布の面積を求める自作関数
備忘録
統計学に関する初歩的な関数
N(0,1^2)に従う正規分布のグラフの面積を求めるだけ。
↑これ
このポリープみたいな曲線の式は、
$$ f_{(x)}=\frac{1}{\sqrt{2x}}e^{(-\frac{x}{2})} $$
で与えられます。
コメントしてくれた人、有難うございます。
ソース(誰得)
1. 0からxまでの面積を求める
NORMAL_Dist_S
def NORMAL_Dist_S(a):
"""N(0,1^2)に従う正規分布の x=0からaまでの面積を返す"""
import numpy as np
import math
from scipy import integrate
f = lambda x: (math.exp(-x**2/2)) / math.sqrt(2*math.pi)
s,d = integrate.quad(f, 0, abs(a))
return s
def NORMAL_Dist_S(a):
"""N(0,1^2)に従う正規分布の x=0からaまでの面積を返す"""
import numpy as np
import math
from scipy import integrate
f = lambda x: (math.exp(-x**2/2)) / math.sqrt(2*math.pi)
s,d = integrate.quad(f, 0, abs(a))
return s
NORMAL_Dist_Sは、
x=任意の実数
res = NORMAL_Dist_S(x)
と書き、
2. x=∞からxまでの面積を求める
def NORMAL_Dist_S_REST(a):
"""N(0,1^2)に従う正規分布の x=0からaまでの面積を0.5から引いた値を返す"""
import numpy as np
import math
from scipy import integrate
f = lambda x: (math.exp(-x**2/2)) / math.sqrt(2*math.pi)
s,d = integrate.quad(f, 0, abs(a))
s=0.5-s
return s
NORMAL_Dist_S_RESTは、
x=任意の実数
res = NORMAL_Dist_S_REST(x)
と書き、
S(x)の値をresに返します。
3. 任意の2地点の積分
def NORMAL_Dist(a,b):
"""N(0,1^2)に従う正規分布の aからbまでの面積を返す"""
import numpy as np
import math
from scipy import integrate
f = lambda x: (math.exp(-x**2/2)) / math.sqrt(2*math.pi)
s,d = integrate.quad(f, a,b)
return s
NORMAL_Distは、
x=任意の実数
y=任意の実数
res = NORMAL_Dist(x,y)
と書き、
S(x)の値をresに返します。
感想
もっと単純明快かつ高速にかけそう
故に、誰得関数。
どんどん関数を増やしていきたい。(誰得なのに!!??)
なんだかんだいって、自分は使う場面が結構あるし、
めんどくさいからこの機会に思い切って関数化。
てかこの程度なら、pythonのimportするライブラリになんかあると思う。
というより、ないはずがない。
出典など
http://org-technology.com/posts/integrate-function.html
https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E5%88%86%E5%B8%83
Author And Source
この問題について(【Python】備忘録 正規分布の面積を求める自作関数), 我々は、より多くの情報をここで見つけました https://qiita.com/66zaha_9su/items/fb69c927b192244b7e80著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .