# Description of demo_unsupervised_PCA_FactorAnalysis.m

Demonstrates usage of PCA on synthetic data and shows Factor Analysis and PCA on a real dataset

## Contents

- Principle Component Analysis on Synthetic Data
- Generate synthetic data
- Plot Principal Components
- Plot Projected Data
- PCA & Factor Analysis on 9-D quality of life ratings for U.S. Cities

## Principle Component Analysis on Synthetic Data

    clear all
    close all
    f=1;

## Generate synthetic data

    x1 = randn(500,1);
    x1 = x1-mean(x1);
    x2 = randn*x1 + randn(500,1);
    x2 = x2-mean(x2);

    figure(f);clf;hold on;f=f+1;
    plot(x1,x2,'.');
    title('Mean-Adjusted Data');
    xl = xlim;
    yl = ylim;
    xl(1) = min(xl(1),yl(1));
    xl(2) = max(xl(2),yl(2));
    xlim(xl);
    ylim(yl);

    X = [x1 x2];
    [n,p] = size(X);

    C = (1/n)*X'*X;
    [U,S,V] = svd(C);

## Plot Principal Components

    m1 = V(2,1)/V(1,1);
    m2 = V(2,2)/V(1,2);
    h1 = plot([xl(1) xl(2)],[xl(1)*m1 xl(2)*m1],'r');
    h2 = plot([xl(1) xl(2)],[xl(1)*m2 xl(2)*m2],'g');
    legend([h1 h2],'PC1','PC2');

## Plot Projected Data

    Xp = X*V;
    figure(f);clf;hold on; f=f+1;
    plot(Xp(:,1),Xp(:,2),'.');
    title('Rotated Data');
    h3 = hline(0,'r');
    h4 = vline(0,'g');
    legend([h3 h4],'PC1','PC2');

## PCA & Factor Analysis on 9-D quality of life ratings for U.S. Cities

     load cities.mat
     X = ratings;

    % Reduce to 2-dimensions with PCA
    options = struct('maxComponents',2);
    model = ml_unsupervised_dimRedPCA(X,options);
    Xreduced = model.reduceFunc(model,X);
    figure(f);f=f+1;
    plot(Xreduced(:,1),Xreduced(:,2),'.');
    title('PCA Projection onto 2-dimensions of cities data');
    gname(names)

    % Reduce to 2-dimensions with FA
    options = struct('nComponents',2);
    model = ml_unsupervised_dimRedFA(X,options);
    Xreduced = model.reduceFunc(model,X);
    figure(f);f=f+1;
    plot(Xreduced(:,1),Xreduced(:,2),'.');
    title('FA Projection onto 2-dimensions of cities data');
    gname(names)

    Number of Components selected: 2
    Variance explained by basis: 0.51