Это проблема нелинейной регрессии, где y равно правой части плюс ошибка.
Чтобы соответствовать такой модели, используйте nls
в базе R (см. ?nls
для получения дополнительной информации) или любую из ряда других функций нелинейной регрессии. См. https://cran.r -project.org / web / views / Optimization.html . С учетом определенных предостережений nls
найдет параметры, которые минимизируют сумму квадратов ошибок с учетом модели и начальных значений.
# create test data
set.seed(123)
c0 <- c1 <- 1
x <- 1:10
y <- c0 * log(c1 * x + 1) + rnorm(10)/10
# fit model to the data
fm <- nls(y ~ c0 * log(c1 * x + 1), start = list(c0 = mean(y), c1 = 1))
fm
, что дает:
Nonlinear regression model
model: y ~ c0 * log(c1 * x + 1)
data: parent.frame()
c0 c1
0.9207 1.2210
residual sum-of-squares: 0.07622
Number of iterations to convergence: 5
Achieved convergence tolerance: 4.887e-06
Для графического отображенияоценить подгонку:
plot(y ~ x, pch = 20)
lines(fitted(fm) ~ x, col = "red")