r - 对数似然的优化,传入不同的数据集

标签 r function optimization normal-distribution

我正在尝试对正态分布的对数似然进行优化。对数似然函数起作用,它识别传入的数据集但优化不识别数据集在那里?
如果我们设置 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(c(0,1), loglike, data_x = your_new_data_set)

这是什么... optim 的参数是让你做。查询 ?optim更多细节。

关于r - 对数似然的优化,传入不同的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13535832/

相关文章:

r - 使用 R 中的 OECD 包从 OECD 网站下载数据

python - 优化Python中大文件中的重复项删除

SQL 查询返回一系列 ID 中每个 ID 的前 N ​​行

javascript - 如果脚本确实很短,那么使用内联 JavaScript 是否优于外部包含?

r - 如何从 R 中的字符串中拆分和分离时间戳

r - 在 x 轴上的离散组之间添加刻度

r - 如何在 R Shiny 中创建过渡条形图 Plotly Drilldown?

python - 通过调用另一个函数作为子函数来更改函数中的变量值

C 通过引用字符串传递

php - 如何在不更改扩展名的情况下更改上传文件的名称