{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# How to use CISS-VAE\n",
"\n",
"## Overview\n",
"\n",
"The **Clustering-Informed Shared-Structure Variational Autoencoder (CISS-VAE)** is a flexible deep learning model for missing data imputation that accommodates all three types of missing data mechanisms: Missing Completely At Random (MCAR), Missing At Random (MAR), and Missing Not At Random (MNAR). While it is particularly well-suited to MNAR, scenarios where missingness patterns carry informative signals, CISS-VAE also functions effectively under MAR assumptions.\n",
"\n",
"\n",
"\n",
"Click Here for More Information
\n",
"
\n",
" \n",
"Additionally, CISS-VAE incorporates an **iterative learning procedure**, with a validation-based convergence criterion recommended to avoid overfitting. This procedure significantly improves imputation accuracy compared to traditional Variational Autoencoder training approaches in the presence of missing values. Overall, CISS-VAE adapts across a range of missing data mechanisms, leveraging clustering only when it offers clear benefits, and delivering robust, accurate imputations under varying conditions of missingness.\n",
"
\n",
"There are two ways to run the CISS-VAE process. If you know what model\n",
"parameters you want to use, you can use the {py:func}`ciss_vae.training.run_cissvae.run_cissvae` function to\n",
"run the model once for the given set of parameters. If you want to tune\n",
"the model instead, you can use {py:func}`ciss_vae.training.autotune.autotune`.\n",
"\n",
"The R package associated with this model can be found at rCISS-VAE.\n",
"\n",
"## Installation\n",
"\n",
"The CISS-VAE package is currently available for python, with an R\n",
"package to be released soon. It can be installed from either\n",
"[github](https://github.com/CISS-VAE/CISS-VAE-python) or PyPI.\n",
"\n",
"``` bash\n",
"# From PyPI \n",
"pip install ciss-vae\n",
"\n",
"```\n",
"\n",
"``` bash\n",
"# From GitHub (latest development version)\n",
"pip install git+https://github.com/CISS-VAE/CISS-VAE-python.git\n",
"```\n",
"\n",
"
For the missingness proportion matrix, (either a `pandas.DataFrame` or `numpy.ndarray`) the rows should correspond to samples, the columns correspond to features, and the values are proportion of missingness of each feature for each sample. For features with multiple timepoints (like biomarker data collected at multiple visits), you may choose to have one column per feature and let the value be the overall proportion of missingness for that feature across all timepoints. See the clustering on missingness proportion tutorial for more details.