使SciPy偏斜模的模式和拐点达到给定值

问题描述

问题来自试图在预测的模型数据上构建误差包络,该模型将在似然最大化例程中与观察到的数据进行比较。

以最佳拟合读数(N_BF)及其1sigma偏差的形式提供误差线。通常,偏差不是对称的。因此,需要一个偏规范。

本质上,我将实际预测(N_i)定义为

N_i =(1 + alpha)* N_BF

定义可能性要求

可能性=积分[比较{N_obs,N_i(alpha)} * PDF(alpha),alpha,-3 * sigma,3 * sigma]

我正在寻找的是PDF(alpha),因为它的模式应该为零:最佳拟合值N_BF仍然是最高的权重条目,并且1sigma间隔应该使得(1 + alpha_1sigma)* N_BF符合实验数据提供的1sigma限制。

我试图将https://en.wikipedia.org/wiki/Skew_normal_distribution中提供的方差和偏斜表达式进行求反,以获得分布的比例和形状参数:

if (ddn != 0) and (dup !=0) and (l!=0):
            sigma= np.sqrt((dup**2 + ddn**2)/(2 * l**2))
            delta= np.sqrt(np.pi)*((dup - ddn)/(np.sqrt(dup**2 + ddn**2)))
            skew= delta/(np.sqrt(abs(1 - delta**2)))
            bf= skewnorm.mean(a=skew,loc=0,scale=sigma)
            xlow,xup= skewnorm.interval(0.68,a=skew,scale=sigma)
            print(bf,xlow,xup)

但是最佳拟合值和1sigma间隔通常与预期值不匹配。这是可以预期的,因为所使用的表达式具有限制范围。在代码中,ddn,dup和l分别是向下和向上提供的1sigma偏差和最佳拟合。

或者,我可以运行一个拟合例程,在该例程中,可以更改偏斜范的形状和比例参数,直到它们在一定的公差范围内符合我的要求。但我希望有一种更快,更优雅的方式来处理此问题。

skewnorm.fit 不起作用,因为它需要完整的数据集来进行拟合。对于最终分布,我只有三个参数:其模式(必须为零)和拐点。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...