Dobór parametrów modelu ARIMA
# Wczytanie danych z pliku Excel
data <- dane3
# Zakładam, że dane mają kolumny: 'DATE' (data) i 'Wynagrodzenia'
data$DATE <- as.Date(data$DATE) # Konwersja kolumny DATE do formatu daty
data_ts <- ts(data$Wynagrodzenia, start = c(year(min(data$DATE)), quarter(min(data$DATE))), frequency = 4)
# Wyświetlenie szeregu czasowego
plot(data_ts, main = "Szereg czasowy: Wynagrodzenia", ylab = "Wynagrodzenia", xlab = "Czas")

# Dopasowanie modelu ARIMA
arima_model <- auto.arima(data_ts, seasonal = TRUE, stepwise = TRUE, approximation = FALSE, max.p=12, max.q = 12, stationary = FALSE)
## Warning in auto.arima(data_ts, seasonal = TRUE, stepwise = TRUE, approximation
## = FALSE, : Having 3 or more differencing operations is not recommended. Please
## consider reducing the total number of differences.
# Wyświetlenie podsumowania modelu
summary(arima_model)
## Series: data_ts
## ARIMA(0,2,2)(0,1,1)[4]
##
## Coefficients:
## ma1 ma2 sma1
## -1.0907 0.2063 -0.3100
## s.e. 0.1185 0.1216 0.1559
##
## sigma^2 = 3080: log likelihood = -498.26
## AIC=1004.53 AICc=1004.99 BIC=1014.57
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 8.084425 52.85651 33.40827 0.1957765 0.8339779 0.1400007
## ACF1
## Training set -0.01680594
Prognoza na 12 kwartałów wprzód
# Prognoza na 12 okresów (3 lata kwartalne)
forecast_steps <- 12
forecast_result <- forecast(arima_model, h = forecast_steps,level = c(80,95))
# Wyświetlenie prognozy
print(forecast_result)
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 2024 Q2 8048.446 7977.329 8119.564 7939.681 8157.212
## 2024 Q3 8328.184 8232.061 8424.308 8181.176 8475.192
## 2024 Q4 8717.365 8596.732 8837.999 8532.873 8901.858
## 2025 Q1 9307.384 9162.020 9452.749 9085.069 9529.700
## 2025 Q2 9268.583 9067.874 9469.292 8961.625 9575.541
## 2025 Q3 9593.834 9347.876 9839.791 9217.674 9969.993
## 2025 Q4 10028.528 9737.241 10319.816 9583.042 10474.014
## 2026 Q1 10664.061 10326.821 11001.300 10148.297 11179.824
## 2026 Q2 10670.772 10260.924 11080.621 10043.963 11297.581
## 2026 Q3 11041.537 10565.399 11517.675 10313.346 11769.728
## 2026 Q4 11521.745 10978.326 12065.164 10690.658 12352.832
## 2027 Q1 12202.791 11590.802 12814.779 11266.835 13138.746
Wykres prognozy
# Wykres prognozy
autoplot(forecast_result) +
ggtitle("Prognoza Wynagrodzeń na 2024Q2-2027Q1 lata") +
xlab("Czas") +
ylab("Przeciętne wynagrodzenia") +
theme_minimal()

#+geom_line(aes(x=data$DATE, y=data$Wynagrodzenia))
# Zapisywanie wyników prognozy do pliku .xlsx
#writexl::write_xlsx(as.data.frame(forecast_result), "forecast_results1.xlsx")