首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试函数R中的不同值

测试函数R中的不同值
EN

Stack Overflow用户
提问于 2018-11-10 05:34:36
回答 1查看 26关注 0票数 0

现在,我正在尝试用高斯拟合来拟合光谱数据。

我想构建一个循环,对每个峰值位置、吸光度和带宽在“猜测”范围内的值组合进行迭代,直到R^2值最小化。

然而,我不知道如何组织我的代码。我正在考虑运行一个while循环,直到R^2值低于某个阈值,但我不知道如何运行我的变量的所有组合……

有没有人对从哪里开始有什么建议?

谢谢!

这就是我正在使用的:

代码语言:javascript
复制
peak1P <- seq(200, 300, 1)  % Likely Peak Positions
peak2P <- seq(400, 550, 1)
peak3P <- seq(600,750, 1)

peak1A <- seq(0, 0.6, 1)  % Likely Peak Absorbance
peak2A <- seq(0, 0.5, 1)
peak3A <- seq(0, 0.3, 1)

peak1B <- seq(0, 20, 1)  # Likely Peak Bandwidth
peak2B <- seq(0, 20, 1)
peak3B <- seq(100,300, 1)

# Individual Peak Models
AbsG1 = peak1A*exp((-4*log(2))*(((((WvLnV/1500)-peak1P/1500)^2))/(peak1B/1500)))
AbsG2 = peak2A*exp((-4*log(2))*(((((WvLnV/1500)-peak2P/1500)^2))/(peak2B/1500)))
AbsG3 = peak3A*exp((-4*log(2))*(((((WvLnV/1500)-peak3P/1500)^2))/(peak3B/1500)))

# Final Fit to compare with Data
AbsF <- AbsG1 + AbsG2 + AbsG3

理想情况下,我的代码将遍历peak(1-3)P、peak(1-3)A和peak(1-3)B中的每个元素组合,直到误差最小化(我的计算误差的函数在这里没有显示)

EN

回答 1

Stack Overflow用户

发布于 2018-11-10 05:42:10

这类问题在统计中被称为“混合建模”,有许多标准方法,这取决于您拥有的数据类型、您对生成数据的底层过程的了解程度以及您希望在其中对结果进行建模的框架。

如果您真的不想使用现有的包;您可以按照标准的估计过程编写一个函数,该函数接受一些参数集并计算它们的拟合程度(我建议使用概率/似然方法,而不是R^2),然后将其传递给optim()或蒙特卡罗方法(例如MCMC)。其思想是从随机猜测开始,并以少量的方式移动参数,以找到“最佳”参数集。更好的方法将表明它对各种估计的置信度(例如,optim()的Hessian或贝叶斯MCMC方法的可信区间)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53233539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档