我正在尝试对正态分布的对数似然进行优化。对数似然函数起作用,它识别传入的数据集但优化不识别数据集在那里?
如果我们设置 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
最佳答案
optim
允许您将附加参数传递给您正在优化的函数。在这种情况下,只需将 data_x=your_new_data_set
添加到 optim 参数即可。
optim(c(0,1), loglike, data_x = your_new_data_set)
这就是
...
的 optim
参数允许您执行的操作。查看 ?optim
了解更多详情。关于r - 对数似然的优化,传入不同的数据集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13535832/