2017-12-17 7 views
0

'데이터'는 벡터 유형이어야하며 'ARIMA'를 'NULL'로 설정하면 오류가 계속 발생합니다. 배열 (X, C (길이 (X), 1L)에ARIMA 예측 오류 계속 '데이터'는 벡터 유형이어야하며 'NULL'입니다.

library(forecast) 

foo <- read.csv("https://nofile.io/g/0qrJl41nhf3bQQFjBmM6JurzGJFQSioCTGEzZhWVl9zA1kXnAJsCsSsxN1ZN7F4D/data.csv/") 

data <- data.frame(year, Car) 
data <- ts(data[,2],start = c(1990,1),frequency = 1) 

plot(data) 
plot(diff(data),ylab='Differenced Car Usage') 
plot(log10(data),ylab='Log (Car Usage)') 
plot(diff(log10(data)),ylab='Differenced Log (Tractor Sales)') 
par(mfrow = c(1,2)) 
acf(ts(diff(log10(data))),main='ACF Tractor Sales') 
pacf(ts(diff(log10(data))),main='PACF Tractor Sales') 

require(forecast) 
ARIMAfit <- auto.arima(log10(data), approximation=FALSE,trace=FALSE) 
summary(ARIMAfit) 

par(mfrow = c(1,1)) 
pred <- predict(ARIMAfit, n.ahead = 3) 

에러 경우 (is.null (이름 (X)))리스트 (이름 (X)! '데이터' 누군가가 문제를 보는 경우 벡터 형식이어야합니다, 'NULL'

나는 단순히 내가 뭘 잘못 이해하고 있지 않다이었다, 나는 어떤 도움을 주셔서 감사합니다. 감사 -MF

+0

어디에서'Car'을 정의 했습니까? 저는 pointi입니다. 'data <- data.frame (year, Car)'라인을 가리킨다. – MKR

+0

코드에서'foo'를 사용하지 않았습니다. – MKR

답변

1
library(forecast) 
foo <- read.table(file="data.csv", header=T, sep=",") 
data <- ts(foo$Car,start = c(1990,1),frequency = 1) 

# Use 'forecast' to get predition from the model estimated by 'auto.arima' 
ARIMAfit1 <- auto.arima(log10(data), approximation=T, trace=FALSE, allowdrift=F) 
summary(ARIMAfit1) 
forecast(ARIMAfit1, h = 3) 

#  Point Forecast Lo 80 Hi 80  Lo 95 Hi 95 
# 2017  1.415713 1.165870 1.665556 1.0336109 1.797815 
# 2018  1.415713 1.128307 1.703119 0.9761635 1.855262 
# 2019  1.415713 1.095115 1.736310 0.9254014 1.906024 


# The same model estimated using 'arima' 
# Here you can use 'predict' 
ARIMAfit2 <- arima(log10(data), order=c(0,1,1)) 
summary(ARIMAfit2) 
predict(ARIMAfit2, n.ahead=3) 

# $pred 
# Time Series: 
# Start = 2017 
# End = 2019 
# Frequency = 1 
# [1] 1.415713 1.415713 1.415713 
# $se 
# Time Series: 
# Start = 2017 
# End = 2019 
# Frequency = 1 
# [1] 0.1911677 0.2199090 0.2453055