Latent variable methods and applications (2011)

From Statistics for Engineering
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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")