В R вам понадобится "*", чтобы умножить переменную на что-то еще, например:
set.seed(222)
data = data.frame(x=runif(100,100,110))
b = 0.7
d = 0.1
data$y = with(data,b * x * (1-exp(d*(x-100))))+ rnorm(100,5,1)
m1 <-nls(y ~ b*x*(1-exp(d*(x-100))),
data = data, start = list(b = 1, d = 1))
Nonlinear regression model
model: y ~ b * x * (1 - exp(d * (x - 100)))
data: data
b d
0.4334 0.1311
residual sum-of-squares: 481.9
Мы можем построить график:
f = function(x,b,d){ b*x*(1-exp(d*(x-100))) }
plot(data)
linspace = seq(100,110,by=0.5)
lines(linspace,f(linspace,coefficients(m1)["b"],coefficients(m1)["d"]),col="blue")