提问者:小点点

利用每日观察预测医院床位需求


基本上,我未来3个月的任务是预测医院急诊科的床位需求和其他几个变量。这些数据是这些变量的5年每日观测值。数据完整,无缺失值。

目标是提高当前工具(Excel工作簿)的预测精度。

到目前为止,我在大学里还没有参加过任何时间序列或优化课程——所以,当我意识到我不知道如何处理这个项目,而且我将完全独自工作时,想象一下我的恐惧吧。我被告知部门里没有人有任何经验,也没有人能帮助我。我正在使用RStudio,但我不是很熟练,因为它是自学的。

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

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

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

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

我真的很感激任何人给我的建议和帮助。谢谢你!


共1个答案

匿名用户

在不查看数据的情况下,您是否尝试过开始一些基本的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系列/r_time_series_example。R

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

相关问题