使用每日观察预测医院病床需求

时间:2019-06-05 17:58:56

标签: r time-series forecasting

基本上,我接下来的三个月的任务是预测医院急诊部门的床位需求和其他一些变量。数据是这些变量的5年日常观察值。数据是完整的,没有缺失值。

目标是提高当前工具(Excel工作簿)的预测准确性。

到目前为止,我还没有上过大学的任何时间序列或优化课程,因此,当我意识到自己对如何进行这个项目一无所知,而我将完全独自工作时,可以想象一下我的恐怖。有人告诉我该部门没有人有任何经验,也没有人可以帮助我。 我正在使用RStudio,但是由于它是自学成才,所以我不是很熟练。

通过尝试这里提出的问题以及YouTube教程来学习适当的语法和功能,我设法找到了: 1)我的数据是一个时间序列,因此我应该应用预测模型来根据我拥有的历史数据预测未来价值。

2)长时间序列的每日观测值具有每周和每年的季节性,因此我应该将数据定义为一个多季节的时间序列。

我首先尝试将数据定义为ts(),然后将其定义为msts()。这里提到的zoo()答案之一将更适合日常观察,所以我也尝试过。我尝试过的预测模型是snaive,ets,auto.arima和TBATS。

除了一年中的所有365天,我想基于一周中的某天显示值/预测的图,这是我可以绘制的唯一输出。我尝试使用频率= 365和7,开始= c(2014,1)和结束= c(2018,365),但是我没有任何运气。

我非常感谢任何人提供的建议和帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

在不查看数据的情况下,您是否尝试过开始一些基本的ARIMA建模并查看从中得到的结果?根据您的数据,这是一种非常友好的方法,可以开始进行时间序列预测。我是按小时进行预测的,但是可以将频率调整为需要进行预测的任何值。如上所述,您正在寻找更改频率的方法。有时,以较大的时间间隔查看模式会更容易,并且可以以较大的时间间隔聚合数据。

例如,它将每日观测值转换为每月观测值。

library(xts)
dates <- seq(as.Date('2012-01-01'),as.Date('2019-03-31'),by='days')
beds$date.formatted <- dates
beds.xts <- xts(x=beds$neds.count,as.POSIXct(paste(beds$date.formatted)))
end.month <- endpoints(beds.xts,'months')
beds.month <- period.apply(beds.xts,end.month,sum)
beds.monthly.df <- data.frame(date=index(beds.month),coredata(beds.month))
colnames(beds.monthly.df) <- c('Date','Sessions')
beds.monthly <- ts(sessions.monthly.df$Sessions,start=c(2012,1),end=c(2019,3),frequency=12)
plot(beds.monthly)

我不确定是否能回答您的问题,但是正如您提到的那样,您是自学成才的,我可以与您共享一个脚本来帮助您开始使用示例,也许这会有所帮助您?它涉及检查您按时间序列读取数据的整个过程,什么是时间序列数据,如何检查非平稳数据和季节性趋势,对此有用的图,建模,预测,绘制实际图与预测值,准确性以及可能会影响模型的数据问题进行对比。该视频教程系列使用Python编写脚本,但是您可以使用与此教程等效的R脚本,按照ARIMA中的端到端预测过程进行操作:https://code.datasciencedojo.com/rebeccam/tutorials/blob/master/Time%20Series/r_time_series_example.R

https://tutorials.datasciencedojo.com/time-series-python-reading-data/