gpt4 book ai didi

r - 优化 r 中函数的函数

转载 作者:行者123 更新时间:2023-12-01 23:24:07 24 4
gpt4 key购买 nike

我想最小化建模和观察到的价差之间的均方误差(可能会使用 HydroGOF 包中的 mse())。该函数定义为:

    KV_CDS <- function(Lambda, s, sigma_S){
KV_CDS = (Lambda * (1 + s)) / exp(-s * sigma_S) - Lambda^2)
}

目标是通过在 KV_CDS 函数中保留 Lambda 为自由参数来最小化 KV_CDS 和 C 之间的 mse

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)

最佳答案

您需要编写一个函数来最小化计算此特定情况的均方误差,例如:

calcMSE <- function (Lambda) 
{
d <- df # best not to use -df- as a variable because of confusion with
# degrees of freedom
err <- d$C - KV_CDS(Lambda, d$s, d$sigma_S, d$d, d$sigma_B, d$t, d$Rec, d$r)
sum(err^2) / length(err)
}

...然后您可以使用optimize(),例如这样(您需要为Lambda指定可能值的范围——顺便说一句,这不是一个理想的名称,因为它暗示它可能是一个函数,而实际上它只是一个变量):

optimize(calcMSE,c(0,1))

我无法进行完整的测试,因为我没有安装 pbivnorm,但这应该可以为您完成。

关于r - 优化 r 中函数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15142246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com