Оптимизация логарифмического правдоподобия, передача в разные наборы данных

Я пытаюсь выполнить оптимизацию логарифмической вероятности нормального распределения. Функция для логарифмического правдоподобия работает, и она распознает переданный набор данных, но оптимизация не распознает, есть ли этот набор данных? Если мы установили 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

2 ответа

Решение

optim позволяет передавать дополнительные параметры оптимизируемой функции. В этом случае это просто вопрос добавления data_x=your_new_data_set оптимальным параметрам.

optim(c(0,1), loglike, data_x = your_new_data_set)

Это то, что ... параметр для optim позволяет вам делать. Проверьте ?optim Больше подробностей.

Использовать ... аргумент для оптимизации:

y <- 1:100
optimization<-optim(c(0,1), loglike, data_x=y)
Другие вопросы по тегам