Вы получаете сообщение об ошибке, поскольку вы передаете фрейм данных в функцию arima()
, когда она ожидает одномерный временной ряд. Вы можете устранить ошибку, правильно указав свой временной ряд следующим образом:
data.ts <- as.ts(myData$Sales)
Затем вы можете вызвать функцию arima()
.
fit <- arima(log(data.ts), c(0, 1, 0), seasonal = list(order = c(0, 1, 0), period = 1))
Однако я не уверен, что это именно тот результат, который вы хотите. В ваших данных есть несколько значений для 2016 года, и на основе имен столбцов в вашем наборе данных у вас есть ежемесячные данные. Если это так, я подозреваю, что установка period = 1
приведет к нежелательным результатам, потому что вы указываете период 1, когда у вас есть ежемесячные данные, тогда как период 1 часто представляет годовые данные. Вы можете просмотреть ?ts
для получения дополнительной информации, но если у вас есть месячные данные, вы бы хотели определить свой временной ряд следующим образом:
data.ts <- ts(myData$Sales, frequency = 12, start = c(2016,1))
Это означает, что у вас есть ежемесячные данные (frequency = 12
), начиная с первого месяца 2016 года (start = c(2016,1)
). В качестве другого примера, если бы у вас были месячные данные, начинающиеся в апреле 2016 года, вы бы установили frequency = 12
и start = c(2016,4)
.