(Acest articol a fost publicat pentru prima dată pe DateAgeeekși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)
Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.
Fitch proiectează o scădere de aproximativ 30% în aur în 2026. Elevarea războiului comercial și conflictul Israel-Iran poate susține această idee. Vom proiecta modul în care prețurile ar putea merge până la sfârșitul anului.
Vom folosi ModelTime.Resample Pachet pentru modelarea prognozei.
library(tidymodels) library(modeltime) library(modeltime.resample) library(tidyverse) library(tidyquant) library(timetk) #Gold Futures df_gold <- tq_get("GC=F") %>% select(date, close) %>% drop_na() #Make a Cross-Validation Training Plan resamples_tscv <- time_series_cv( data = df_gold, assess = "6 months", initial = "5 years", skip = "1 years", slice_limit = 4 ) #Begin with a Cross Validation Strategy resamples_tscv %>% tk_time_series_cv_plan() %>% plot_time_series_cv_plan(date, close, .facet_ncol = 2, .interactive = FALSE) #Model 1: auto_arima model_arima <- arima_reg() %>% set_engine(engine = "auto_arima") %>% fit(close ~ date, data = df_gold) #Model 2: prophet model_prophet <- prophet_reg() %>% set_engine(engine = "prophet") %>% fit(close ~ date, data = df_gold) #Model 3: glmnet model_glmnet <- linear_reg(penalty = 0.2) %>% set_engine("glmnet") rec_glmnet <- recipe(close ~ ., data = df_gold) %>% step_mutate(date_num = as.numeric(date)) %>% step_date(date, features = "month") %>% step_rm(date) %>% step_dummy(all_nominal_predictors(), one_hot = TRUE) %>% step_normalize(all_numeric_predictors()) glmnet_fit <- workflow() %>% add_recipe(rec_glmnet) %>% add_model(model_glmnet) %>% fit(df_gold) #Modeltime Table gold_models <- modeltime_table( model_arima, model_prophet, glmnet_fit ) #Generate Resample Predictions resamples_fitted <- gold_models %>% modeltime_fit_resamples( resamples = resamples_tscv, control = control_resamples(verbose = FALSE) ) #Accuracy Table resamples_fitted %>% modeltime_resample_accuracy(summary_fns = mean) %>% table_modeltime_accuracy(.interactive = FALSE) #Calibration for the Prophet Model calibration_prophet <- model_prophet %>% modeltime_calibrate(new_data = df_gold) #Accuracy of the finalized model calibration_prophet %>% modeltime_accuracy(metric_set = metric_set(rmse, rsq, mape)) #Forecast Forward calibration_prophet %>% modeltime_forecast(h = "6 months", actual_data = df_gold %>% filter(date>= as.Date("2025-01-01"))) %>% plot_modeltime_forecast(.interactive = FALSE, .legend_show = FALSE, .line_size = 1.5, .color_lab = "", .title = "Gold Futures") + labs(subtitle = "Predictive Intervals
ML Model") + scale_x_date(expand = expansion(mult = c(.1, .1)), labels = scales::label_date(format = "%b'%y")) + scale_y_continuous(labels = scales::label_currency()) + theme_minimal(base_family = "Roboto Slab", base_size = 20) + theme(legend.position = "none", plot.background = element_rect(fill = "azure", color = "azure"), plot.title = element_text(face = "bold"), axis.text = element_text(face = "bold"), plot.subtitle = ggtext::element_markdown(face = "bold"))

Potrivit modelului Profetului, prețul aurului pare a fi dificil să ajungă din nou la vârf până la sfârșitul anului.