gpt4 book ai didi

r - R 中用于 D 最优性的优化函数

转载 作者:行者123 更新时间:2023-12-04 12:17:56 25 4
gpt4 key购买 nike

我创建了一个返回 (X'X)^-1 的确定项的函数。我需要在我创建的函数上使用 optim 函数来为 X 矩阵提供最佳值。我在优化工作方面遇到了问题,但我的功能运行良好。

fr <- function(x,nc,nr) {
Xd <- matrix(c(rep(1,nr),x),nrow=nr,ncol=nc) #### Design matrix
det(solve((t(Xd)%*%Xd))) #### det(FIM)
}

我已经尝试将 x 作为向量和矩阵;

x <-
matrix(c(0.1,0.2,0.3,0.2,0.1,0,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2),nro w = 10, ncol = 2)
x <- c(0.1,0.2,0.3,0.2,0.1,0,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2,0.1,0.2)

这些是我尝试使用 optim 的一些变体,但都没有成功;

optim((x, 3, 10), fr)
optim(fn = fr, par = c(x=x, nc=3, nr=10))
optim(c(x,3,10), fr)

我遇到了不同的错误,有时是因为在 optim 中的 x 后面有一个逗号,有时是关于 nrow missing 的 .Internal 错误。

最佳答案

您可以传递 fr 的参数至 optim :

opt <- optim(fn=fr, x, nc=3, nr=10)

这给出了

> opt$par
[,1] [,2]
[1,] 0.06933853 -1.0888672
[2,] 0.07796119 1.8288789
[3,] 2.09366322 -1.3050871
[4,] 1.40676030 3.3006266
[5,] 1.04102733 -1.1048119
[6,] -5.84413537 1.6741804
[7,] -4.75578972 -0.6484606
[8,] 1.23037198 2.4842715
[9,] 0.10477158 1.4135113
[10,] 2.14145939 -1.4333241

比较fr的函数值优化前后:

> fr(x,3,10)
[1] 62.5
> fr(opt$par, 3, 10)
[1] 4.963814e-05

这有帮助吗?

您可能想查看 ?optim如果您想设置上限和下限。

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

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