- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to create a covariance matrix in R?
To create a covariance matrix, we first need to find the correlation matrix and a vector of standard deviations is also required. The correlation matrix can be found by using cor function with matrix object. For example, if we have matrix M then the correlation matrix can be found as cor(M). Now we can use this matrix to find the covariance matrix but we should make sure that we have the vector of standard deviations.
Example1
> M1<-matrix(rnorm(25,5,1),ncol=5) > M1
Output
[,1] [,2] [,3] [,4] [,5] [1,] 5.446881 3.918951 4.306415 4.446757 5.438095 [2,] 5.174487 4.401736 4.755313 5.341615 5.470727 [3,] 4.042656 6.303782 4.939945 4.847339 4.698141 [4,] 3.931823 6.870019 5.196559 6.692013 3.689279 [5,] 4.800770 4.841470 4.356387 3.508081 3.913045
Example
> cor(M1)
Output
[,1] [,2] [,3] [,4] [,5] [1,] 1.0000000 -0.9908635 -0.8197813 -0.5066590 0.7190219 [2,] -0.9908635 1.0000000 0.8695808 0.6121477 -0.7017947 [3,] -0.8197813 0.8695808 1.0000000 0.8684189 -0.3766508 [4,] -0.5066590 0.6121477 0.8684189 1.0000000 -0.1766397 [5,] 0.7190219 -0.7017947 -0.3766508 -0.1766397 1.0000000
Example
> SD_M1<-rnorm(5) > M1_Covariance<-(SD_M1%*%t(SD_M1))*cor(M1) > M1_Covariance
Output
[,1] [,2] [,3] [,4] [,5] [1,] 0.4916487 0.5972772 0.3299963 0.4854532 0.4018740 [2,] 0.5972772 0.7390424 0.4291690 0.7191096 0.4809114 [3,] 0.3299963 0.4291690 0.3295850 0.6812666 0.1723625 [4,] 0.4854532 0.7191096 0.6812666 1.8672751 0.1924034 [5,] 0.4018740 0.4809114 0.1723625 0.1924034 0.6353903
Example2
> M2<-matrix(rnorm(36,5,3),ncol=6) > M2
Output
[,1] [,2] [,3] [,4] [,5] [,6] [1,] 3.97345156 2.215491 3.112134 4.6181951 3.6277630 12.322117 [2,] 8.87011312 4.857979 9.067974 6.7924669 5.4123406 3.062662 [3,] 8.70716339 4.905574 5.092897 7.1700455 8.1998048 2.790839 [4,] 2.79704783 8.857838 3.804275 8.0486804 1.8110960 3.789724 [5,] 4.37050111 4.220881 7.835320 -0.9182616 0.5487265 5.676240 [6,] 0.01411185 4.138786 1.736414 6.8982956 4.4729650 6.719265
Example
> cor(M2)
Output
[,1] [,2] [,3] [,4] [,5] [,6] [1,] 1.00000000 -0.05099798 0.72101949 0.0606742 0.5573581 -0.4634089 [2,] -0.05099798 1.00000000 0.02406821 0.4332765 -0.1929059 -0.6648619 [3,] 0.72101949 0.02406821 1.00000000 -0.3981214 -0.0489995 -0.4858796 [4,] 0.06067420 0.43327648 -0.39812145 1.0000000 0.5885335 -0.2935423 [5,] 0.55735812 -0.19290585 -0.04899950 0.5885335 1.0000000 -0.2820521 [6,] -0.46340892 -0.66486188 -0.48587961 -0.2935423 -0.2820521 1.0000000
Example
> SD_M2<-rnorm(6) > M2_Covariance<-round((SD_M2%*%t(SD_M2))*cor(M2),2) > M2_Covariance
Output
[,1] [,2] [,3] [,4] [,5] [,6] [1,] 0.02 0.00 0.01 0.00 -0.17 -0.10 [2,] 0.00 0.00 0.00 0.00 0.00 -0.01 [3,] 0.01 0.00 0.00 0.00 0.01 -0.04 [4,] 0.00 0.00 0.00 0.01 -0.09 -0.03 [5,] -0.17 0.00 0.01 -0.09 4.10 0.80 [6,] -0.10 -0.01 -0.04 -0.03 0.80 1.95
Example3
> M3<-matrix(runif(36,2,5),ncol=6) > M3
Output
[,1] [,2] [,3] [,4] [,5] [,6] [1,] 3.532356 3.325595 2.533484 3.858067 4.209765 4.520970 [2,] 2.836041 4.624075 2.739955 4.294261 2.815741 3.037129 [3,] 2.171741 2.277840 3.939984 3.464941 4.209270 3.565684 [4,] 3.363305 2.623304 2.398647 2.180268 3.740313 3.967784 [5,] 4.637331 2.672298 4.518063 4.851971 2.905769 2.946685 [6,] 3.855836 4.070287 3.698472 4.741746 3.726380 2.603361
Example
> cor(M3)
Output
[,1] [,2] [,3] [,4] [,5] [,6] [1,] 1.00000000 0.02856209 0.3130817 0.4599297 -0.3979636 -0.2620906 [2,] 0.02856209 1.00000000 -0.3159665 0.4775255 -0.4282192 -0.4020013 [3,] 0.31308166 -0.31596655 1.0000000 0.5990245 -0.2107199 -0.6214000 [4,] 0.45992975 0.47752549 0.5990245 1.0000000 -0.4594787 -0.6584400 [5,] -0.39796357 -0.42821922 -0.2107199 -0.4594787 1.0000000 0.6207340 [6,] -0.26209064 -0.40200135 -0.6214000 -0.6584400 0.6207340 1.0000000
Example
> SD_M3<-runif(6,2,3) > M3_Covariance<-round((SD_M3%*%t(SD_M3))*cor(M3),4) > M3_Covariance
Output
[,1] [,2] [,3] [,4] [,5] [,6] [1,] 8.2937 0.1818 2.7005 3.6199 -3.2048 -1.9410 [2,] 0.1818 4.8857 -2.0918 2.8846 -2.6467 -2.2850 [3,] 2.7005 -2.0918 8.9705 4.9032 -1.7648 -4.7860 [4,] 3.6199 2.8846 4.9032 7.4690 -3.5114 -4.6274 [5,] -3.2048 -2.6467 -1.7648 -3.5114 7.8193 4.4635 [6,] -1.9410 -2.2850 -4.7860 -4.6274 4.4635 6.6127
Example4
> M4<-matrix(rpois(64,10),ncol=8) > M4
Output
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 2 12 6 6 20 6 5 13 [2,] 11 14 11 10 13 8 14 9 [3,] 7 10 10 10 13 6 9 13 [4,] 6 15 12 11 9 7 14 11 [5,] 9 14 18 14 13 7 15 15 [6,] 12 12 6 14 9 11 6 5 [7,] 11 9 12 9 10 8 12 3 [8,] 12 15 9 15 8 10 4 9
Example
> round(cor(M4),2)
Output
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 1.00 0.06 0.15 0.69 -0.75 0.80 0.06 -0.63 [2,] 0.06 1.00 0.20 0.48 -0.20 0.20 0.12 0.37 [3,] 0.15 0.20 1.00 0.27 -0.16 -0.32 0.82 0.33 [4,] 0.69 0.48 0.27 1.00 -0.73 0.68 -0.03 -0.08 [5,] -0.75 -0.20 -0.16 -0.73 1.00 -0.68 -0.10 0.54 [6,] 0.80 0.20 -0.32 0.68 -0.68 1.00 -0.37 -0.67 [7,] 0.06 0.12 0.82 -0.03 -0.10 -0.37 1.00 0.15 [8,] -0.63 0.37 0.33 -0.08 0.54 -0.67 0.15 1.00
Example
> SD_M4<-rpois(8,2) > M4_Covariance<-round((SD_M4%*%t(SD_M4))*cor(M4),2) > M4_Covariance
Output
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 4.00 0.12 1.17 1.39 -1.51 3.20 0.24 -2.52 [2,] 0.12 1.00 0.82 0.48 -0.20 0.39 0.24 0.74 [3,] 1.17 0.82 16.00 1.10 -0.63 -2.54 6.56 2.66 [4,] 1.39 0.48 1.10 1.00 -0.73 1.36 -0.06 -0.15 [5,] -1.51 -0.20 -0.63 -0.73 1.00 -1.35 -0.20 1.09 [6,] 3.20 0.39 -2.54 1.36 -1.35 4.00 -1.50 -2.70 [7,] 0.24 0.24 6.56 -0.06 -0.20 -1.50 4.00 0.58 [8,] -2.52 0.74 2.66 -0.15 1.09 -2.70 0.58 4.00
- Related Articles
- How to create a sparse matrix in R?
- How to create a block diagonal matrix using a matrix in R?
- How to create matrix diagram in R?
- How to replicate a vector to create matrix in R?
- How to create an empty matrix in R?
- How to create correlation matrix plot in R?
- How to create a matrix with random values in R?
- How to create a matrix with equal rows in R?
- How to find the covariance between two vectors in R?
- How to create a heatmap for lower triangular matrix in R?
- How to create a matrix with only one row in R?
- How to create a matrix with vectors as elements in R?
- How to create confusion matrix for a rpart model in R?
- How to create boxplot for matrix columns in R?
- How to create a matrix using vector of string values in R?

Advertisements