New*_*w2R 6 optimization r minimize
我想最小化建模和观察到的点差之间的均方误差(可能mse()在hydroGOF包中使用).该功能定义为:
KV_CDS <- function(Lambda, s, sigma_S){
KV_CDS = (Lambda * (1 + s)) / exp(-s * sigma_S) - Lambda^2)
}
Run Code Online (Sandbox Code Playgroud)
目标是mse通过在KV_CDS函数中保留Lambda一个自由参数来最小化KV_CDS和C.
df <- data.frame(C=c(1,1,1,2,2,3,4),
Lambda=c(0.5),s=c(1:7),
sigma_S=c(0.5,0.4,0.3,0.7,0.4,0.5,0.8),
d=c(20,30,40,50,60,70,80),
sigma_B=0.3, t=5, Rec=0.5, r=0.05)
Run Code Online (Sandbox Code Playgroud)
感谢西蒙,我找到了解决方案:
d <- df
TestMSE <- function(LR)
{
D <- KV_CDS(LR, d$s, d$sigma_s, d$D, d$sigma_B, d$t, d$Rec, d$r)
mse(d$C, D)
}
optimize(TestMSE,lower = 0.1, upper =1.5)
Run Code Online (Sandbox Code Playgroud)
或者:
TestMSE2 <- function(LR)
{
D <- KV_CDS(LR, d$s, d$sigma_s, d$D, d$sigma_B, d$t, d$Rec, d$r)
mean((d$C- D)^2)
}
optimize(TestMSE2,lower = 0.1, upper =1.5)
Run Code Online (Sandbox Code Playgroud)
谢谢你们的帮助!