我尝试优化正态分布的对数似然函数。对数似然函数的函数运行良好,并且识别传入的数据集,但是优化过程无法识别数据集是否存在?
如果我们设置
data_x=rnorm(100,0,1)
,则此代码将返回正确答案,但我需要能够传入不同的数据集。x <- rnorm ( 100, 0, 1)
loglike <- function( pars, data_x=x) {
mu <- pars[1]
sigma2 <- pars[2]^2
numobs <- length( data_x )
sumsq <- sum( ( data_x-mu )^2 )
val.log.like <- -numobs / 2 * log( sigma2 ) - ( 1 / (2*sigma2) ) * sumsq
return( val.log.like )
}
optimization <- optim( c( 0, 1), loglike)
answer <- matrix( optimization$par, 2, 1)
answer
control=list(fnscale=-1)
作为参数,这将告诉它寻找最大值。但我给出的答案是如何传递不同的数据集。 - Dason