Data Type and Structure

Multivariate Data Analysis

Description Data Type and Structure of Multivariate Data

Yeongeun Jeon
09-16-2022

1. 기초 행렬 대수


1-1. 행렬의 정의

# 예제 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-1-1. 특정 형태를 갖는 행렬

정방행렬

entries <- c(1, 10, 4, 3, 9, 16, 8, 14, 7)
matrix(entries, nrow = 3)
     [,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

대각행렬

# 예제 11
diag(c(10, 13, 8, 1, 3))
     [,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

항등행렬

# 예제 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

전치행렬

# 예제 11
X <- matrix(c(1, 5, 10, 3, 2, 9, 5, 14, 38, 18, 26, 5), nrow = 4)
X
     [,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} \]

# 예제 11
X <- matrix(c(8, 1, 4, 1, 3, 7, 4, 7, 6), nrow = 3, byrow = TRUE)
X
     [,1] [,2] [,3]
[1,]    8    1    4
[2,]    1    3    7
[3,]    4    7    6
# 예제 22
X <- matrix(c(1, 2, 0, 0, 2, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0), nrow = 4, byrow = TRUE)
X
     [,1] [,2] [,3] [,4]
[1,]    1    2    0    0
[2,]    2    0    1    1
[3,]    0    1    1    1
[4,]    0    1    1    0

1-2. 행렬의 연산


1-2-1. 합과 차

\[ \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} \]

# 예제 11
## 행렬 AA <- matrix(c(1, 5, 10, 12, 8, 17, 11, 2), nrow = 2)
A
     [,1] [,2] [,3] [,4]
[1,]    1   10    8   11
[2,]    5   12   17    2
## 행렬 BB <- matrix(c(18, 12, 10, 9, 1, 4, 3, 7), nrow = 2)
B
     [,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

1-2-2. 곱

\[ \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} \]

# 예제 11
## 행렬 AA <- matrix(c(1, 5, 10, 12, 8, 17, 11, 2), nrow = 2)
A
     [,1] [,2] [,3] [,4]
[1,]    1   10    8   11
[2,]    5   12   17    2
## 행렬 BB <- matrix(c(18, 12, 10, 9, 1, 4, 3, 7), nrow = 4)
B
     [,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

1-3. 직교행렬

# 예제 11
Q <-matrix(c(3/5, -4/5, 4/5, 3/5), nrow = 2, byrow = TRUE)
Q
     [,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
# 예제 22
Q <- matrix(c(0, 0, 1, 1, 0, 0, 0, 1, 0), nrow = 3, byrow = TRUE)
Q
     [,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

1-4. 행렬식

# 예제 11
## 행렬 AA <- matrix(c(1, 5, 10, 12), nrow = 2)
A
     [,1] [,2]
[1,]    1   10
[2,]    5   12
det(A)
[1] -38
# 예제 22
## 행렬 BB <- matrix(c(18, 12, 10, 9, 1, 4, 3, 7, 16), nrow = 3)
B
     [,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

1-5. 역행렬

# 예제 11
## 행렬 AA <- matrix(c(1, 5, 10, 12), nrow = 2)
A
     [,1] [,2]
[1,]    1   10
[2,]    5   12
solve(A)
           [,1]        [,2]
[1,] -0.3157895  0.26315789
[2,]  0.1315789 -0.02631579
# 예제 22
## 행렬 BB <- matrix(c(18, 12, 10, 9, 1, 4, 3, 7, 16), nrow = 3)
B
     [,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

1-6. 고유값과 고유벡터

# 예제 11
## 행렬 AA <- matrix(c(4, -5, 2, -3), nrow = 2)
A
     [,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번
eigen(A)$values[1]%*%eigen(A)$vectors[,1]
         [,1]      [,2]
[1,] 1.414214 -1.414214
A%*%eigen(A)$vectors[,1]
          [,1]
[1,]  1.414214
[2,] -1.414214
eigen(A)$values[2]%*%eigen(A)$vectors[,2]
          [,1]       [,2]
[1,] 0.3713907 -0.9284767
A%*%eigen(A)$vectors[,2]
           [,1]
[1,]  0.3713907
[2,] -0.9284767

Result! 명제 1번이 각 고유값과 고유벡터에 대해 성립한다.

# 예제 22
## 행렬 BB <- matrix(c(18, 12, 10, 9, 1, 4, 3, 7, 16), nrow = 3)
B
     [,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번
eigen(B)$values[1]%*%eigen(B)$vectors[,1]
          [,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
eigen(B)$values[2]%*%eigen(B)$vectors[,2]
          [,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
eigen(B)$values[3]%*%eigen(B)$vectors[,3]
          [,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번
eigen(M)$values[1]%*%eigen(M)$vectors[,1]
             [,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
eigen(M)$values[2]%*%eigen(M)$vectors[,2]
             [,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
eigen(M)$values[3]%*%eigen(M)$vectors[,3]
                      [,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
eigen(M)$values[4]%*%eigen(M)$vectors[,4]
                      [,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번이 각 고유값과 고유벡터에 대해 성립한다.


1-7. 스펙트럼분해


2. 다변량 분석이란?


2-1. 다변량 분석의 목적

  1. 다변량 데이터 탐색을 통해 분포와 구조에 대한 정보는 얻는 것
  2. 적절한 분석방법을 적용하여 데이터가 발생한 시스템 또는 모집단에 대해 의미 있는 결과를 도출하는 것
    • 변수들 간의 인과관계 : 회귀분석, 분산분석
    • 변수들 간의 상관관계를 분석하여 데이터 차원 축약 : 주성분분석, 인자분석
    • 개체들의 유사성에 의해 개체들을 분류 : 군집분석, 판별분석
  3. 통계분석 결과들로 얻어진 통계량과 그래프 등 분석 결과들을 이용하여 적절한 해석으로 그 분야의 현상에 대해 알아내는 것

2-2. 다변량 데이터의 구조

\[ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;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} \]


2-3. 다변량 데이터의 요약


2-3-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”의 열 단위로 평균을 적용하라는 의미이다.


2-3-2. 표본분산

# 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

2-3-3. 표본표준편차

# 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

2-3-4. 표본공분산

# 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. 표본분산에서 계산된 분산과 같다.


2-3-5. 표본상관계수

# 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

Reuse

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 ...".