1.问题描述
在时间序列预测上,R语言明显优于Python。
R中forecast包是很强大的时间序列预测包。例如forecast::nnetar,是用神经网络对时间序列进行回归预测的,python里确没有完全相同的函数来实现;R中的forecast::auto.arima感觉比Python的pyramid.auto_arima快得多。
借助rpy2包,Python可以调用R语言强大的时间序列预测API,可以方便的使用Python来进行时间序列预测。
2.安装rpy2
ubuntu安装是常规的安装方法:
sudo pip3 install rpy2
3.调用R函数
R forecast包里有很多函数,例如auto.arima()、ets()、tbats()等算法,都可以用下述的方法调用。
以R中的神经网络回归预测nnetar()为例,用Python调用它的步骤如下(假设时间序列是data,在python中它的类型是list,data=[data1,data2,data3,…])
在R中用nnetar()的预测代码
library(‘forecast’)
#训练模型,注意此处data是R中的ts对象,需要用data=ts(data,frequency=T)转化一下,T为序列的周期。
data=ts(c(data1,data2,data3,...),freqency=T)
model=nnetar(data)
#下面的h是要预测的数据点的个数,假设为8
pred=forecast(model,h=8)
在python里的操作和上述步骤对应: