====== Generating a random data set with certain correlations ====== n.d <- 60 r12 <- .82 mu <- c(4, 2) n.var <- length(mu) stddev <- c(1, 1) corMat <- matrix(c(1, r12, r12, 1), ncol = n.var) corMat covMat <- stddev %*% t(stddev) * corMat covMat set.seed(10) library(MASS) d1 <- mvrnorm(n = n.d, mu = mu, Sigma = covMat, empirical = TRUE) d1 <- data.frame(d1) colnames(d1) <- c("x", "y") colMeans(d1) cor(d1) pairs(d1) d1 plot(d1, main="covariance and correlation between x and y", xlab="mean=4", ylab="mean=2") abline(v=mean(d1$x), h=mean(d1$y), lm(d1$y ~ d1$x), col=c("red", "blue", "blue"), lty=2, lwd=1) \begin{eqnarray*} \text{corr}(x,y) & = & \dfrac{\text{cov}(x, y)}{\sigma_{x} \sigma_{y}} \\ \text{cov}(x, y)} & = & \text{corr}(x,y) * \sigma_{x} \sigma_{y} \\ \end{eqnarray*} {{:r:pasted:20200505-154546.png}} n.d <- 6 r12 <- .2 r13 <- .6 r23 <- .8 mu <- c(4, 10, 2) n.var <- length(mu) stddev <- c(1, 1, 1) corMat <- matrix(c(1, r12, r13, r12, 1, r23, r13, r23, 1), ncol = n.var) corMat covMat <- stddev %*% t(stddev) * corMat covMat set.seed(1) library(MASS) d1 <- mvrnorm(n = n.d, mu = mu, Sigma = covMat, empirical = TRUE) d1 <- data.frame(d1) colnames(d1) <- c("x", "y", "z") colMeans(d1) cor(d1) pairs(d1) d1 plot(d1) abline(v=mean(d1$x), h=mean(d1$y), col="red", lty=2, lwd=1) ====== Explaining r square value ====== {{:r:pasted:20200505-160059.png}} n.d <- 7 r12 <- 0.94 mu <- c(25, 25) n.var <- length(mu) stddev <- c(2, 2) corMat <- matrix(c(1, r12, r12, 1), ncol = n.var) corMat covMat <- stddev %*% t(stddev) * corMat covMat set.seed(1024) library(MASS) d1 <- mvrnorm(n = n.d, mu = mu, Sigma = covMat, empirical = TRUE) d1 <- data.frame(d1) colnames(d1) <- c("x", "y") colMeans(d1) cor(d1) pairs(d1) d1 plot(d1, main="covariance and correlation between x and y", xlab="mean=4", ylab="mean=2", cex.main=1.5, cex.lab=1.5, cex.axis=1.3) abline(v=mean(d1$x), h=mean(d1$y), lm(d1$y ~ d1$x), col=c("red", "blue", "blue"), lty=2, lwd=1)