当我们创建一个函数时,为什么我们在R程序中使用 - (减号)作为回报 看这个例子
f <- function(pars) {
L <- (n*log(pars[1]))+(n*pars[1]*log(T1))+(n*pars[1]*log(pars[2]))-
(n*log((T1^pars[1])-(pars[2]^pars[1])))- ((pars[1]+1)*sum(log(pars[2]+x)))
return(-L)
}
这里为什么我们使用(-L)作为回报如果我使用return(L)
示例的Error in f(x, ...) : argument "x" is missing, with no default in nlm
答案 0 :(得分:5)
通常他们这样做的目的是maximization
。在R中优化函数时,优化函数的默认设置通常是最小化。这样做的一个简单方法就是在对数似然函数中使用-
符号,该符号最小化将最大化。虽然没必要。您可以使用优化函数中的控件来指示是否需要最大化或最小化对数似然函数
答案 1 :(得分:4)
在这种情况下,您使用减号,因为您创建了一个返回-L
的函数。在R函数中,减号不是强制性的:您也可以写
L = -L
return(L)