Двухпараметрический квадрат root регрессия модели R - PullRequest
0 голосов
/ 04 мая 2020

Мне нужно выполнить регрессионную модель из моих данных x и y. Модель y = b * ((x-0) * (1-exp(d*(x-100))). Мне нужно получить константы b и d. Я делал это раньше (какое-то время go), но по какой-то причине я пережил это. Я искал здесь несколько часов, чтобы получить ответ, но безуспешно. Я пробовал:

m1 <-nls(b((data$x-0)*(1-exp(d*(data$x-100)))), data = data, start = list(b = 1, d = 0.1), но получаю could not find function "b" and "d"

1 Ответ

1 голос
/ 07 мая 2020

В 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")

enter image description here

...