Explicarea previziunilor în serie de timp cu analiza de sensibilitate (ahead::dynrmf și regresori externi)

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

După postarea despre valorile exacte Shapley pentru explicabilitatea seriilor temporale, această postare ilustrează un exemplu de utilizare a analizei de sensibilitate pentru a explica previziunile seriilor temporale, pe baza ahead::dynrmf model şi regresori externi. Ce este analiza de sensibilitate in acest context? Este vorba despre evaluarea impactului modificărilor regresorilor externi asupra prognozei serii de timp.

Postarea folosește ahead::dynrmf_sensi funcția pentru a calcula sensibilitățile și ahead::plot_dynrmf_sensitivity funcția de reprezentare grafică a rezultatelor.

Mai întâi, instalați pachetul:

devtools::install_github("Techtonique/ahead")

Apoi, rulați următorul cod:

# devtools::install_github("Techtonique/ahead")
# install.packages(c("fpp2", "e1071", "patchwork"))

library(ahead)
library(fpp2)
library(patchwork)
library(e1071)

#' # Example 1: US Consumption vs Income
sensitivity_results_auto <- ahead::dynrmf_sensi(
y = fpp2::uschange(, "Consumption"),
xreg = fpp2::uschange(, "Income"),
h = 10
)

plot1 <- ahead::plot_dynrmf_sensitivity(sensitivity_results_auto, 
                           title = "Sensitivity of Consumption to Income (Ridge)",
                           y_label = "Effect (ΔConsumption / ΔIncome)")

#' # Example 1: US Consumption vs Income
sensitivity_results_auto_svm <- ahead::dynrmf_sensi(
  y = fpp2::uschange(, "Consumption"),
  xreg = fpp2::uschange(, "Income"),
  h = 10, 
  fit_func = e1071::svm # additional parameter passed to ahead::dynrmf
)

plot2 <- ahead::plot_dynrmf_sensitivity(sensitivity_results_auto_svm, 
                                        title = "Sensitivity of Consumption to Income (SVM)",
                                        y_label = "Effect (ΔConsumption / ΔIncome)")

 
# Example 2: TV Advertising vs Insurance Quotes
sensitivity_results_tv <- ahead::dynrmf_sensi(
 y = fpp2::insurance(, "Quotes"),
   xreg = fpp2::insurance(, "TV.advert"),
   h = 8
 )

plot3 <- ahead::plot_dynrmf_sensitivity(sensitivity_results_tv,
                           title = "Sensitivity of Insurance Quotes to TV Advertising (Ridge)",
                           y_label = "Effect (ΔQuotes / ΔTV.advert)")

sensitivity_results_tv_svm <- ahead::dynrmf_sensi(
  y = fpp2::insurance(, "Quotes"),
  xreg = fpp2::insurance(, "TV.advert"),
  h = 8, 
  fit_func = e1071::svm # additional parameter passed to ahead::dynrmf
)

plot4 <- ahead::plot_dynrmf_sensitivity(sensitivity_results_tv_svm,
                                        title = "Sensitivity of Insurance Quotes to TV Advertising (SVM)",
                                        y_label = "Effect (ΔQuotes / ΔTV.advert)")

(plot1+plot2)

(plot3+plot4)

imagine-titlu-aici
imagine-titlu-aiciimagine-titlu-aici

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.