확률벡터 X의 공분산행렬 A=
1 | 0 | 0 |
0 | 9 | 0 |
0 | 0 | 16 |
(a)
rank(A)를 구하시오
> A=matrix(c(1,0,0,0,9,0,0,0,16),ncol=3)
> library(Matrix)
> rankMatrix(A)
[1] 3
attr(,"method")
[1] "tolNorm2"
attr(,"useGrad")
[1] FALSE
attr(,"tol")
[1] 6.661338e-16
rank 란?
행렬에 대하여 기본 행연산을 시행하여 행 사다리꼴(row echelon form)으로 변환시켜 놓으면 그 행렬의 계수(rank)를 쉽게 알 수 있음 행 사다리꼴 행렬의 0 아닌 행의 개수를 세면 되기 때문
R로 행렬의 계수(rank)를 구할 때는 rank() 함수를 사용하면 안되며, Matrix 패키지의 rankMatrix() 함수를 사용해야 합니다. R의 rank() 함수를 쓰면 크기 순서대로 랭킹이 나옴
(b)
A의 고유값과 고유벡터, 단위 고유벡터를 구하시오
> lamda=eigen(A)
> lamda
$values
[1] 16 9 1
$vectors
[,1] [,2] [,3]
[1,] 0 0 1
[2,] 0 1 0
[3,] 1 0 0
> unit_eigenvectors = lamda$vectors / sqrt(rowSums(lamda$vectors^2))
> unit_eigenvectors
[,1] [,2] [,3]
[1,] 0 0 1
[2,] 0 1 0
[3,] 1 0 0
lamda$vectors는 고유벡터
sqrt(rowSums(lamda$vectors^2))는 고유벡터들의 제곱합을 행으로 더하고 루트 씌운 값 = 벡터의 크기
벡터 v / 벡터 v의 크기 = 단위(고유)벡터 v
(c) A^(-1)을 구하시오
> B=solve(A)
> B
[,1] [,2] [,3]
[1,] 1 0.0000000 0.0000
[2,] 0 0.1111111 0.0000
[3,] 0 0.0000000 0.0625
A의 역행렬 구하기
(d) A를 스펙트럼 분해로 표현하시오
> A_spectrum=lamda$vectors%*%diag(lamda$values)%*%t(lamda$vectors)
> A_spectrum
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 9 0
[3,] 0 0 16
lamda$vectors는 고유벡터
t( lamda$vectors)는 고유벡터의 전치행렬
diag(eigen_values)는 대각 행렬 생성
스펙트럼 분해란?
A=
여기서
Q: A의 고유벡터로 구성된 행렬
Λ(Lambda): A의 고유값들을 대각선에 가진 대각행렬
(e) A^(-1)의 고유값과 고유벡터를 구하시오
> B=solve(A)
> B
[,1] [,2] [,3]
[1,] 1 0.0000000 0.0000
[2,] 0 0.1111111 0.0000
[3,] 0 0.0000000 0.0625
> lamda2=eigen(B)
> lamda2
$values
[1] 1.0000000 0.1111111 0.0625000
$vectors
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
(f) A는 양정치 행렬인가?
> is_positive=all(eigen(A)$values>0)
> is_positive
[1] TRUE
all(...) : 모든 요소가 true인지 확인 ( 논리연산자)
양정치 행렬이란:
모든 고유값이 양수: 행렬의 고유값이 모두 0보다 크면, 그 행렬은 양정치행렬입니다.
모든 비영 벡터에 대한 양의 이차형: 임의의 비영 벡터 x에 대해 다음이 성립합니다: x^TAx>0
여기서 A는 양정치행렬, x는 0이 아닌 벡터
(g) A를 이용하여 X의 상관행렬을 구하시오
상관행렬과 공분산 행렬끼리의 관계
공분산 행렬을 상관 행렬로 변환하기 위해서는 다음과 같은 과정을 거칩니다: R=D^(−1/2)AD^(−1/2)
여기서 는 A의 대각 원소들(변수의 분산)로 구성된 대각행렬
공분산행렬 A -> A의 대각원소들로 구성된 D 구하기 -> 의 대각 원소의 제곱근을 취해 표준편차 벡터 σ를 구하기 -> 상관행렬 R 구하기
R[i,j]=A[i,j]/ σ[i]σ[j]
또는
R=D^(−1)AD^(−1)
D는 공분산 행렬 의 대각 원소의 제곱근으로 구성된 대각 행렬
방법1에서는
이렇게 되고 방법 2에서는
D는
이렇게 된다
(h) |A|를 구하고 고유값들의 곱과 같은지 알아보시오
> det(A)
[1] 144
> prod(lamda$values)
[1] 144
(i) tr(A)를 구하고 고유값들의 합과 같은지 알아보시오