Я пытаюсь создать прогноз на основе данных временных рядов.как вы можете прогнозировать данные временных рядов?
Моих кадр данных вызов Даты выглядят следующим образом:
dput (голова (Даты))
dat <- structure(list(out = c(5, 0, 0, 0, 0, 0), Date = c(1423825200000,
1423825500000, 1423825800000, 1423826100000, 1423826400000, 1423826700000
)), .Names = c("out", "Date"), row.names = c(NA, 6L), class = "data.frame")
В настоящее время существует 81 строк в моем кадре данных DAT. Вызываются мои столбцы, а столбцы Date, Date - в эпоху.
Мне нужно построить линейную модель первым:
lin <- lm(dat[,1]~dat[,2], data=dat)
на основе этой модели, мне нужно, чтобы предсказать почасовые точки данных в течение 7 дней и т.д. так, я делаю это:
t<-3600
newdata <- seq(tail(dat$Date,1), tail(dat$Date,1)+604800, t)
newdata<-data.frame(newdata)
colnames(newdata)<-c("Date")
predictions <- predict(lin, newdata=newdata, level=0.95, interval="prediction")
predictions <- data.frame(predictions)
f<-predictions
f<-data.frame(f)
f<-cbind(f, newdata)
f<-f[,c("fit", "Date")]
colnames(f)<-c("Forecast", "Date")
I получить эту ошибку:
Error in data.frame(..., check.names = FALSE) :
arguments imply differing number of rows: 81, 169 In addition: Warning message:
'newdata' had 169 rows but variables found have 81 rows
Независимо от размера моего кадра данных (DAT), я должен быть в состоянии построить линейную модель а nd на основе newdata, я должен выполнить функцию прогнозирования. Какие-нибудь идеи, что может происходить здесь?
Может быть, некоторые из ваших переменных являются факторами, которые расширены в 'lm' – kristang
@kristang, они являются цифровыми. – user1471980
попробуйте использовать имена переменных в формуле 'lin <- lm (out ~ Date, data = dat)' – NicE