Advertisement
Guest User

Untitled

a guest
Apr 12th, 2023
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. library('expm')
  2. set.seed(1)
  3. controls <- matrix(nrow=50000,ncol=8)
  4. colnames(controls) <- letters[1:8]
  5. controls[,'a'] <- rnorm(50000,sd=3)
  6. controls[,'b'] <- rnorm(50000,sd=2)
  7. controls[,'c'] <- controls[,'a'] + rnorm(50000,sd=2)
  8. controls[,'d'] <- controls[,'b'] + rnorm(50000)
  9. controls[,'e'] <- rnorm(50000,sd=0.5) - controls[,'a']
  10. controls[,'f'] <- rnorm(50000,sd=0.5) - controls[,'b']
  11. controls[,'g'] <- rnorm(50000)
  12. controls[,'h'] <- rnorm(50000)
  13. controls <- apply(controls,2,scale,center=T,scale=T)
  14.  
  15. cases <- matrix(nrow=20000,ncol=8)
  16. colnames(cases) <- letters[1:8]
  17. cases[,'a'] <- rnorm(20000,sd=3)
  18. cases[,'b'] <- rnorm(20000,sd=2)
  19. cases[,'c'] <- cases[,'a'] + rnorm(20000,sd=2)
  20. cases[,'d'] <- cases[,'b'] + rnorm(20000) + cases[,'a']
  21. cases[,'e'] <- rnorm(20000,sd=0.5) - cases[,'a']
  22. cases[,'f'] <- rnorm(20000,sd=0.5) - cases[,'b'] + cases[,'a']
  23. cases[,'g'] <- rnorm(20000) + cases[,'a']
  24. cases[,'h'] <- cases[,'a'] - rnorm(20000) + cases[,'b']
  25. cases <- apply(cases,2,scale,center=T,scale=T)
  26.  
  27. R <- cov(controls)
  28. S <- cov(cases)
  29. round(R,2)
  30. round(S,2)
  31.  
  32. sqrtinvR <- sqrtm(solve(R))
  33. round(sqrtinvR %*% R %*% sqrtinvR,2) # Identity matrix
  34. round(cov(controls %*% sqrtinvR),2) # Identity matrix, columns no longer correlated
  35. round(sqrtinvR %*% S %*% sqrtinvR,2) # Why is cov(a,b) (eg. cell [1,2]) not close to 0?
  36.  
  37. round(cov(cases %*% sqrtinvR),2) # Done this way, the covariance between a and b (eg. cell [1,2]) is still not close to 0
  38. round(cor(cases %*% sqrtinvR),2) # As a correlation it would be about 0.34
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement