Я новичок в R, и сейчас я работаю над небольшим проектом для исследований.
У меня есть ежедневный набор данных о качестве воздуха (№2, О3, ...), и яя пытаюсь спрогнозировать значения.
я делаю, я читаю значения за 2014, 2015 и 2016 годы, а затем пытаюсь предсказать значения на 2017 год (у меня они есть, чтобы я мог сравнить иоцените производительность модели).
К сожалению, я не получаю результаты прогноза.
Вопрос в следующем: ошибка в моем коде или отсутствие параметров?
Некоторое время я думал, что ежедневные значения убивают это, но у меня не было доказательств, поэтому я просто продолжил.код работал для прогноза пассажиров (месячные значения), но не для качества воздуха (дневные значения).
Спасибо за помощь!
Вы можете загрузить мои наборы данных
#Read data files
Data14 <- read.csv2(file = "indices_QA_commune_IDF_2014.csv", header = TRUE, sep = ",", dec = ",")
Data15 <- read.csv2(file = "indices_QA_commune_IDF_2015.csv", header = TRUE, sep = ",", dec = ",")
Data16 <- read.csv2(file = "indices_QA_commune_IDF_2016.csv", header = TRUE, sep = ",", dec = ",")
#Merge all data into one frame
completeData <- rbind(Data14, Data15, Data16)
#Filter data, we choose "75" for Paris
DataParis <- subset(completeData, ninsee == 75)
#isolate no2 values and store them in a vector
DataParisNo2 <- DataParis[['no2']]
#create a time series from the vector
tsno2 <- ts(DataParisNo2, start=c(2014, 1), end=c(2016, 12), frequency=365)
#verify if we have a time series (sucess)
class(tsno2)
#let's plot our series
plot(tsno2)
#we plot the mean value
abline(reg=lm(tsno2~time(tsno2)))
#Now we use log to make the variance equal in every point
#and we use diff to have a constant mean value
#our time series is now stationary and we can proceed
plot(diff(log(tsno2)))
#we apply ARIMA model
arima <- auto.arima(tsno2)
arima
ggtsdiag(arima)
#we generate forecast
forecast <- forecast(arima, level = c(95), h = 240)
autoplot(forecast)
результаты для прогноза качества воздуха (текущий код)
результаты для прогноза пассажиров (тот же метод, почти тот же код)