Экспоненциальная кривая
У меня есть два вектора X и y2, и я хочу подогнать экспоненциальную кривую к данным.
Я перепробовал много подходов, описанных в темах переполнения стека, но все они дают мне прямую линию. например, я попробовал это:
model.three <- lm(log(y2) ~ log(X))
plot(X,predict(model.three))
abline(model.three)
Мои данные:
X <- seq(1:50)
Y <- rnorm(50,mean=0,sd=1)
y2 <- exp(X)
y2 <- Y+y2
2 ответа
Это то, что вы ищите?
model.three <- lm(log(y2) ~ log(X))
plot(X,predict(model.three))
## Instead of abline(), use this:
lines(model.three$fitted.values)
Ваши данные выражают экспоненциальную связь между Y и X, которая Y = exp(X) + eps
где eps
немного шума Поэтому я бы предложил подгонять модель между log(Y)
а также X
, чтобы захватить линейные отношения между двумя:
model.three <- lm(log(y2) ~ X)
summary(model.three)
Резюме подтверждает, что полученное соотношение соответствует ожидаемому (то есть коэффициент для X очень близок к 1).
Поскольку построение данных в линейном масштабе не будет полезным, я думаю, что будет хорошей идеей построить построенную прямую линию с abline
,
Примечание: если быть точным, было бы точнее отразить взаимосвязь между y2 и exp(X), но с вашими данными подбор по существу идеален.