如何解决C#如何在峰上应用高斯钟形曲线?
我在理解如何使高斯曲线拟合峰上时遇到了很多麻烦。还有一些类似的问题,但是即使看了这些,我仍然不确定。统计学/概率论等从来都不是我的强项,但我认为让我感到困惑的是高斯钟形曲线仅使用均值和标准差计算得出。与其他曲线拟合方法不同,未使用峰中的实际原始值。
我已经实现了高斯函数;
public static float getGaussian(float x,float mean,float stdDev)
{
float v1 = 1F / (stdDev * (float)Math.Sqrt(2 * Math.PI));
float v2 = ((x - mean) * (x - mean)) / (2 * (stdDev * stdDev));
return (v1 * (float)Math.Exp(-v2));
}
我认为这是正确的,但是我的“曲线”最终看起来像是平坦的,所以我显然做错了。
这是一个样本峰
原始数据,即(x,y)点是
(9,0) (10,1) (11,2) (12,3) (13,4) (14,10) (15,12) (16,13) (17,23) (18,26) (19,23) (20,20) (21,17) (22,12) (23,5) (24,3) (25,3) (26,4) (27,2) (28,2) (29,1)
任何人都可以解释如何根据此数据计算高斯曲线以及该曲线的外观吗?
解决方法
似乎您只有整数。假设这是一个来自正态分布数据的直方图,那么您只需:
xs = sum_i x_i * y_i
ns = sum_i y_i
mean = xs / ns
ss = sum_i y_i * ( x_i - mean) * ( x_i - mean)
sigma = sqrt( ss / ( ns - 1 ) )
最后,如果g( x,x0,s )
是具有均值x0
和标准差s
的归一化高斯,则
ns * g( x,mean,sigma )
应该近似您的数据。
,另一种拟合方法如下所示。
有关信息:https://fr.scribd.com/doc/14674814/Regressions-et-equations-integrales(法语)中解释了一般原理。 Joseph R. Fox-Rabinovitz在https://scikit-guess.readthedocs.io/en/latest/appendices/references.html
中的翻译不完整版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。