我使用minpack.lm软件包运行非线性最小二乘法。优化拟合系数以便更好地拟合
但是,对于数据中的每个组,我想优化(最小化)拟合参数,如类似于Python的minimize函数。
minimize()函数是Minimizer运行 优化问题时的一个包装。它需要一个目标函数(函数 ,用于计算要最小化的数组),一个Parameters对象和几个可选参数。
我需要这个的原因是,我想基于获得的拟合参数来优化拟合函数以找到适合数据中的两个组的全局拟合参数。
这是我目前在小组拟合方法,
df <- data.frame(y=c(replicate(2,c(rnorm(10,0.18,0.01), rnorm(10,0.17,0.01))),
c(replicate(2,c(rnorm(10,0.27,0.01), rnorm(10,0.26,0.01))))),
DVD=c(replicate(4,c(rnorm(10,60,2),rnorm(10,80,2)))),
gr = rep(seq(1,2),each=40),logic=rep(c(1,0),each=40))
这些群体的拟合方程是
fitt <- function(data) {
fit <- nlsLM(y~pi*label2*(DVD/2+U1)^2,
data=data,start=c(label2=1,U1=4),trace=T,control = nls.lm.control(maxiter=130))
}
library(minpack.lm)
library(plyr) # will help to fit in groups
fit <- dlply(df, c('gr'), .fun = fitt) #,"Die" only grouped by Waferr
> fit
$`1`
Nonlinear regression model
model: y ~ pi * label2 * (DVD/2 + U1)^2
data: data
label2 U1
2.005e-05 1.630e+03
$`2`
label2 U1
2.654 -35.104
我需要知道是否有任何优化功能的总和,OF-正方形来为两个组获得最佳拟合。 我们可以说,你已经拥有了最好的拟合参数为剩余总和-的平方,但我知道,minimizer能做到这一点,但我还没有找到任何类似的例子,我们可以在R
做到这一点ps。我做了数字和拟合线。
我认为'?optim'等同于Python的'minim'。 Optim的作者推荐'optimx'包做出了很好的改进。 – Gregor
@Gregor我明白了。我很抱歉让你们讨厌。我只是陷入困境,需要真正帮助解决这个问题! – Alexander
@Gregor我从来没有听说过'optimx'。我快速查看了stackoverflow,但似乎没有分组数据的优化方法。 – Alexander