Разница между прогнозом и функцией прогнозирования в R

Есть ли разница между функциями predict() и forecast() в R?

Если да, то в каких конкретных случаях их следует использовать?


person Abhay Bhadani    schedule 14.07.2015    source источник
comment
Я предложил перенести ваш вопрос на перекрестную проверку, поскольку речь идет не о программировании, а о концепциях.   -  person PavoDive    schedule 14.07.2015
comment
@PavoDive - они спрашивают о различиях между функциями, что не обязательно является статистической проблемой. Я не уверен, что это хороший вопрос, но я бы не стал автоматически переходить на поезд CV.   -  person Dason    schedule 14.07.2015
comment
@Dason, что побудило меня отметить этот шаг, так это то, в каких случаях ... часть   -  person PavoDive    schedule 14.07.2015
comment
В какой ситуации вы видите forecast()? Я никогда не использовал его раньше, он специфичен для конкретной библиотеки?   -  person Mhairi McNeill    schedule 14.07.2015
comment
predict — это общая функция, поэтому ее можно переопределить для разных типов объектов. Этот вопрос слишком широк, чтобы на него можно было ответить. Вы действительно должны предоставить воспроизводимый пример, показывающий, в каком контексте вы находитесь. используя эти функции. Включите несколько примеров данных, покажите, что вы получаете разные результаты, и тогда мы поможем вам понять, почему.   -  person MrFlick    schedule 14.07.2015
comment
@MhairiMcNeill: forecast() доступен в пакете прогноз.   -  person Abhay Bhadani    schedule 15.07.2015
comment
@MrFlick: я пытался предсказать временные ряды, используя модель ARIMA. Я видел несколько примеров, где использовалось predict(). Ответ Роберта помог мне понять, и, согласно вашему предложению, обе функции дали одинаковые результаты. Спасибо!   -  person Abhay Bhadani    schedule 15.07.2015


Ответы (1)


вступление

  • predict -- для многих видов объектов R (моделей). Часть базовой библиотеки.
  • forecast -- для временных рядов. Часть пакета прогнозов. (см. пример).

Пример

#load training data
trnData = read.csv("http://www.bodowinter.com/tutorial/politeness_data.csv")

model <- lm(frequency ~ attitude + scenario, trnData)

#create test data
tstData <- t(cbind(c("H1", "H", 2, "pol", 185),
                   c("M1", "M", 1, "pol", 115),
                   c("M1", "M", 1, "inf", 118),
                   c("F1", "F", 3, "inf", 210)))

tstData <- data.frame(tstData,stringsAsFactors = F)
colnames(tstData) <- colnames(trnData)
tstData[,3]=as.numeric(tstData[,3])
tstData[,5]=as.numeric(tstData[,5])

cbind(Obs=tstData$frequency,pred=predict(model,newdata=tstData))

#forecast
x <- read.table(text='day       sum
                    2015-03-04   44           
                    2015-03-05   46           
                    2015-03-06   48           
                    2015-03-07   48           
                    2015-03-08   58           
                    2015-03-09   58           
                    2015-03-10   66           
                    2015-03-11   68           
                    2015-03-12   85           
                    2015-03-13   94           
                    2015-03-14   98           
                    2015-03-15  102           
                    2015-03-16  102           
                    2015-03-17  104           
                    2015-03-18  114', header=TRUE, stringsAsFactors=FALSE)
library(xts)
dates=as.Date(x$day,"%Y-%m-%d")
xs=xts(x$sum,dates)

library("forecast")
fit <- ets(xs)
plot(forecast(fit))
forecast(fit, h=4)
person Robert    schedule 14.07.2015
comment
Помогли мне понять. - person Abhay Bhadani; 15.07.2015
comment
Должен ли вывод этих двух функций отличаться? - person statwoman; 26.05.2021