我无法弄清楚如何解决融资中的最大化问题。
我想最多:(t(x)% * %(r)-rf)/(t(x)% * %A% * %x)
其中x
是3x1向量,A
是3x3,rf
是值(0.02),r
也是3x1。
从这个等式中我想知道最大化这个的x
的价值。
奖励:如果您可以插入约束,其中x中的所有单个值都介于0和1之间,并且总和为1会更加令人敬畏
sigma1=0.1
sigma2=0.2
sigma3=0.15
korrelationen12=0.25
korrelation23=0.20
korrelation13=0.1
cov12=korrelationen12*sigma1*sigma2
cov13=korrelation13*sigma1*sigma3
cov23=korrelation23*sigma2*sigma3
afkast1=0.04
afkast2=0.12
afkast3=0.08
r=c(afkast1,afkast2,afkast3)
rf=0.02
data=c(sigma1^2,cov12,cov13,cov12,sigma2^2,cov23,cov13,cov23,sigma3^2)
A=matrix(data=data,3,3)
et=c(1,1,1)
max((t(x)% * %(r)-rf)/(t(x)% * %A% * %x),x)????
在此示例中,结果必须与使用时的结果相同:
tangent=(solve(A)%*%(r-(rf)*et))/as.numeric((t(et)%*%solve(A)%*%(r-rf*et)))
tangent
[,1]
[1,] 0.1320973
[2,] 0.4391657
[3,] 0.4287370
答案 0 :(得分:0)
尝试optim
:
proj <- function(x) x / sum(x) # projection satisfies sum(x) == 1
obj <- function(x) {
x <- proj(x)
(t(x)%*%(r)-rf)/(t(x)%*%A%*%x)
}
fit <- optim(proj(1:3), obj, lower = c(0, 0, 0), upper = c(1, 1, 1),
method = "L-BFGS-B", control = list(fnscale = -1))
proj(fit$par) # parameter values at maximum
## [1] 0.4483085 0.2171453 0.3345461
fit$value # maximum value of objective
## [1] 5.827519
关于问题结尾处所声称的解决方案,它是不提出的最大化问题的解决方案,因为其目标值小于上述解决方案中显示的,因此,不是最大化的价值:
tangent=(solve(A)%*%(r-(rf)*et))/as.numeric((t(et)%*%solve(A)%*%(r-rf*et)))
obj(tangent)
## [,1]
## [1,] 4.807799
建议您调查此不一致情况 - 提出的问题是正确的,tangent
不是解决方案,或tangent
是解决方案,问题中存在错误。