我正在尝试最大化我创建的功能。
>n <- 183
>sll <- c(0.1,0.1,0.1)
>newtransform <- numeric()
>newadstock <- numeric()
>sales <- c(0.1790,0.27,0.46,0.134,0.338)
这是我创建的一个功能:
>calc.fun <- function(sll,x) {
> for (i in 1:n) {
> newtransform[i] <- 1/(1+exp(-sll[1]*(x[i,1] - sll[2]))) -
> 1/1+exp(-sll[1]*-sll[2])
> }
> newadstock[1] <- newtransform[1]
> for (i in 2:n){
> newadstock[i] <- newadstock[i-1]*sll[3] + newtransform[i]
> }
> -cor(sales,newadstock)
>}
我想最大化这个相关值,所以我尝试使用optim函数,这给了我一个不利的结果。
这里我修改了sll
向量的参数,并在下面和上面的参数中提到了这个向量的约束
>optim(sll, calc.fun, lower = c(0.1,0.1,0.1), upper = c(1,25,1), method="L-BFGS-B", x=scaled_tarps)
输出
>$par
[1] 0.1885345 0.1000000 0.5709148
>$value
[1] -0.7622432
如何提高相关值?我应该更改method
参数吗?或者我应该使用像optimx
这样的其他R函数吗?
修改 - 问题已被修改,以删除对Excel
的任何提及。