Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多输入变量Holt-Winters预测_R_Forecasting_Holtwinters_Forecastr - Fatal编程技术网

多输入变量Holt-Winters预测

多输入变量Holt-Winters预测,r,forecasting,holtwinters,forecastr,R,Forecasting,Holtwinters,Forecastr,就上下文而言,我是一个新手,所以请原谅任何不正确的术语/过程。我正在积极努力提高自己的编码能力,但最近却遇到了困难 我有以下数据集,其中A*B*C=输出: 日期A B输出 2013年1月177352 0.908329198 0.237047935 38187 2013年1月2日240724 0.852033865 0.237273592 48666 2013年1月3日243932 0.908380204 0.237039845 52524 2013年1月4日221485 0.820543152

就上下文而言,我是一个新手,所以请原谅任何不正确的术语/过程。我正在积极努力提高自己的编码能力,但最近却遇到了困难

我有以下数据集,其中A*B*C=输出:

日期A B输出
2013年1月177352 0.908329198 0.237047935 38187
2013年1月2日240724 0.852033865 0.237273592 48666
2013年1月3日243932 0.908380204 0.237039845 52524
2013年1月4日221485 0.820543152 0.236356733 42955
2013年1月5日202590 0.818066045 0.240900973 39925
2013年1月6日238038 0.770057722 0.247344561 45339
2013年1月7日271511 0.794258796 0.24252029 52026
2013年1月8日283434 0.807817693 0.233810703 53534
2013年1月9日275016 0.843220031 0.243769917 56530
2013年1月10日255266 0.797791324 0.238562428 48583
2013年1月11日226564 0.815791564 0.236153417 43648
2013年1月12日214366 0.800066242 0.237961133 40812
2013年1月13日256946 0.764845532 0.237640186 46702
2013年1月14日282298 0.816537843 0.234257528 53998

我有几年的数据,我正在尝试使用a、B和C预测输出。然而,当我分别对a、B和C进行建模时,输出变得非常倾斜。如果我只预测输出,那么我就失去了输入因子

完成此任务的最佳包/代码是什么?我在这里尝试了很多不同的搜索方法,但是没有找到我想要的解决方案

下面是一些代码:

DataSet1[,"Date"] <- mdy(DataSet[,"Date"])

DataSet1
TotalSet <- ts(DataSet1, frequency = 365, start =c(2013,1))
DataA <- ts(DataSet1$A, frequency = 365, start = c(2013,1))
DataB <- ts(DataSet1$B, frequency = 365, start = c(2013,1))
DataC <- ts(DataSet1$C, frequency = 365, start = c(2013,1))
OutputData <- ts(DataSet$Output, frequency = 365, start = c(2013,1))

ADecompose <- decompose(DataA)
BDecompose <- decompose(DataB)
CDecompose <- decompose(DataC)
OutputDecompose <- decompose(OutputData)

DataAHW <- HoltWinters(DataA, seasonal = "mult")
DataBHW <- HoltWinters(DataB, seasonal = "mult")
DataCHW <- HoltWinters(DataC, seasonal = "mult")
OutputDataHW <- HoltWinters(OutputData, seasonal = "mult")

FC.A <- forecast.HoltWinters(DataAHW)
FC.B <- forecast.HoltWinters(DataBHW)
FC.C <- forecast.HoltWinters(DataCHW)
FC.Output <- forecast.HoltWinters(OutputDataHW)

plot(ForecastVisits)
plot(ForecastCPV)
plot(ForecastRPC)
plot(ForecastRevenue)

DataSet1[,“Date”]查看“forecast”包,以及其中的
forecast()
函数。谢谢!我做了,并试图解决它,但我可能没有抓住要点,因为它对如何包含大量变量没有意义。请看一下“forecast”包,以及其中的
forecast()
函数。谢谢!我确实这样做了,并试图解决这个问题,但我可能没有抓住要点,因为在如何包含大量变量方面,这对我来说没有意义。
dataset <- testData


##FORECAST

forecastingFuntion <- function(dataset, lenghtOfForecast)

  {
dataset[,"Date"] <- mdy(dataset[,"Date"])
myts <- ts(dataset[,"DataSet$Output"], start = c(2013,1), frequency = 365)

hwModel <- HoltWinters(myts, seasonal = "mult")

future <- data.frame(predict(hwModel, n.ahead = lenghtOfForecast, level =       0.9))
fittedValues <- data.frame(as.numeric(hwModel$fitted[,"xhat"]))
names(fittedValues) <- "fit"

futureDates <- c()
predicitedValues <- rbind(fittedValues, future)

for(i in 1: lenghtOfForecast)
  {
  futureDateSingle <- data.frame(dataset[nrow(dataset),"Date"] + days(i))
  futureDates <- rbind(futureDates, futureDateSingle)  
  }  

names(futureDates) <- "Date"
dates <- data.frame(dataset[366:(nrow(dataset)),"Date"])
names(dates) <- "Date"
dates <- rbind(dates, futureDates)
predictedData <- data.frame(predicitedValues, dates)
names(predictedData) <- c("predictedValues","Date")
finalData2 <- mergeData <- merge(predictedData, dataset, all.x = T, all.y = F, by = "Date")
finalData2
}



finalData2 <- forecastingFuntion(testData, 612)

rm(list=setdiff(ls(), c("finalData2")))

write.csv(finalData2, file="B2BForecastVisits.csv")