NORMDIST函数的主要作用是返回指定平均值和标准偏差的正态分布函数。此函数在统计方面应用范围广泛(包括假设检验)。
如果 mean 或 stand_dev 为非数值型,函数 NORMDIST 返回错误值 #VALUE!。
如果 standard_dev ≤ 0,函数 NORMDIST 返回错误值 #NUM!。
如果 mean = 0,standard_dev = 1,且 cumulative = TRUE,则函数 NORMDIST 返回标准正态分布,即函数 NORMSDIST。
如果 cumulative = TRUE,则公式为从负无穷大到公式中给定的 X 的积分。
import numpy as np
_std = np.std(data_list, ddof=1)
_mean = np.mean(data_list)
def norm_dist_func(x, _mean, _std, cumulative):
if cumulative:
result = norm_dist_func_true(x, _mean, _std)
else:
result = norm_dist_func_false(x, _mean, _std)
return result
def norm_dist_func_true(x, _mean, _std):
oor2pi = 1/ np.sqrt(2.0* np.pi)
x2 = (x-_mean)/_std
if x2== 0:
res =0.5
else:
t = 1/ (1.0 + 0.2316419 * np.abs(x2))
t = t * oor2pi * np.exp(-0.5 * x2 *x2)
* (0.31938153 + t
* (-0.356563782 + t
* (1.781477937 + t
* (-1.821255978 + t * 1.330274429))))
if x2 > 0:
res = 1.0-t
else:
res =t
return res
def norm_dist_func_false(x, _mean, _std):
exponent = (x - _mean)**2.0 / (2.0 * _std**2.0)
return np.exp(-exponent) / (np.sqrt(2.0 * np.pi) * _std)