我需要在R中使用包含峰值信号和平坦背景的直方图。像这样:
pic http://wwwasd.web.cern.ch/wwwasd/paw/contributions/bwp4_fit.gif
我怎样才能在R中有效率?我还没有在网上找到任何好的参考资料。 我习惯在ROOT中做到这一点:http://root.cern.ch/root/html/tutorials/fit/FittingDemo.C.html 但是在R中它并不那么容易......
我使用fitdistr(MASS包)做了一些事情,但只有当我使用一个给定的分布(例如高斯分布)时它才会很好。 如果我尝试向高斯添加平坦(均匀)背景,请为两个分布的相对存在添加参数:
f = gaus(mean, sigma) + r * uniform
使用均值,sigma和r自由参数,拟合不再起作用。
典型错误是:
Error in solve.default(res$hessian) :
Lapack routine dgesv: system is exactly singular: U[1,1] = 0
In addition: There were 28 warnings (use warnings() to see them)
或者只是没有收敛。
最后,我不明白R如何处理规范化常数(每个添加的分布前面的乘法参数)。我想如果我们拟合频率,所有(直方图和拟合曲线)应该已经归一化为单位。因此,在峰值信号中添加平坦背景时唯一的新参数应该是相对权重(上例中的r) 。是这种情况吗?
由于 马可