[1] 50 4 3
[1] 150 5
Professor, Department of Statistics
2026-04-07
$names
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
$class
[1] "data.frame"
$row.names
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
[19] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
[37] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
[55] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
[73] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
[91] 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
[109] 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
[127] 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
[145] 145 146 147 148 149 150
%*%
Let \[B_{3\times 150}=\frac{1}{50}\begin{pmatrix} \mathbf 1_{1\times 50} & -\mathbf 1_{1\times 50} & \mathbf 0_{1\times 50}\\ \mathbf 1_{1\times 50} & \mathbf 0_{1\times 50} & -\mathbf 1_{1\times 50} \\ \mathbf 0_{1\times 50} & \mathbf 1_{1\times 50} & -\mathbf 1_{1\times 50} \\ \end{pmatrix}\] i.e., \[B_{3\times 150}=\begin{pmatrix} \frac{1}{50}& \cdots& \frac{1}{50}& -\frac{1}{50}& \cdots& -\frac{1}{50}& 0 & \cdots & 0\\ \frac{1}{50}& \cdots& \frac{1}{50}& 0 & \cdots & 0 & -\frac{1}{50}& \cdots& -\frac{1}{50}&\\ 0 & \cdots & 0 & \frac{1}{50}& \cdots& \frac{1}{50}& -\frac{1}{50}& \cdots& -\frac{1}{50}& \end{pmatrix}\]
What does \(BY\) give us?
[,1] [,2] [,3] [,4]
setosa 2.007875 1.3779535 0.5511814 0.0787402
setosa 1.929135 1.1811030 0.5511814 0.0787402
setosa 1.850395 1.2598432 0.5118113 0.0787402
setosa 1.811025 1.2204731 0.5905515 0.0787402
setosa 1.968505 1.4173236 0.5511814 0.0787402
setosa 2.125985 1.5354339 0.6692917 0.1574804
setosa 1.811025 1.3385834 0.5511814 0.1181103
setosa 1.968505 1.3385834 0.5905515 0.0787402
setosa 1.732284 1.1417329 0.5511814 0.0787402
setosa 1.929135 1.2204731 0.5905515 0.0393701
setosa 2.125985 1.4566937 0.5905515 0.0787402
setosa 1.889765 1.3385834 0.6299216 0.0787402
setosa 1.889765 1.1811030 0.5511814 0.0393701
setosa 1.692914 1.1811030 0.4330711 0.0393701
setosa 2.283466 1.5748040 0.4724412 0.0787402
setosa 2.244096 1.7322844 0.5905515 0.1574804
setosa 2.125985 1.5354339 0.5118113 0.1574804
setosa 2.007875 1.3779535 0.5511814 0.1181103
setosa 2.244096 1.4960638 0.6692917 0.1181103
setosa 2.007875 1.4960638 0.5905515 0.1181103
setosa 2.125985 1.3385834 0.6692917 0.0787402
setosa 2.007875 1.4566937 0.5905515 0.1574804
setosa 1.811025 1.4173236 0.3937010 0.0787402
setosa 2.007875 1.2992133 0.6692917 0.1968505
setosa 1.889765 1.3385834 0.7480319 0.0787402
setosa 1.968505 1.1811030 0.6299216 0.0787402
setosa 1.968505 1.3385834 0.6299216 0.1574804
setosa 2.047245 1.3779535 0.5905515 0.0787402
setosa 2.047245 1.3385834 0.5511814 0.0787402
setosa 1.850395 1.2598432 0.6299216 0.0787402
setosa 1.889765 1.2204731 0.6299216 0.0787402
setosa 2.125985 1.3385834 0.5905515 0.1574804
setosa 2.047245 1.6141741 0.5905515 0.0393701
setosa 2.165355 1.6535442 0.5511814 0.0787402
setosa 1.929135 1.2204731 0.5905515 0.0787402
setosa 1.968505 1.2598432 0.4724412 0.0787402
setosa 2.165355 1.3779535 0.5118113 0.0787402
setosa 1.929135 1.4173236 0.5511814 0.0393701
setosa 1.732284 1.1811030 0.5118113 0.0787402
setosa 2.007875 1.3385834 0.5905515 0.0787402
setosa 1.968505 1.3779535 0.5118113 0.1181103
setosa 1.771655 0.9055123 0.5118113 0.1181103
setosa 1.732284 1.2598432 0.5118113 0.0787402
setosa 1.968505 1.3779535 0.6299216 0.2362206
setosa 2.007875 1.4960638 0.7480319 0.1574804
setosa 1.889765 1.1811030 0.5511814 0.1181103
setosa 2.007875 1.4960638 0.6299216 0.0787402
setosa 1.811025 1.2598432 0.5511814 0.0787402
setosa 2.086615 1.4566937 0.5905515 0.0787402
setosa 1.968505 1.2992133 0.5511814 0.0787402
versicolor 2.755907 1.2598432 1.8503947 0.5511814
versicolor 2.519686 1.2598432 1.7716545 0.5905515
versicolor 2.716537 1.2204731 1.9291349 0.5905515
versicolor 2.165355 0.9055123 1.5748040 0.5118113
versicolor 2.559057 1.1023628 1.8110246 0.5905515
versicolor 2.244096 1.1023628 1.7716545 0.5118113
versicolor 2.480316 1.2992133 1.8503947 0.6299216
versicolor 1.929135 0.9448824 1.2992133 0.3937010
versicolor 2.598427 1.1417329 1.8110246 0.5118113
versicolor 2.047245 1.0629927 1.5354339 0.5511814
versicolor 1.968505 0.7874020 1.3779535 0.3937010
versicolor 2.322836 1.1811030 1.6535442 0.5905515
versicolor 2.362206 0.8661422 1.5748040 0.3937010
versicolor 2.401576 1.1417329 1.8503947 0.5511814
versicolor 2.204726 1.1417329 1.4173236 0.5118113
versicolor 2.637797 1.2204731 1.7322844 0.5511814
versicolor 2.204726 1.1811030 1.7716545 0.5905515
versicolor 2.283466 1.0629927 1.6141741 0.3937010
versicolor 2.440946 0.8661422 1.7716545 0.5905515
versicolor 2.204726 0.9842525 1.5354339 0.4330711
versicolor 2.322836 1.2598432 1.8897648 0.7086618
versicolor 2.401576 1.1023628 1.5748040 0.5118113
versicolor 2.480316 0.9842525 1.9291349 0.5905515
versicolor 2.401576 1.1023628 1.8503947 0.4724412
versicolor 2.519686 1.1417329 1.6929143 0.5118113
versicolor 2.598427 1.1811030 1.7322844 0.5511814
versicolor 2.677167 1.1023628 1.8897648 0.5511814
versicolor 2.637797 1.1811030 1.9685050 0.6692917
versicolor 2.362206 1.1417329 1.7716545 0.5905515
versicolor 2.244096 1.0236226 1.3779535 0.3937010
versicolor 2.165355 0.9448824 1.4960638 0.4330711
versicolor 2.165355 0.9448824 1.4566937 0.3937010
versicolor 2.283466 1.0629927 1.5354339 0.4724412
versicolor 2.362206 1.0629927 2.0078751 0.6299216
versicolor 2.125985 1.1811030 1.7716545 0.5905515
versicolor 2.362206 1.3385834 1.7716545 0.6299216
versicolor 2.637797 1.2204731 1.8503947 0.5905515
versicolor 2.480316 0.9055123 1.7322844 0.5118113
versicolor 2.204726 1.1811030 1.6141741 0.5118113
versicolor 2.165355 0.9842525 1.5748040 0.5118113
versicolor 2.165355 1.0236226 1.7322844 0.4724412
versicolor 2.401576 1.1811030 1.8110246 0.5511814
versicolor 2.283466 1.0236226 1.5748040 0.4724412
versicolor 1.968505 0.9055123 1.2992133 0.3937010
versicolor 2.204726 1.0629927 1.6535442 0.5118113
versicolor 2.244096 1.1811030 1.6535442 0.4724412
versicolor 2.244096 1.1417329 1.6535442 0.5118113
versicolor 2.440946 1.1417329 1.6929143 0.5118113
versicolor 2.007875 0.9842525 1.1811030 0.4330711
versicolor 2.244096 1.1023628 1.6141741 0.5118113
virginica 2.480316 1.2992133 2.3622060 0.9842525
virginica 2.283466 1.0629927 2.0078751 0.7480319
virginica 2.795277 1.1811030 2.3228359 0.8267721
virginica 2.480316 1.1417329 2.2047256 0.7086618
virginica 2.559057 1.1811030 2.2834658 0.8661422
virginica 2.992128 1.1811030 2.5984266 0.8267721
virginica 1.929135 0.9842525 1.7716545 0.6692917
virginica 2.874017 1.1417329 2.4803163 0.7086618
virginica 2.637797 0.9842525 2.2834658 0.7086618
virginica 2.834647 1.4173236 2.4015761 0.9842525
virginica 2.559057 1.2598432 2.0078751 0.7874020
virginica 2.519686 1.0629927 2.0866153 0.7480319
virginica 2.677167 1.1811030 2.1653555 0.8267721
virginica 2.244096 0.9842525 1.9685050 0.7874020
virginica 2.283466 1.1023628 2.0078751 0.9448824
virginica 2.519686 1.2598432 2.0866153 0.9055123
virginica 2.559057 1.1811030 2.1653555 0.7086618
virginica 3.031498 1.4960638 2.6377967 0.8661422
virginica 3.031498 1.0236226 2.7165369 0.9055123
virginica 2.362206 0.8661422 1.9685050 0.5905515
virginica 2.716537 1.2598432 2.2440957 0.9055123
virginica 2.204726 1.1023628 1.9291349 0.7874020
virginica 3.031498 1.1023628 2.6377967 0.7874020
virginica 2.480316 1.0629927 1.9291349 0.7086618
virginica 2.637797 1.2992133 2.2440957 0.8267721
virginica 2.834647 1.2598432 2.3622060 0.7086618
virginica 2.440946 1.1023628 1.8897648 0.7086618
virginica 2.401576 1.1811030 1.9291349 0.7086618
virginica 2.519686 1.1023628 2.2047256 0.8267721
virginica 2.834647 1.1811030 2.2834658 0.6299216
virginica 2.913387 1.1023628 2.4015761 0.7480319
virginica 3.110238 1.4960638 2.5196864 0.7874020
virginica 2.519686 1.1023628 2.2047256 0.8661422
virginica 2.480316 1.1023628 2.0078751 0.5905515
virginica 2.401576 1.0236226 2.2047256 0.5511814
virginica 3.031498 1.1811030 2.4015761 0.9055123
virginica 2.480316 1.3385834 2.2047256 0.9448824
virginica 2.519686 1.2204731 2.1653555 0.7086618
virginica 2.362206 1.1811030 1.8897648 0.7086618
virginica 2.716537 1.2204731 2.1259854 0.8267721
virginica 2.637797 1.2204731 2.2047256 0.9448824
virginica 2.716537 1.2204731 2.0078751 0.9055123
virginica 2.283466 1.0629927 2.0078751 0.7480319
virginica 2.677167 1.2598432 2.3228359 0.9055123
virginica 2.637797 1.2992133 2.2440957 0.9842525
virginica 2.637797 1.1811030 2.0472452 0.9055123
virginica 2.480316 0.9842525 1.9685050 0.7480319
virginica 2.559057 1.1811030 2.0472452 0.7874020
virginica 2.440946 1.3385834 2.1259854 0.9055123
virginica 2.322836 1.1811030 2.0078751 0.7086618
C=diag(1,150) - \frac{150}matrix(1, 150, 150)
S=cov(Y)
To compute \(S^{-1/2}\), you may need a R package, such as “qtl2pleio”.Generate 1000 data points from a multivariate normal with mean \(\mathbf 0\) and covariance matrix \[\Sigma=\begin{pmatrix}0.8125000 & 0.3247595\\ 0.3247595 & 0.4375000\end{pmatrix}\]
How did I obtain this covariance matrix?
standardizing X is equivalent to two steps:
Let’s reverse the process
par(mfrow=c(2,2))
plot(X, xlim=c(-3,3), ylim=c(-3,3), xlab="", ylab="", main="original")
abline(a=0, b=1/2, col="red")
plot(Y, xlim=c(-3,3), ylim=c(-3,3), xlab="", ylab="", main="rotated")
plot(Z, xlim=c(-3,3), ylim=c(-3,3), xlab="", ylab="", main="rorated+rescaled")
plot(X.recovered, xlim=c(-3,3), ylim=c(-3,3), xlab="", ylab="", main="recovered")Eugenio Beltrami (1873): an Italian mathematician, first introduced the concept of singular value decomposition in his work on mathematical physics, although the modern formulation of SVD was not fully realized at that time.
Camille Jordan (1874), a French mathematician, independently discovered it.
… Many other contributors …
Gene H. Golub and Charles F. Van Loan (1965): American mathematicians, are credited with the development of the modern and widely used algorithm for computing the singular value decomposition, known as the Golub-Reinsch algorithm.
par(mfrow=c(2,2))
#image(mydata,col=gray(c(0:10)/10))
image(t(mydata)[,nrow(mydata):1],col=gray(c(0:10)/10),
xlab="", ylab="", main="original")
plot(obj$d, ylab="singular values")
n=1
mydata.approx=obj$u[,1] %*% t(obj$v[,1])*obj$d[1]
image(t(mydata.approx)[, nrow(mydata.approx):1], main="rank 1", col=gray(c(0:10)/10))
n=10
mydata.approx=obj$u[,1:n]%*% diag(obj$d[1:n]) %*% t(obj$v[,1:n])
image(t(mydata.approx)[, nrow(mydata.approx):1], main="rank 10", col=gray(c(0:10)/10))BikeMan=readJPEG("BikeMan.jpg", native = FALSE)
BikeMan=BikeMan[,,1]
par(mfrow=c(2,2))
image(BikeMan, col=gray(c(0:10)/10))
obj.bm=svd(BikeMan)
n=10
BikeMan.approx=obj.bm$u[,1:n]%*% diag(obj.bm$d[1:n]) %*% t(obj.bm$v[,1:n])
image(BikeMan.approx, main="rank 10", col=gray(c(0:10)/10))
n=20
BikeMan.approx=obj.bm$u[,1:n]%*% diag(obj.bm$d[1:n]) %*% t(obj.bm$v[,1:n])
image(BikeMan.approx, main="rank 20", col=gray(c(0:10)/10))
n=30
BikeMan.approx=obj.bm$u[,1:n]%*% diag(obj.bm$d[1:n]) %*% t(obj.bm$v[,1:n])
image(BikeMan.approx, main="rank 30", col=gray(c(0:10)/10))Let \[A_{m\times n}=\begin{pmatrix} a_{11} & \cdots & a_{1n}\\ \cdots & \cdots & \cdots\\ a_{m1} & \cdots & a_{mn}\\ \end{pmatrix}, B_{p\times q}=\begin{pmatrix} b_{11} & \cdots & b_{1q}\\ \cdots & \cdots & \cdots\\ b_{p1} & \cdots & b_{pq}\\ \end{pmatrix}\] Then, \[A \bigotimes B = \begin{pmatrix} a_{11} * B & a_{12} * B & ... & a_{1n} * B \\ \cdots & \cdots & \cdots & \cdots\\ a_{m1} * B & a_{m2} * B & ... & a_{mn} * B \end{pmatrix}\]
C=diag(1,150) - \frac{1}{150}matrix(1, 150, 150)
S=cov(Y)
To compute \(S^{-1/2}\), you may need an R package, such as “qtl2pleio”.