## -----------------------------------------------------------------------------
library(spfcICOMP)

## -----------------------------------------------------------------------------
set.seed(123)

sim <- simulate_spfc_continuous(
  n = 100,
  p = 50,
  d = 1,
  s = 5,
  rho_x = 0.5,
  snr = 2
)

X <- sim$X
y <- sim$y

## -----------------------------------------------------------------------------
fit <- spfc_fit(
  X = X,
  y = y,
  d = 1,
  ytype = "continuous",
  cov_method = "mec",
  nslices = 5,
  poly_degree = 2
)

fit
summary(fit)

## -----------------------------------------------------------------------------
coef(fit)

## -----------------------------------------------------------------------------
scores <- fitted(fit)

head(scores)

## -----------------------------------------------------------------------------
predict(
  fit,
  newdata = X[1:5, ]
)

## -----------------------------------------------------------------------------
dsel <- spfc_select_dimension(
  X = X,
  y = y,
  d_grid = 1:3,
  cov_method = "mec",
  ytype = "continuous"
)

dsel$criteria
dsel$selected

## -----------------------------------------------------------------------------
reduced_model <- fit_reduced_model(
  Z = scores,
  y = y,
  ytype = "continuous"
)

vsel <- spfc_select_variables(
  fit = fit,
  method = "adaptive_weighted_l1",
  selection_rule = "c1f",
  reduced_model = reduced_model
)

head(vsel)

## -----------------------------------------------------------------------------
bench <- benchmark_spfc(
  X = X,
  y = y,
  d = 1,
  methods = c(
    "mec",
    "oas",
    "sre",
    "sde",
    "cse"
  ),
  verbose = FALSE
)

bench
summary(bench)

## -----------------------------------------------------------------------------
results <- run_spfc_simulation(
  response_type = "continuous",
  nrep = 5,
  n = 100,
  p = 50,
  d = 1,
  s = 5,
  rho_x = 0.5,
  snr = 2,
  cov_methods = c(
    "mec",
    "oas"
  )
)

summary_results <-
  summarise_spfc_simulation(
    results
  )

summary_results

## -----------------------------------------------------------------------------
plot_rmse_by_covariance(results)

plot_runtime_by_covariance(results)

plot_subspace_distance_by_covariance(results)

