小编New*_*w2R的帖子

在r中优化函数的函数

我想最小化建模和观察到的点差之间的均方误差(可能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)

optimization r minimize

6
推荐指数
1
解决办法
899
查看次数

在r中通过组自己的功能进行优化

我想在我自己的函数上按组应用优化:

这是一个可重复的数据集:

data <- data.frame(ID=c(1,1,1,2,2,3,3),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)

我的函数定义如下(函数很简单,我只想了解方法):

  TestMSE <- function(LR)
  {
    d <- data
    D <- LR + d$s
    mse(d$C, D)   # mse is from the Metrics Package
   }

optimize(TestMSE,lower = 0.1, upper =1.5)
Run Code Online (Sandbox Code Playgroud)

我尝试使用ddply函数:

test <-  ddply(data,"ID",summarise, optimize(TestMSE,lower = 0.1, upper =1.5))
Run Code Online (Sandbox Code Playgroud)

但是应用ddply函数我收到了所有组的相同解决方案,尽管子组存在差异.

谢谢.

optimization r plyr

1
推荐指数
1
解决办法
103
查看次数

标签 统计

optimization ×2

r ×2

minimize ×1

plyr ×1