我可以阻止 sarima.for 密谋吗?
Can I prevent sarima.for from plotting?
我想使用 astsa 库中的函数 sarima.for 预测时间序列。然而,我想阻止阴谋,只保留数据。
require("astsa")
set.seed(1)
x<-ts(rnorm(31),start=1980,end=2010)
sarima.for(x, n.ahead = 10, p=0, d=1, q=0)
我在这里找不到选项。有没有?或者有没有办法为函数定义一个合适的包装器?
您可以将输出发送到一个临时文件,然后删除该文件:
sarima.noplot = function(x, ...) {
png(tf<-tempfile())
out <- sarima.for(x, ...)
dev.off()
file.remove(tf)
return(out)
}
sarima.noplot(x, n.ahead = 10, p=0, d=1, q=0)
# $pred
# Time Series:
# Start = 2011
# End = 2020
# Frequency = 1
# [1] 1.424851 1.491022 1.557193 1.623364 1.689535 1.755706 1.821877
# [8] 1.888048 1.954220 2.020391
您还可以使用 stats 包中的 arima
和 predict
函数来获得相同的结果而无需绘图。
您可以从帮助文件中了解到 sarima.for - is a wrapper for R's predict.Arima.
> n <- length(x)
> fit <- stats::arima(x, order = c(p=0, d=1, q=0), xreg=1:n)
> stats::predict(fit, n.ahead=10, newxreg = (n + 1):(n + 10))
$`pred`
Time Series:
Start = 2011
End = 2020
Frequency = 1
[1] 1.424851 1.491022 1.557193 1.623364 1.689535 1.755706 1.821877 1.888048 1.954220 2.020391
$se
Time Series:
Start = 2011
End = 2020
Frequency = 1
[1] 1.306001 1.846964 2.262060 2.612002 2.920307 3.199036 3.455353 3.693928 3.918002 4.129937
我想使用 astsa 库中的函数 sarima.for 预测时间序列。然而,我想阻止阴谋,只保留数据。
require("astsa")
set.seed(1)
x<-ts(rnorm(31),start=1980,end=2010)
sarima.for(x, n.ahead = 10, p=0, d=1, q=0)
我在这里找不到选项。有没有?或者有没有办法为函数定义一个合适的包装器?
您可以将输出发送到一个临时文件,然后删除该文件:
sarima.noplot = function(x, ...) {
png(tf<-tempfile())
out <- sarima.for(x, ...)
dev.off()
file.remove(tf)
return(out)
}
sarima.noplot(x, n.ahead = 10, p=0, d=1, q=0)
# $pred
# Time Series:
# Start = 2011
# End = 2020
# Frequency = 1
# [1] 1.424851 1.491022 1.557193 1.623364 1.689535 1.755706 1.821877
# [8] 1.888048 1.954220 2.020391
您还可以使用 stats 包中的 arima
和 predict
函数来获得相同的结果而无需绘图。
您可以从帮助文件中了解到 sarima.for - is a wrapper for R's predict.Arima.
> n <- length(x)
> fit <- stats::arima(x, order = c(p=0, d=1, q=0), xreg=1:n)
> stats::predict(fit, n.ahead=10, newxreg = (n + 1):(n + 10))
$`pred`
Time Series:
Start = 2011
End = 2020
Frequency = 1
[1] 1.424851 1.491022 1.557193 1.623364 1.689535 1.755706 1.821877 1.888048 1.954220 2.020391
$se
Time Series:
Start = 2011
End = 2020
Frequency = 1
[1] 1.306001 1.846964 2.262060 2.612002 2.920307 3.199036 3.455353 3.693928 3.918002 4.129937