我正在尝试使用函数优化来获得最大的绘图(具体是最大似然图):
我正在使用以下代码:
optimize(f=fml, interval = c(-10,10), maximum = TRUE)
但是我收到了这个错误:
Error in f(arg, ...) : unused argument (arg)
函数fml是:
fml<-function(){
q1<- Nominal(z, a, c, x[1])
q2<- Nominal(z, a, c, x[2])
p3<- Nominal(z, a, c, x[3])
q4<- Nominal(z, a, c, x[4])
p1<- 1 - q1
p2<- 1 - q2
p4<- 1 - q4
p <- p1*p2*p3*p4
q <- 1-p
ML <- log(p*q)
plot(x= z, y=ML)
}
Nominal是另一个仅提取概率的函数。函数fml正常工作导致我得到这个图,它显然有一个最大值。见下图:
可能是什么错误?
编辑:
变量是:
a1 <- c(-0.5,-1,-0.3,-1.2)
a2 <- c(-0.2,0.3,-0.6,0.4)
a3 <- c(0.7,0.7,0.9,0.8)
a <- rbind(a1,a2,a3)
c1 <- c(0.2,0.3,-0.4,-0.6)
c2 <- c(0.7,0.3,1.6,-0.4)
c3 <- c(-0.9,-0.6,-1.2,1)
c <- rbind(c1,c2,c3)
x <- c(2,1,3,2)
z<- seq(-10,10,0.001)
名义功能是:
Nominal <- function(z, av, cv, x){
K <- length(av)
suma <- 0
for(k in 1: K){suma <- suma + exp(z*av[k] + cv[k])}
exp(z*av[x] + cv[x])/suma
}