Я пытаюсь построить линию экспоненциального распада (с ошибками) на диаграмму рассеяния в ggplot информации о ценах с течением времени. Сейчас у меня это:Как я могу накладывать модели временных рядов на экспоненциальный распад на графику ggplot2?
f2 <- ggplot(data, aes(x=date, y=cost)) +
geom_point(aes(y = cost), colour="red", size=2) +
geom_smooth(se=T, method="lm", formula=y~x) +
# geom_smooth(se=T) +
theme_bw() +
xlab("Time") +
scale_y_log10("Price over time") +
opts(title="The Falling Price over time")
print(f2)
Ключ линия в команде geom_smooth, из formula=y~x
Хотя это выглядит как линейная модель, ggplot кажется, автоматически обнаружить мой scale_y_log10 и зарегистрировать ее.
Теперь моя проблема заключается в том, что дата является типом данных даты. Я думаю, мне нужно преобразовать его в секундах, так как t = 0, чтобы иметь возможность применить экспоненциальную модель распада формы y = Ae^-(bx)
.
Я верю в это, потому что, когда я пробовал такие вещи, как y = exp (x), я получаю сообщение, которое, как мне кажется, (?) Говорит мне, что я не могу принимать показания дат. Она гласит:
Error in lm.wfit(x, y, w, offset = offset, singular.ok = singular.ok, : NA/NaN/Inf in foreign function call (arg 1)
Однако log(y) = x
работает правильно. (y - числовой тип данных, x - дата.)
Есть ли удобный способ установки экспоненциальных моделей временного роста/распада в графиках ggplot в вызове функции geom_smooth (formula = formula)?
может быть 'geom_smooth (метод =«GLM», семья = гауссова (ссылка =" Журнал "))'? –
(воспроизводимый пример будет приятным.) –
Это выглядит многообещающим --- знаете ли вы синтаксис для указания начальных значений? Когда я попытался с настройками по умолчанию, я увидел «Ошибка в eval (expr, envir, enc)): не может найти правильные начальные значения: укажите ' – Mittenchops