我想最小化建模和观察到的点差之间的均方误差(可能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) 我想在我自己的函数上按组应用优化:
这是一个可重复的数据集:
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函数我收到了所有组的相同解决方案,尽管子组存在差异.
谢谢.