Description Data Type and Structure of Multivariate Data
matrix(성분, nrow, byrow = FALSE)
를 이용한다.
성분
: 행렬의 성분nrow
: 행의 수byrow
: 성분을 행으로 나열할 것인지를 나타내는
논리값# 예제 11
## 행렬 성분
entries <- c(1, 5, 10, 3, 2, 9, 5, 14, 38, 18, 26, 5)
## 행렬 생성
matrix(entries, nrow = 3, byrow = FALSE)
[,1] [,2] [,3] [,4]
[1,] 1 3 5 18
[2,] 5 2 14 26
[3,] 10 9 38 5
matrix(entries, nrow = 3, byrow = TRUE)
[,1] [,2] [,3] [,4]
[1,] 1 5 10 3
[2,] 2 9 5 14
[3,] 38 18 26 5
# 예제 22
## 행렬 성분
entries <- 1:30
## 행렬 생성
matrix(entries, nrow = 6, byrow = FALSE)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 7 13 19 25
[2,] 2 8 14 20 26
[3,] 3 9 15 21 27
[4,] 4 10 16 22 28
[5,] 5 11 17 23 29
[6,] 6 12 18 24 30
matrix(entries, nrow = 6, byrow = TRUE)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10
[3,] 11 12 13 14 15
[4,] 16 17 18 19 20
[5,] 21 22 23 24 25
[6,] 26 27 28 29 30
[,1] [,2] [,3]
[1,] 1 3 8
[2,] 10 9 14
[3,] 4 16 7
entries <- 1:16
matrix(entries, nrow = 4)
[,1] [,2] [,3] [,4]
[1,] 1 5 9 13
[2,] 2 6 10 14
[3,] 3 7 11 15
[4,] 4 8 12 16
diag(벡터)
를 통해 대각행렬을 생성할 수
있다. [,1] [,2] [,3] [,4] [,5]
[1,] 10 0 0 0 0
[2,] 0 13 0 0 0
[3,] 0 0 8 0 0
[4,] 0 0 0 1 0
[5,] 0 0 0 0 3
# 예제 22
diag(1:10)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 0 0 0 0 0 0 0 0 0
[2,] 0 2 0 0 0 0 0 0 0 0
[3,] 0 0 3 0 0 0 0 0 0 0
[4,] 0 0 0 4 0 0 0 0 0 0
[5,] 0 0 0 0 5 0 0 0 0 0
[6,] 0 0 0 0 0 6 0 0 0 0
[7,] 0 0 0 0 0 0 7 0 0 0
[8,] 0 0 0 0 0 0 0 8 0 0
[9,] 0 0 0 0 0 0 0 0 9 0
[10,] 0 0 0 0 0 0 0 0 0 10
diag(정수)
를 통해 항등행렬을 생성할 수
있다.# 예제 11
diag(5)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 0 0 0
[2,] 0 1 0 0 0
[3,] 0 0 1 0 0
[4,] 0 0 0 1 0
[5,] 0 0 0 0 1
# 예제 22
diag(10)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 0 0 0 0 0 0 0 0 0
[2,] 0 1 0 0 0 0 0 0 0 0
[3,] 0 0 1 0 0 0 0 0 0 0
[4,] 0 0 0 1 0 0 0 0 0 0
[5,] 0 0 0 0 1 0 0 0 0 0
[6,] 0 0 0 0 0 1 0 0 0 0
[7,] 0 0 0 0 0 0 1 0 0 0
[8,] 0 0 0 0 0 0 0 1 0 0
[9,] 0 0 0 0 0 0 0 0 1 0
[10,] 0 0 0 0 0 0 0 0 0 1
t(행렬)
을 이용하여 전치행렬을 생성할 수
있다. [,1] [,2] [,3]
[1,] 1 2 38
[2,] 5 9 18
[3,] 10 5 26
[4,] 3 14 5
# 전치행렬NAt(X)
[,1] [,2] [,3] [,4]
[1,] 1 5 10 3
[2,] 2 9 5 14
[3,] 38 18 26 5
# 예제 22
X <- matrix(1:10, nrow = 2)
X
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
# 전치행렬NAt(X)
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 5 6
[4,] 7 8
[5,] 9 10
\[ \mathbf{X} = \begin{pmatrix} x_{11} & x_{12} & \ldots & x_{1p}\\ x_{12} & x_{22} & \ldots & x_{2p}\\ \vdots & \vdots & \vdots & \vdots \\ x_{1p} & x_{2p} & \ldots & x_{pp}\\ \end{pmatrix} \]
[,1] [,2] [,3]
[1,] 8 1 4
[2,] 1 3 7
[3,] 4 7 6
[,1] [,2] [,3] [,4]
[1,] 1 2 0 0
[2,] 2 0 1 1
[3,] 0 1 1 1
[4,] 0 1 1 0
두 행렬 \(\mathbf{A}\)와 \(\mathbf{B}\)이 각각 다음과 같다고 가정하자. \[ \mathbf{A} = \begin{pmatrix} a_{11} & a_{12} & \ldots & a_{1p}\\ \vdots & \vdots & \vdots & \vdots \\ a_{n1} & a_{n2} & \ldots & a_{np}\\ \end{pmatrix},\;\;\; \mathbf{B} = \begin{pmatrix} b_{12} & b_{12} & \ldots & b_{1p}\\ \vdots & \vdots & \vdots & \vdots \\ b_{np} & b_{np} & \ldots & b_{np}\\ \end{pmatrix} \]
행렬의 합 \(\mathbf{A}+\mathbf{B}\)는 대응되는 성분들끼리 더한 행렬과 같다.
\[ \mathbf{A}+\mathbf{B} = \begin{pmatrix} a_{11} + b_{11} & a_{12} + b_{12}& \ldots & a_{1p}+ b_{1p}\\ \vdots & \vdots & \vdots & \vdots \\ a_{n1}+ b_{n1} & a_{n2} + b_{n2}& \ldots & a_{np}+ b_{np}\\ \end{pmatrix} \]
\[ \mathbf{A}-\mathbf{B} = \begin{pmatrix} a_{11} - b_{11} & a_{12} - b_{12}& \ldots & a_{1p}- b_{1p}\\ \vdots & \vdots & \vdots & \vdots \\ a_{n1}- b_{n1} & a_{n2} - b_{n2}& \ldots & a_{np}- b_{np}\\ \end{pmatrix} \]
[,1] [,2] [,3] [,4]
[1,] 1 10 8 11
[2,] 5 12 17 2
[,1] [,2] [,3] [,4]
[1,] 18 10 1 3
[2,] 12 9 4 7
## 행렬 더하기NAA+B
[,1] [,2] [,3] [,4]
[1,] 19 20 9 14
[2,] 17 21 21 9
## 행렬의 차NAA-B
[,1] [,2] [,3] [,4]
[1,] -17 0 7 8
[2,] -7 3 13 -5
# 예제 22
## 행렬 AA <- matrix(1:10, nrow = 5)
A
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
## 행렬 BB <- matrix(21:30, nrow = 5)
B
[,1] [,2]
[1,] 21 26
[2,] 22 27
[3,] 23 28
[4,] 24 29
[5,] 25 30
## 행렬 더하기NAA+B
[,1] [,2]
[1,] 22 32
[2,] 24 34
[3,] 26 36
[4,] 28 38
[5,] 30 40
## 행렬의 차NAA-B
[,1] [,2]
[1,] -20 -20
[2,] -20 -20
[3,] -20 -20
[4,] -20 -20
[5,] -20 -20
\[ \mathbf{A} = \begin{pmatrix} a_{11} & a_{12} & \ldots & a_{1k}\\ \vdots & \vdots & \vdots & \vdots \\ a_{n1} & a_{n2} & \ldots & a_{nk}\\ \end{pmatrix},\;\;\; \mathbf{B} = \begin{pmatrix} b_{11} & b_{12} & \ldots & b_{1p}\\ \vdots & \vdots & \vdots & \vdots \\ b_{k1} & b_{k2} & \ldots & b_{kp}\\ \end{pmatrix} \]
\[ \mathbf{AB} = \begin{pmatrix} a_{11} & a_{12} & \ldots & a_{1k}\\ \vdots & \vdots & \vdots & \vdots \\ a_{n1} & a_{n2} & \ldots & a_{nk}\\ \end{pmatrix}\begin{pmatrix} b_{11} & b_{12} & \ldots & b_{1p}\\ \vdots & \vdots & \vdots & \vdots \\ b_{k1} & b_{k2} & \ldots & b_{kp}\\ \end{pmatrix} = \begin{pmatrix} \sum_{i=1}^{k} a_{1i}b_{i1} & \sum_{i=1}^{k} a_{1i}b_{i2} & \ldots & \sum_{i=1}^{k} a_{1i}b_{ip}\\ \vdots & \vdots & \vdots & \vdots \\ \sum_{i=1}^{k} a_{ni}b_{i1} & \sum_{i=1}^{k} a_{ni}b_{i2} & \ldots & \sum_{i=1}^{k} a_{ni}b_{ip}\\ \end{pmatrix} \]
%*%
를 통해 행렬곱을 계산할 수 있다. [,1] [,2] [,3] [,4]
[1,] 1 10 8 11
[2,] 5 12 17 2
[,1] [,2]
[1,] 18 1
[2,] 12 4
[3,] 10 3
[4,] 9 7
## 행렬의 곱NAA%*%B
[,1] [,2]
[1,] 317 142
[2,] 422 118
# 예제 22
## 행렬 AA <- matrix(1:10, nrow = 5)
A
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
## 행렬 BB <- matrix(21:30, nrow = 2)
B
[,1] [,2] [,3] [,4] [,5]
[1,] 21 23 25 27 29
[2,] 22 24 26 28 30
## 행렬의 곱NAA%*%B
[,1] [,2] [,3] [,4] [,5]
[1,] 153 167 181 195 209
[2,] 196 214 232 250 268
[3,] 239 261 283 305 327
[4,] 282 308 334 360 386
[5,] 325 355 385 415 445
직교행렬(Orthogonal Matrix)
이라고 한다. [,1] [,2]
[1,] 0.6 -0.8
[2,] 0.8 0.6
Q %*% t(Q)
[,1] [,2]
[1,] 1 0
[2,] 0 1
t(Q) %*% Q
[,1] [,2]
[1,] 1 0
[2,] 0 1
[,1] [,2] [,3]
[1,] 0 0 1
[2,] 1 0 0
[3,] 0 1 0
Q %*% t(Q)
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
t(Q) %*% Q
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
정방행렬 \(\mathbf{A}\)에 대한 행렬식을 \(|\mathbf{A}|\) 또는 det\((\mathbf{A})\)로 표기한다.
\(2\times 2\) 행렬 \(\mathbf{A}\)에 대한 행렬식 계산은 다음과 같다. \[ \text{det}(\mathbf{A}) = \text{det}\begin{pmatrix} a_{11} & a_{12}\\ a_{21} &a_{22} \end{pmatrix} = \begin{vmatrix} a_{11} & a_{12}\\ a_{21} &a_{22} \end{vmatrix}={a_{11}a_{22}-a_{12}a_{21}} \]
\(3\times 3\) 행렬 \(\mathbf{A}\)에 대한 행렬식 계산은 다음과 같다. \[ \text{det}(\mathbf{A}) = \text{det}\begin{pmatrix} a_{11} & a_{12} & a_{13}\\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33}\\ \end{pmatrix} = a_{11}a_{22}a_{33}+a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}-(a_{11}a_{23}a_{32}+a_{12}a_{21}a_{33}+a_{13}a_{22}a_{31}) \]
\(4\times 4\)부터 행렬식 계산은 어려워지는 단점이 있다.
R에서 함수 det()
를 이용하면 쉽게 행렬식을 얻을 수
있다.
[,1] [,2]
[1,] 1 10
[2,] 5 12
det(A)
[1] -38
[,1] [,2] [,3]
[1,] 18 9 3
[2,] 12 1 7
[3,] 10 4 16
det(B)
[1] -1200
# 예제 33
## 행렬 MM <- matrix(c(2, 5, 7, 9, 4, 10, 18, 19, 12, 13, 16, 11, 22, 29, 24, 20), nrow = 4)
M
[,1] [,2] [,3] [,4]
[1,] 2 4 12 22
[2,] 5 10 13 29
[3,] 7 18 16 24
[4,] 9 19 11 20
det(M)
[1] -1350
정방행렬 \(\mathbf{A}\)에 대해 역행렬(Inverse Matrix) \(\mathbf{A}^{-1}\)는 유일하게 존재하며, 다음을 만족한다. \[ \begin{align*} \mathbf{A}\mathbf{A}^{-1}=\mathbf{A}^{-1}\mathbf{A}=\mathbf{I} \end{align*} \]
특이행렬(Singular Matrix)
이라고 한다.\(2\times 2\) 행렬 \(\mathbf{A}\)에 대한 역행렬 \(\mathbf{A}^{-1}\)은 다음과 같다. \[ \mathbf{A}^{-1} = \begin{pmatrix} a_{11} & a_{12}\\ a_{21} &a_{22} \end{pmatrix}^{-1} = \frac{1}{a_{11}a_{22}-a_{12}a_{21}}\begin{pmatrix} a_{22} & -a_{12}\\ -a_{21} &a_{11} \end{pmatrix} \]
\(3\times 3\) 행렬 \(\mathbf{A}\)에 대한 역행렬 \(\mathbf{A}^{-1}\)은 다음과 같다. \[ \mathbf{A}^{-1} = \begin{pmatrix} a_{11} & a_{12} & a_{13}\\ a_{21} & a_{22} & a_{23}\\ a_{31} & a_{32} & a_{33} \end{pmatrix}^{-1} = \frac{1}{|A|}\begin{pmatrix} \begin{vmatrix} a_{22} & a_{23}\\ a_{32} & a_{33} \end{vmatrix} & -\begin{vmatrix} a_{12} & a_{13}\\ a_{32} & a_{33} \end{vmatrix} & \begin{vmatrix} a_{12} & a_{13}\\ a_{22} & a_{23} \end{vmatrix}\\ -\begin{vmatrix} a_{21} & a_{23}\\ a_{31} & a_{33} \end{vmatrix} & \begin{vmatrix} a_{11} & a_{13}\\ a_{31} & a_{33} \end{vmatrix} & -\begin{vmatrix} a_{11} & a_{13}\\ a_{21} & a_{23} \end{vmatrix}\\ \begin{vmatrix} a_{21} & a_{22}\\ a_{31} & a_{32} \end{vmatrix} & -\begin{vmatrix} a_{11} & a_{12}\\ a_{31} & a_{32} \end{vmatrix} & \begin{vmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{vmatrix} \end{pmatrix} \]
\(4\times 4\)부터 역행렬 계산은 어려워지는 단점이 있다.
R에서 함수 solve()
를 이용하면 쉽게 역행렬을 얻을 수
있다.
[,1] [,2]
[1,] 1 10
[2,] 5 12
solve(A)
[,1] [,2]
[1,] -0.3157895 0.26315789
[2,] 0.1315789 -0.02631579
[,1] [,2] [,3]
[1,] 18 9 3
[2,] 12 1 7
[3,] 10 4 16
solve(B)
[,1] [,2] [,3]
[1,] 0.01000000 0.110 -0.050
[2,] 0.10166667 -0.215 0.075
[3,] -0.03166667 -0.015 0.075
# 예제 33
## 행렬 MM <- matrix(c(2, 5, 7, 9, 4, 10, 18, 19, 12, 13, 16, 11, 22, 29, 24, 20), nrow = 4)
M
[,1] [,2] [,3] [,4]
[1,] 2 4 12 22
[2,] 5 10 13 29
[3,] 7 18 16 24
[4,] 9 19 11 20
solve(M)
[,1] [,2] [,3] [,4]
[1,] 0.9377778 -0.7081481 -0.71259259 0.8503704
[2,] -0.5000000 0.3333333 0.33333333 -0.3333333
[3,] 0.4155556 -0.3896296 -0.03851852 0.1540741
[4,] -0.1755556 0.2162963 0.02518519 -0.1007407
eigen(행렬)
을 통해 고유값과 고유벡터를
계산할 수 있다.
[,1] [,2]
[1,] 4 2
[2,] -5 -3
eigen(A)
eigen() decomposition
$values
[1] 2 -1
$vectors
[,1] [,2]
[1,] 0.7071068 -0.3713907
[2,] -0.7071068 0.9284767
Result!
첫 번째 고유값 2에 해당하는 단위 고유벡터는
\(\mathbf{e}_{1}\)=(0.7071068,
-0.7071068)이고, 두 번째 고유값 -1에 해당하는 단위 고유벡터는 \(\mathbf{e}_{2}\)=(-0.3713907,
0.9284767)이다.
[,1] [,2]
[1,] 1.414214 -1.414214
A%*%eigen(A)$vectors[,1]
[,1]
[1,] 1.414214
[2,] -1.414214
[,1] [,2]
[1,] 0.3713907 -0.9284767
A%*%eigen(A)$vectors[,2]
[,1]
[1,] 0.3713907
[2,] -0.9284767
Result!
명제 1번이 각 고유값과 고유벡터에 대해
성립한다.
[,1] [,2] [,3]
[1,] 18 9 3
[2,] 12 1 7
[3,] 10 4 16
eigen(B)
eigen() decomposition
$values
[1] 27.852064 11.047791 -3.899855
$vectors
[,1] [,2] [,3]
[1,] -0.6059151 -0.46301456 0.380749873
[2,] -0.4430289 0.06295986 -0.924661892
[3,] -0.6607513 0.88411174 -0.005469948
Result!
첫 번째 고유값 27.852064에 해당하는 단위
고유벡터는 \(\mathbf{e}_{1}=\)(-0.6059151, -0.4430289,
-0.6607513)이고, 두 번째 고유값 11.047791에 해당하는 단위 고유벡터는
\(\mathbf{e}_{2}\)=(-0.46301456,
0.06295986. 0.88411174), 세 번째 고유값 -3.899855에 해당하는 단위
고유벡터는 \(\mathbf{e}_{3}\)=(0.380749873,
-0.924661892, -0.005469948)이다.
[,1] [,2] [,3]
[1,] -16.87599 -12.33927 -18.40329
B%*%eigen(B)$vectors[,1]
[,1]
[1,] -16.87599
[2,] -12.33927
[3,] -18.40329
[,1] [,2] [,3]
[1,] -5.115288 0.6955674 9.767482
B%*%eigen(B)$vectors[,2]
[,1]
[1,] -5.1152881
[2,] 0.6955674
[3,] 9.7674818
[,1] [,2] [,3]
[1,] -1.484869 3.606047 0.021332
B%*%eigen(B)$vectors[,3]
[,1]
[1,] -1.484869
[2,] 3.606047
[3,] 0.021332
Result!
명제 1번이 각 고유값과 고유벡터에 대해
성립한다.
# 예제 33
## 행렬 MM <- matrix(c(2, 5, 7, 9, 4, 10, 18, 19, 12, 13, 16, 11, 22, 29, 24, 20), nrow = 4)
M
[,1] [,2] [,3] [,4]
[1,] 2 4 12 22
[2,] 5 10 13 29
[3,] 7 18 16 24
[4,] 9 19 11 20
eigen(M)
eigen() decomposition
$values
[1] 57.598788+0.000000i -11.949017+0.000000i 1.175114+0.761975i
[4] 1.175114-0.761975i
$vectors
[,1] [,2] [,3]
[1,] -0.3664508+0i 0.6898760+0i -0.6983444+0.0000000i
[2,] -0.5116579+0i 0.5352728+0i 0.3877508+0.0529904i
[3,] -0.5808906+0i -0.1097305+0i -0.4664879-0.2869434i
[4,] -0.5162229+0i -0.4748825+0i 0.2101321+0.1226926i
[,4]
[1,] -0.6983444+0.0000000i
[2,] 0.3877508-0.0529904i
[3,] -0.4664879+0.2869434i
[4,] 0.2101321-0.1226926i
Result!
첫 번째 고유값 57.598788에 해당하는 단위
고유벡터는 \(\mathbf{e}_{1}=\)(-0.3664508, -0.5116579,
-0.5808906, -0.5162229), 두 번째 고유값 -11.949017에 해당하는 단위
고유벡터는 \(\mathbf{e}_{2}\)=(0.6898760, 0.5352728.
-0.1097305, -0.4748825), 세 번째 고유값 1.175114+0.761975i에 해당하는
단위 고유벡터는 \(\mathbf{e}_{3}\)=(-0.6983444+0.0000000i,
0.3877508+0.0529904i, -0.4664879-0.2869434i, 0.2101321+0.1226926i), 네
번째 고유값 1.175114-0.761975i에 해당하는 단위 고유벡터는 \(\mathbf{e}_{4}\)=(-0.6983444+0.0000000i,
0.3877508-0.0529904i, -0.4664879+0.2869434i,
0.2101321-0.1226926i)이다.
[,1] [,2] [,3] [,4]
[1,] -21.10712+0i -29.47087+0i -33.4586+0i -29.73381+0i
M%*%eigen(M)$vectors[,1]
[,1]
[1,] -21.10712+0i
[2,] -29.47087+0i
[3,] -33.45860+0i
[4,] -29.73381+0i
[,1] [,2] [,3] [,4]
[1,] -8.243339+0i -6.395983+0i 1.311172+0i 5.674379+0i
M%*%eigen(M)$vectors[,2]
[,1]
[1,] -8.243339+0i
[2,] -6.395983+0i
[3,] 1.311172+0i
[4,] 5.674379+0i
[,1] [,2] [,3]
[1,] -0.8206344-0.5321212i 0.415274+0.3577263i -0.3295328-0.6926435i
[,4]
[1,] 0.1534405+0.3042933i
M%*%eigen(M)$vectors[,3]
[,1]
[1,] -0.8206344-0.5321212i
[2,] 0.4152740+0.3577263i
[3,] -0.3295328-0.6926435i
[4,] 0.1534405+0.3042933i
[,1] [,2] [,3]
[1,] -0.8206344+0.5321212i 0.415274-0.3577263i -0.3295328+0.6926435i
[,4]
[1,] 0.1534405-0.3042933i
M%*%eigen(M)$vectors[,4]
[,1]
[1,] -0.8206344+0.5321212i
[2,] 0.4152740-0.3577263i
[3,] -0.3295328+0.6926435i
[4,] 0.1534405-0.3042933i
Result!
명제 1번이 각 고유값과 고유벡터에 대해
성립한다.
두 가지 이상의 특성(변수)
을 측정하여 얻어진 관측값들로
이루어진 데이터
변수들 간의 관계성을 동시에 분석
하는 통계적 분석
\[ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;X_{1}\;\;\;\;X_{2}\;\;\;X_{3}\\ \mathbf{X}_{10\times 3} = \begin{pmatrix} 90 & 95 & 80\\ 85 & 80 & 50\\ 50 & 40 & 10\\ 43 & 64 & 38\\ 97 & 100 & 98\\ 88 & 93 & 86\\ 77 & 86 & 49\\ 61 & 66 & 57 \\ 78 & 84 & 73\\ 91 & 98 & 86 \end{pmatrix} \tag{1} \]
# 10명의 학생들이 수강한 통계학개론, R데이터분석, 다변량자료분석의 중간고사 점수 NAx <- c(90, 95, 80, 85, 80, 50, 50, 40, 10, 43, 64, 38, 97, 100, 98, 88, 93, 86, 77, 86, 49, 61, 66, 57, 78, 84, 73, 91, 98, 86)
mat.x <- matrix(x, nrow = 10, byrow = TRUE)
mat.x
[,1] [,2] [,3]
[1,] 90 95 80
[2,] 85 80 50
[3,] 50 40 10
[4,] 43 64 38
[5,] 97 100 98
[6,] 88 93 86
[7,] 77 86 49
[8,] 61 66 57
[9,] 78 84 73
[10,] 91 98 86
apply(mat.x, 2, mean)
[1] 76.0 80.6 62.7
Caution!
함수 apply()
는 주어진 함수를 특정
단위별로 쉽게 적용할 수 있도록 도움을 주는 함수이다. 첫 번째 인자로는
함수를 적용할 행렬 또는 데이터 프레임이 인자로 들어가고, 두 번째
인자로는 함수를 적용할 단위를 지정한다. 이때 “1”은 행 단위로 함수를
적용하고, “2”는 열 단위로 함수를 적용한다. 세 번째 인자는 적용할 함수를
지정하면 된다. 위의 코드 마지막 줄 apply(mat.x, 2, mean)
은
행렬 “mat.x”의 열 단위로 평균을 적용하라는 의미이다.
# 10명의 학생들이 수강한 통계학개론, R데이터분석, 다변량자료분석의 중간고사 점수 NAx <- c(90, 95, 80, 85, 80, 50, 50, 40, 10, 43, 64, 38, 97, 100, 98, 88, 93, 86, 77, 86, 49, 61, 66, 57, 78, 84, 73, 91, 98, 86)
mat.x <- matrix(x, nrow = 10, byrow = TRUE)
mat.x
[,1] [,2] [,3]
[1,] 90 95 80
[2,] 85 80 50
[3,] 50 40 10
[4,] 43 64 38
[5,] 97 100 98
[6,] 88 93 86
[7,] 77 86 49
[8,] 61 66 57
[9,] 78 84 73
[10,] 91 98 86
apply(mat.x, 2, var)
[1] 342.4444 357.6000 722.9000
# 10명의 학생들이 수강한 통계학개론, R데이터분석, 다변량자료분석의 중간고사 점수 NAx <- c(90, 95, 80, 85, 80, 50, 50, 40, 10, 43, 64, 38, 97, 100, 98, 88, 93, 86, 77, 86, 49, 61, 66, 57, 78, 84, 73, 91, 98, 86)
mat.x <- matrix(x, nrow = 10, byrow = TRUE)
mat.x
[,1] [,2] [,3]
[1,] 90 95 80
[2,] 85 80 50
[3,] 50 40 10
[4,] 43 64 38
[5,] 97 100 98
[6,] 88 93 86
[7,] 77 86 49
[8,] 61 66 57
[9,] 78 84 73
[10,] 91 98 86
apply(mat.x, 2, sd)
[1] 18.50525 18.91031 26.88680
cov()
를 이용하여 얻을 수
있다.# 10명의 학생들이 수강한 통계학개론, R데이터분석, 다변량자료분석의 중간고사 점수 NAx <- c(90, 95, 80, 85, 80, 50, 50, 40, 10, 43, 64, 38, 97, 100, 98, 88, 93, 86, 77, 86, 49, 61, 66, 57, 78, 84, 73, 91, 98, 86)
mat.x <- matrix(x, nrow = 10, byrow = TRUE)
mat.x
[,1] [,2] [,3]
[1,] 90 95 80
[2,] 85 80 50
[3,] 50 40 10
[4,] 43 64 38
[5,] 97 100 98
[6,] 88 93 86
[7,] 77 86 49
[8,] 61 66 57
[9,] 78 84 73
[10,] 91 98 86
# 표본공분산행렬
cov(mat.x)
[,1] [,2] [,3]
[1,] 342.4444 316.4444 419.5556
[2,] 316.4444 357.6000 469.9778
[3,] 419.5556 469.9778 722.9000
Result!
생성된 표본공분산행렬은 대칭행렬이며, 대각성분은
2-3-2. 표본분산에서 계산된 분산과 같다.
cor()
를 이용하여 얻을 수
있다.# 10명의 학생들이 수강한 통계학개론, R데이터분석, 다변량자료분석의 중간고사 점수 NAx <- c(90, 95, 80, 85, 80, 50, 50, 40, 10, 43, 64, 38, 97, 100, 98, 88, 93, 86, 77, 86, 49, 61, 66, 57, 78, 84, 73, 91, 98, 86)
mat.x <- matrix(x, nrow = 10, byrow = TRUE)
mat.x
[,1] [,2] [,3]
[1,] 90 95 80
[2,] 85 80 50
[3,] 50 40 10
[4,] 43 64 38
[5,] 97 100 98
[6,] 88 93 86
[7,] 77 86 49
[8,] 61 66 57
[9,] 78 84 73
[10,] 91 98 86
# 표본상관행렬
cor(mat.x)
[,1] [,2] [,3]
[1,] 1.0000000 0.9042815 0.8432480
[2,] 0.9042815 1.0000000 0.9243564
[3,] 0.8432480 0.9243564 1.0000000
Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".