繁体   English   中英

等效于 R 的有马 function 在 Python

[英]Equivalent R's arima function in Python

我使用 statsmodel 的 arima function 尝试使用 Python 进行时间序列预测,它给了我与 r 的 arima ZC1C425268E68385D14AB5074C17ZA 不同的结果。 我使用了相同的超参数。

R的版本:

fit <- arima(data[1:9000,3], order = c(3,0,3), seasonal = list(order = c(0,0,0)))
predd = forecast(fit,h=1000)
pred = cbind(data[9001:10000,3], predd$mean)

Python的版本:

series = df[0:9000].copy()
model = ARIMA(series, order=(3, 0, 3))
model_fitted = model.fit()
predictions = model_fitted.predict(start=len(series), end=len(df)-1)

附件是R 和 Python 的 arima 的绘图结果图

我究竟做错了什么?

除了 statsmodel 之外,我还可以将其他 Python 包/函数 arima 用于单变量时间序列吗?

任何见解或指导将不胜感激。 非常感谢你。

摘要:我不知道您是如何创建显示为“R 版本”的第一张图像,但是当我运行您提供的 R 代码和 plot 结果时,它们看起来与 ZA7F5F35426B9274173Z 结果相同您包含的 R 版本”图表。 我最好的猜测是,当您创建显示 R 结果的图像时,您以某种方式绘制了样本内预测。

详情见下文。

详情

我首先从您提供的链接下载数据集“dataset.txt”, https://gist.github.com/DouddaS/5043a340ff7d7b35b255b4f8f74fc534

现在,如果我运行以下 R 代码:

library(forecast)
y <- read.csv('dataset.txt')
fit <- arima(y[1:9000, 1], order = c(3,0,3), seasonal = list(order = c(0,0,0)))
predd = forecast(fit,h=1000)
pred = cbind(y[9001:10000,1], predd$mean)
autoplot(pred)

这给出了以下 plot:

R 预测

当我运行以下 Python 代码时:

y = pd.read_csv('dataset.txt')
model = sm.tsa.arima.ARIMA(y.iloc[:9000, 0], order=(3, 0, 3))
model_fitted = model.fit()
pred = model_fitted.predict(start=len(series), end=len(y)-1)
predd = pd.concat([y.iloc[9000:, 0], pred], axis=1)
predd.plot()

然后我得到以下 plot:

在此处输入图像描述

这些看起来与我基本相同,而 R 的版本看起来与问题中发布的图像完全不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM