---
title: "missPLS"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{missPLS}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(collapse = TRUE, comment = "#>")
```
`missPLS` provides methods-first tooling for the PLS workflows described in the
article and thesis on incomplete-data NIPALS-PLS regression.
## Simulate a dataset
```{r}
library(missPLS)
sim <- simulate_pls_data(n = 30, p = 12, true_ncomp = 2, seed = 1)
str(sim, max.level = 1)
```
## Add missingness and select components
```{r}
miss <- add_missingness(sim$x, sim$y, mechanism = "MCAR", missing_prop = 10, seed = 2)
select_ncomp(
x = miss$x_incomplete,
y = sim$y,
method = "nipals_standard",
criterion = "Q2-LOO",
max_ncomp = 4,
seed = 3
)
```
## Impute and re-fit
```{r}
imp <- impute_pls_data(miss$x_incomplete, method = "knn", seed = 4)
select_ncomp(
x = imp,
y = sim$y,
method = "complete",
criterion = "Q2-10fold",
max_ncomp = 4,
seed = 5,
folds = 5
)
```
## Real-data diagnostics
```{r}
diag_bromhexine <- diagnose_real_data("bromhexine")
head(diag_bromhexine$predictor_correlations)
head(diag_bromhexine$response_correlations)
```
## Study runners
The study runners are intended to orchestrate smoke runs in-package and heavier
reproduction runs under `tools/`.
```{r}
results <- run_simulation_study(
dimensions = list(c(25, 10)),
true_ncomp = 2,
missing_props = 10,
mechanisms = "MCAR",
reps = 2,
seed = 1,
max_ncomp = 4,
criteria = c("Q2-LOO", "AIC"),
incomplete_methods = "nipals_standard",
imputation_methods = "knn",
folds = 5
)
summarize_simulation_study(results)
```