Correlated vectors.
Let’s define a parameter size <- 12
. Later this will be the number of rows of the matrix.
From normal distribution let’s create a random vector x <- rnorm( size )
.
Now let’s create another vector x1
by adding (on average 10 times smaller) noise to x
: x1 <- x + rnorm( size )/10
.
Correlation coefficient of x
and x1
should be close to 1.0: check this with function cor
.
Finally, create similarly vectors x2
and x3
by adding (other) noise to x
.
Matrix from vectors; matrix heatmap.
Let’s merge x1
, x2
and x3
column-wise into a matrix using m <- cbind( x1, x2, x3 )
.
Check class of m
.
Show the first few rows of m
.
Try a simple heatmap visualisation of the matrix: heatmap( m, Colv = NA, Rowv = NA, scale = "none" )
.
Which colors correspond to lowest/highest matrix values?
Do the vectos appear correlated?
Matrix of correlated and uncorrelated vectors.
Repeat the first exercise and create several additional correlated vectors y1
…y4
(but not correlated with x
), of the same length size
.
Now build again m
from columns x1
…x3
,y1
…y4
in some random order.
Show again the heatmap; you should see similarity between some columns.
Matrix of correlations.
Use cc <- cor( m )
to build the matrix of correlation coefficients between columns of m
.
Use round( cc, 3 )
to show this matrix with 3 digits precision.
Can you interpret the values?
Copyright © 2023 Biomedical Data Sciences (BDS) | LUMC