使用数据帧时从ARIMA预测特征值时出错
我正在训练一个ARIMA模型使用数据帧时从ARIMA预测特征值时出错,r,R,我正在训练一个ARIMA模型 > data=read.csv("R1.csv") > resp=data$RESP > respNA=resp[1:100] > model=arima(respNA,order = c(0,0,1),include.mean = FALSE) > p=predict(model$model,na.ahead=10) 但对于最后一行,我得到以下错误: Error in ets(object, lambda = lambda, bia
> data=read.csv("R1.csv")
> resp=data$RESP
> respNA=resp[1:100]
> model=arima(respNA,order = c(0,0,1),include.mean = FALSE)
> p=predict(model$model,na.ahead=10)
但对于最后一行,我得到以下错误:
Error in ets(object, lambda = lambda, biasadj = biasadj, allow.multiplicative.trend = allow.multiplicative.trend, :
y should be a univariate time series
上面的代码有什么问题
如果调用print(respNA)时数据正确,则输出如下:
[1] 0.00000000 0.18333333 0.93333333 0.00000000 0.25000000 0.86666667 0.00000000 0.31666667 0.80000000 0.00000000
[11] 0.38333333 0.73333333 0.00000000 0.45000000 0.66666667 0.00000000 0.51666667 0.60000000 0.00000000 0.58333333
[21] 0.53333333 0.00000000 0.65000000 0.46666667 0.00000000 0.71666667 0.40000000 0.00000000 0.78333333 0.33333333
[31] 0.00000000 0.85000000 0.26666667 0.00000000 0.91666667 0.20000000 0.00000000 0.98333333 0.13333333 0.05000000
[41] 1.00000000 0.06666667 0.11666667 1.00000000 0.00000000 0.18333333 0.93333333 0.00000000 0.25000000 0.86666667
[51] 0.00000000 0.31666667 0.80000000 0.00000000 0.38333333 0.73333333 0.00000000 0.45000000 0.66666667 0.00000000
[61] 0.51666667 0.60000000 0.00000000 0.58333333 0.53333333 0.00000000 0.65000000 0.46666667 0.00000000 0.71666667
[71] 0.40000000 0.00000000 0.78333333 0.33333333 0.00000000 0.85000000 0.26666667 0.00000000 0.91666667 0.20000000
[81] 0.00000000 0.98333333 0.13333333 0.05000000 1.00000000 0.06666667 0.11666667 1.00000000 0.00000000 0.18333333
[91] 0.93333333 0.00000000 0.25000000 0.86666667 0.00000000 0.31666667 0.80000000 0.00000000 0.38333333 0.73333333
predict
的正确语法是predict(您的_模型,…)
,即在您的情况下
# Fit ARIMA model
model <- arima(respNA,order = c(0,0,1),include.mean = FALSE);
# Predict next 10 steps
p <- predict(model, n.ahead = 10);
p;
$pred
Time Series:
Start = 101
End = 110
Frequency = 1
[1] 0.2006601 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
[8] 0.0000000 0.0000000 0.0000000
$se
Time Series:
Start = 101
End = 110
Frequency = 1
[1] 0.4155428 0.5847784 0.5847784 0.5847784 0.5847784 0.5847784 0.5847784
[8] 0.5847784 0.5847784 0.5847784
#拟合ARIMA模型
模型请提供您输入的(最少)示例。看起来你的输入数据不正确。我编辑了我的问题。我需要预测10个样本,而不仅仅是一个样本。你能解释一下model和model$model的区别吗?@Alice(1)你是什么意思model
和model$model
之间的区别是什么?对于predict
中的用法,一个是正确的,另一个不是。predict
系列的所有函数都将模型返回对象作为第一个参数,请参见predict.glm
、predict.lm
、predict.arima
等。根据?arima
模型$model
包含“表示拟合中使用的卡尔曼滤波器的列表”<代码>模型
包含更多信息(例如估计参数、数据、残差等)。[续](2)“我需要提前预测10个样本,而不仅仅是一个样本。”此类信息应该在原始帖子中明确。我从你的问题中得到的只是predict
中模型的错误使用。要提前预测10个样本,正确的语法是p
respNA <- c(0.00000000, 0.18333333, 0.93333333, 0.00000000, 0.25000000, 0.86666667, 0.00000000, 0.31666667, 0.80000000, 0.00000000,
0.38333333, 0.73333333, 0.00000000, 0.45000000, 0.66666667, 0.00000000, 0.51666667, 0.60000000, 0.00000000, 0.58333333,
0.53333333, 0.00000000, 0.65000000, 0.46666667, 0.00000000, 0.71666667, 0.40000000, 0.00000000, 0.78333333, 0.33333333,
0.00000000, 0.85000000, 0.26666667, 0.00000000, 0.91666667, 0.20000000, 0.00000000, 0.98333333, 0.13333333, 0.05000000,
1.00000000, 0.06666667, 0.11666667, 1.00000000, 0.00000000, 0.18333333, 0.93333333, 0.00000000, 0.25000000, 0.86666667,
0.00000000, 0.31666667, 0.80000000, 0.00000000, 0.38333333, 0.73333333, 0.00000000, 0.45000000, 0.66666667, 0.00000000,
0.51666667, 0.60000000, 0.00000000, 0.58333333, 0.53333333, 0.00000000, 0.65000000, 0.46666667, 0.00000000, 0.71666667,
0.40000000, 0.00000000, 0.78333333, 0.33333333, 0.00000000, 0.85000000, 0.26666667, 0.00000000, 0.91666667, 0.20000000,
0.00000000, 0.98333333, 0.13333333, 0.05000000, 1.00000000, 0.06666667, 0.11666667, 1.00000000, 0.00000000, 0.18333333,
0.93333333, 0.00000000, 0.25000000, 0.86666667, 0.00000000, 0.31666667, 0.80000000, 0.00000000, 0.38333333, 0.73333333)