# Streaming PCA Variance Estimation

MATLAB implementation for comparing subsampling vs. bootstrap variance estimators in streaming PCA. Evaluated on synthetic data, MNIST, and HAR datasets.

## Requirements
- MATLAB R2020a or later
- Statistics and Machine Learning Toolbox
- Image Processing Toolbox (for MNIST visualization)
- MNIST Handwritten Digits Dataset
- UCI Human Activity Recognition (HAR) Dataset

## Instructions
 1) Run main.m for synthetic data experiments
 2) Run main_mnist.m for MNIST data experiments
 3) Run main_har.m for HAR data experiments

 ## Key Functions
 get_oja_vec.m :	Oja's algorithm for streaming PCA
 get_var_estimates_subsampling.m : Subsampling variance estimator
 get_var_estimates_bootstrap.m : Bootstrap variance estimator
 generate_data.m : Synthetic data generation
 generate_plots*.m : Visualization utilities