Biblioteki

library(readxl)
library(forecast)
library(ggplot2)
library(lubridate)
library(readxl)
dane3 <- read_excel("C:/Users/HP/Desktop/scenariusze projekt/Scenariusze - dane .xlsx", 
    sheet = "Arkusz1")

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")