Latent variable methods and applications (2011)

From Statistics for Engineering
Jump to navigation Jump to search
Download video: Link (plays in Google Chrome) [1.3 Gb, 137 mins]

Video timing

00:00 to 02:22 Announcements
02:22 to 06:52 Overview of latent variable methods
06:52 to 16:41 Extracting value from data
16:41 to 46:03 Types of data that engineers deal with
46:03 to 58:13 Issues with modern data sets
58:13 to 89:55 What is a latent variable?
89:55 to 119:19 Principal component analysis (PCA): geometrically
119:19 to 137:07 Principal component analysis (PCA): analytically
Download video: Link (plays in Google Chrome) [1.3 Gb, 136 mins]

Video timing

00:00 to 05:30 Examples of using latent variable methods
05:30 to 56:25 Review of geometric and analytic derivation of PCA (poor video quality)
56:25 to 119:00 Food texture case study: scores and loadings
119:00 to 128:00 Interpreting scores and loadings in general
128:00 to 136:52 The squared prediction error (SPE)
Download video: Link (plays in Google Chrome) [1.3 Gb, 134 mins]

Video timing

00:00 to 04:32 Announcements and review of DOE projects
04:32 to 15:38 Emily and Holly's project presentation
15:38 to 24:45 Review of the take-home exam
24:45 to 32:32 Review of the squared prediction error (SPE)
32:32 to 43:44 Column residuals and matrix residuals R2
43:44 to 57:17 Residuals case study: spectral data
57:17 to 69:34 Hotelling's T2
69:34 to 78:31 Preprocessing and how to calculate the PCA model
78:31 to 89:31 How many components should be used?
89:31 to 112:25 Principal components regression (PCR)
112:25 to 123:03 Overview of dealing with image data
123:03 to 130:35 Improved process understanding and process troubleshooting
130:35 to 133:53 Predictive modelling (inferential sensors)
133:53 to 137:38 Process monitoring using latent variable methods

Course notes

Course notes - Chapter 6.

Projector overheads

A high-level overview of latent variable methods

A more complete 1-semester course on latent variable methods was taught at McMaster in 2011.

Audio recordings of 2011 classes

Date Material covered Audio file
30 March 2011 Latent variable methods: an overview of what these methods are, and how they are used Class 31
31 March 2011 Latent variable methods: further applications of latent variable methods Class 32

Thanks to the various students responsible for recording and making these files available


Code for the rotating cube

Created using R with this code, then converted to a video file using http://ffmpeg.org/

temps<- read.csv('http://datasets.connectmv.com/file/room-temperature.csv')
summary(temps)
X <- data.frame(x1=temps$FrontLeft, x2=temps$FrontRight, x3=temps$BackLeft)

# To colour-code sub-groups of outliers
library(lattice)
grouper = c(numeric(length=50)+1, numeric(length=10)+2, numeric(length=144-50-10)+1)
grouper[131] = 3

cube <- function(angle){
    # Function to draw the cube at a certain viewing ``angle``
    xlabels = 0
    ylabels = 0
    zlabels = 0
    lattice.options(panel.error=NULL) 
    print(cloud(
                 X$x3 ~ X$x1 * X$x2,
                 cex = 1, 
                 type="p",
                 groups = grouper,
                 pch=20,
                 col=c("black", "blue", "blue"),   
                 main="",
                 screen = list(z = angle, x = -70, y = 0),        
                 par.settings = list(axis.line = list(col = "transparent")), 
                 scales = list(
                     col = "black", arrows=TRUE,
                     distance=c(0.5,0.5,0.5)
                 ),
                 xlab="x1",
                 ylab="x2",
                 zlab="x3",
                 zoom = 1.0
             )
        )  
}

angles = seq(0, 360, 1)
for(i in angles){
    
    if (i<10) {
        filename <- paste("00", as.character(i), ".jpg", sep="")
    } else if (i<100) {
        filename <- paste("0", as.character(i), ".jpg", sep="")
    } else {
        filename <- paste("", as.character(i), ".jpg", sep="")
    }
        
    jpeg(file=filename, height = 1000, width = 1000, quality=100, res=300)
    cube(i)
    dev.off()
}

system("ffmpeg -r 20 -b 1800 -i %03d.jpg animated-spinning-cube.mp4")