Решили, что это скорее ответ, чем комментарий.
И optim
, и optimize
минимизируют функции, поэтому вы хотите написать функцию ошибки, которая возвращает, скажем, квадрат ошибкизаданная лямбда (se(lambda, sigma^2, Q)
, убедитесь, что ваша лямбда является первым аргументом).Затем вызовите optim(f = se, lower = sigma^2, sigma^2, Q)
, и он вернет значение лямбда, которое минимизирует вашу функцию ошибки.Если у вас есть несколько точек данных (Q, сигма ^ 2 пары), сделайте вашу функцию суммой квадратов ошибок или попробуйте использовать nls()
.