У меня есть следующие data.frame d
из эксперимента:
- Variable y (response, continuous)
- Factor f (500 levels)
- Time t (posixct)
В последние 8 лет y измерялось примерно раз в месяц (точная дата в t) для каждого уровня f,Иногда есть 2 измерения в месяц, иногда пара месяцев проходит без каких-либо мер.
Извините за то, что не предоставил пример данных, но составление нерегулярных временных рядов выходит за рамки моего знания R.;)
Я хотел бы сделать следующее с этими данными:
- сделать регрессию, используя функцию
loess()
(y ~ t)
, для каждого уровня f
- делает прогноз
y
для первого дня каждого месяца и каждого уровня f
Первый пункт, который, я думаю, я решил, используя ответ Хэдлиса на это вопрос:
models <- dlply(d, "f", function(df) loess(y ~ as.numeric(t), data = df))
Итак, теперь у меня есть models
(класс list
), с моделью для каждого уровня f
.Я также создал время, на которое я хотел бы прогнозировать y
для каждого уровня f
, например:
dates <- seq(min(t),max(t),"months")
Но теперь я застрял в том, как делать прогнозы для каждой модели.Примерно так должно работать (псевдокод):
for each f in models
p.f <- predict(models(f),dates)
p.f.complete <- r.bind(p.f.comlete,p.f)
next f
В результате я хотел бы получить эти data.frame:
- y.predicted
- f
- t.predicted (= даты)
Любая помощь будет принята с благодарностью.