我使用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