분산(Varicance)
- 분산은 데이터가 얼마나 퍼져있는 지를 측정하는 방법이다.
- 각 값들의 평균으로부터 차이의 제곱 평균이다.
- 분산을 구하기 위해서 일반적으로 평균을 먼저 계산해야한다.
1 |
|
1 |
|
- 위의 두 데이터를 통해 벌어져있는 정도의 차이를 쉽게 확인할 수 있다.
- $\overline{X}$ 는 평균, $N$ 은 관측의 수(샘플의 수)이다.
- $v$ 혹은 분산은 일반적으로 소문자 v로 표기되며 필요에 따라 $\sigma^{2}$로 표기한다.
1 |
|
1 |
|
- 난수를 생성할 때, v1은
25 ~ 75
까지50
범위를, v2는0 ~ 100
까지100
범위를 바탕으로 2배 정도 차이나게 생성했지만, 분산의 차이는 4배정도 차이가 난다.
분산의 쉬운 계산
1 |
|
- 앞서 계산했던 결과와 조금 다르다.
- 그 이유는 분산을 계산하는 방법이 모집단이냐 혹은 샘플이냐에 따라서 달라지기 때문이다.
- 모집단의 분산$\sigma^{2}$은 모집단의 PARAMETER(aspect, property, attribute, etc)이다.
- 샘플의 분산$s^{2}$은 샘플의 STATISTIC(estimated attribute)이다.
- 샘플 분산 $s^{2}$ 는 모집단 분산 $\sigma^{2}$의 추정치다.
- 일반적으로, 샘플의 분산을 계산 할 때 $N-1$로 나누어야 한다.
- 앞서 우리가 데이터를 통해 계산했던 방식은 모집단의 분산이다.
- 그렇기 때문에 자유도를 0 으로 설정하는 경우, 동일한 값을 얻을 수 있다.
1 |
|
표준편차(Standard Deviation)
- 표준편차는 분산의 값에 $\sqrt()$를 씌운 것이다.
분산과 표준편차
- 표준편차는 분산이 평균값에 비해서 스케일이 커지는 문제가 있어서 이를 해결하기 위해 제곱된 스케일을 낮춘 방법이다.
- 이는 많은 통계 분석 프로세스에서 표준편차를 사용하여 게산하는 이유 중 하나다.
1 |
|
공분산(Covariance)
- 공분산은 1개의 변수 값이 변화할 때 다른 변수가 어떠한 연관성을 나타내며 변하는 지를 측정하는 것이다.
- 첫번째 그래프는 음(nagative)의 공분산 값을 갖는다.
- 두번째 그래프는 양 변수의 높고 낮음에 대해 관련성을 알 수 없다. 0에 가까운 공분산 값을 갖는다.
- 세번재 그래프는 양 변수간의 공분산 값은 양(positive)의 값이다.
공분산 이해하기
- 큰 값의 공분산은 두 변수간의 큰 연관성을 나타낸다.
- 만약 변수들이 다른 스케일을 가지고 있다면 공분산은 실제 변수의 연관성에 관계 없이 영향을 받게 될 것이다.
- 두 변수가 연관성이 적더라도 큰 스케일을 가지고 있다면, 연관성이 높지만 스케일이 작은 변수들에 비해서 높은 공분산 값을 갖게 될 것이다.
1 |
|
분산 공분산 매트릭스(Variance covariance matrix)
1 |
|
- 이러한 매트릭스(matrix)를 분산 공분산 매트릭스(variance-covariance matrix)라고 표현하며, 대각선 부분은 공분산이 아닌, 분산을 표현한다.
- 두 데이터셋(a-b, c-d)은 동일한 연관성을 갖고 있지만 ($x = y$), 계산된 공분산의 값은 매우 다르다.
상관 계수(Correlation coefficient)
- 분산에서 표준편차를 사용했던 것처럼, 공분산의 스케일을 조정할 수 있다.
- 공분산을 두 변수의 표준편차로 각각 나눠주면 스케일을 조정할 수 있으며 그것을 상관계수라고 부른다.
- 상관계수는 -1에서 1까지로 정해진 범위 안의 값만을 가지며 선형연관성이 없는 경우 0에 근접하게 된다.
- 대부분의 경우, 상관계수는 공분산에 비해 더 좋은 지표로 사용된다.
- 공분산은 이론상 모든 값을 가질 수 있지만, 상관계수는
-1 ~ 1
사이로 정해져 비교하기 쉽다. - 공분산은 항상 스케일, 단위를 포함하고 있지만, 상관계수는 이에 영향을 받지 않는다.
- 상관계수는 데이터의 평균 혹은 분산의 크기에 영향을 받지 않는다.
- 공분산은 이론상 모든 값을 가질 수 있지만, 상관계수는
- 상관계수는 일반적으로 소문자 $r$로 표현된다.
1 |
|
- 상관계수가 1이라는 것은 한 변수가 다른 변수에 대해 완벽한 양의 선형 관계를 갖고 있다는 것을 의미한다.
스피어먼 상관 계수(Spearman Correlation)
- 상관계수(correlation coefficient)는 피어슨 상관계수(Pearson correlation)라 부르며 이는 데이터로부터 분산과 같은 통계치를 계산할 수 있을 때 사용가능하다.
- 만약 데이터가 뉴메릭(numeric)이 아니라, 카테고리컬(categorical)이라면 스피어먼 상관 계수(spearman correlation coefficien)는 값들에 대해 순서 혹은 랭크(rank)를 매기고, 그를 바탕으로 상관 관계(correlation)을 측정하는 논파라메트릭(Non-parametiric)한 방식이다.
직교(Orthogonality)
- 직교는 벡터 혹은 매트릭스가 서로 수직으로 있는 상태를 나타낸다.
- 좌표상에 있는 거의 모든 벡터는 다른 벡터와 상관이 아주 작게라도 있다.
- 하나가 증가할 때, 다른 하나도 증가하는 경향을 파악하는 것이 공분산이다.
- 딱 하나, 수직인 벡터만 상관관계가 전혀 없다.
벡터의 직교 확인
- 임의의 두 벡터의 내적값이 0이라면 서로 수직으로 배치되어 있다.
1 |
|
- 그래프상으로 명확하게 벡터들이 서로 수직하다.
- 내적값은 0이다.
단위 벡터(Unit Vectors)
- 선형대수에서 단위벡터란 ‘단위길이(1)’을 갖는 모든 벡터이다.
- $v$ = [1, 2, 2]
- $\vert\vert v\vert\vert$ = $\sqrt{1^2 + 2^2 + 2^2}$ = 3
- $\hat{v}$ = 1 / $\vert\vert v\vert\vert$ $\cdot$ $v$ = $1 \over 3$ $\cdot$ [1, 2, 2] = [$1 \over 3$, $2 \over 3$, $2 \over 3$]
- $\vert\vert\hat{v}\vert\vert$ = 1
- 아래는 각각 1, 2, 3차원의 단위 벡터 입니다.
- $\mathbb{R}$ unit vector: $\hat{i} = \begin{bmatrix} 1 \end{bmatrix}$
- $\mathbb{R}^2$ unit vectors: $\hat{i} = \begin{bmatrix} 1 \ 0 \end{bmatrix}$, $\hat{j} = \begin{bmatrix} 0 \ 1 \end{bmatrix}$
- $\mathbb{R}^3$ unit vectors: $\hat{i} = \begin{bmatrix} 1 \ 0 \ 0 \end{bmatrix}$, $\hat{j} = \begin{bmatrix} 0 \ 1 \ 0 \end{bmatrix}$, $\hat{k} = \begin{bmatrix} 0 \ 0 \ 1 \end{bmatrix}$
1 |
|
벡터를 단위 벡터의 조합으로 표기
- 모든 벡터는 단위 벡터의 선형 조합으로 표기된다.
v = [5, 30]
= [1, 0] * 5 + [0, 1] * 30
= 5 $\cdot$ $\hat{i}$ + 30 $\cdot$ $\hat{j}$ - 위의 예시처럼, $\mathbb{R}^2$내에 있는 임의의 벡터를 단위 벡터의 조합으로 표기 할 수 있다.
생성(Span)
- 생성은 주어진 두 벡터의 (합이나 차와 같은) 조합으로 만들 수 있는 모든 가능한 벡터의 집합이다.
선형 관계의 벡터(Linearly Dependent Vector)
- 두 벡터가 같은 선상에 있는 경우 이 벡터들은 선형 관계에 있다고 표현한다.
- 두 벡터들은 조합을 통해 선 외부의 새로운 백터를 생성할 수 없다.
- 이러한 벡터의 생성은 평면 공간이 아닌 벡터가 이미 올려져 있는 선으로 제한된다.
비선형 관계의 벡터(Linearly Independent Vector)
- 같은 선상에 있지 않은 벡터들은 선형적으로 독립되어 있다고 표현한다.
- 주어진 공간(2개의 벡터의 경우 $R^2$ 평면)의 모든 벡터를 조합을 통해 만들어 낼 수 있다.
1 |
|
1 |
|
기저(Basis)
- 벡터 공간 $V$ 의 기저는, $V$ 라는 공간을 채울 수 있는 선형 관계에 있지 않은 벡터들의 모음이다.(Span의 역개념)
- 예를 들어, 위의 그림에서 2개의 벡터(빨강, 파랑)는 벡터 공간 $\mathbb{R}^2$ 의 기저 이다.
직교 기저(Orthogonal Basis)
- 직교 기저는 기저에 추가로 직교한 조건이 붙는, 즉 주어진 공간을 채울 수 있는 서로 수직인 벡터들이다.
정규 직교 기저(Orthonormal Basis)
- 정규 직교 기저는 직교 기저에 추가로 정규 조건이 붙은 것으로, 길이가 서로 1인 벡터들이다.
랭크(Rank)
- 매트릭스의 랭크는 매트릭스의 열을 이루고 있는 벡터들로 만들 수 있는 (span) 공간의 차원이다.
- 매트릭스의 차원과는 다를 수 있는데, 그 이유는 행과 열을 이루고 있는 벡터들 가운데 서로 선형 관계가 있을 수 있기 때문이다.
- 랭크를 확인하는 방법은 여러가지가 있지만, 그 중 하나인 가우스 소거법(Gaussian Elimination)을 통해 알아본다.
가우스 소거법(Gaussian Elimination)
- 가우스 소거법(Gaussian Elimination)은 주어진 매트릭스를 ‘사다리꼴 행렬(Row-Echelon form)’으로 바꾸는 계산 과정이다.
- 사다리꼴 행렬(Row-Echelon form)은 각 행에 대해 왼쪽에 1, 그 이후 부분은 0으로 이뤄진 형태이다.
- 이러한 매트릭스는 일반적으로 삼각 행렬(upper-triangular) 형태를 갖고있다.
- 3행을 1행*2 로 뺀다.
- 3행을 2행으로 더한다.
- ‘맨 마지막 줄이 0, 0, 0이다.’ 라는 것은 3개의 행이 선형 관계가 있다는 의미이다.
(다른 행들의 스칼라 곱과 합으로 표현된다.)
$r_3$ = $2 \cdot\ r_1$ - $1 \cdot\ r_2$
$y$ = $a \cdot\ x + b$
- 처음에 주어졌던 매트릭스
- 의 랭크는 2이며, 이는 3x3 매트릭스지만 $\mathbb{R}^{3}$ 공간이 아닌 $\mathbb{R}^{2}$ 를 벡터로 만들어 낼 수 있다.
선형 투영(Linear Projections)
파이썬으로 과정 구현
- $\mathbb{R}^{2}$ 공간의 임의의 선 $L$을 가정한다.
1 |
|
- 임의의 벡터 $v$가 선 위에 있는 경우, $v$는 아무리 스케일을 변화시켜도 결국 선 위에 있다.
1 |
|
- 녹색 벡터를 $v$라고 하고, 처음에 주어진 선 $L$은 $\mathbb{R}$ 공간내의 모든 $v$와 동일하다.
- 이를 식으로 표현하면,
- $L$ 위에 투영(Project) 하기 위한 새로운 $w$라는 벡터를 추가한다.
1 |
|
표기법(Notation)
- 투영을 표기하는 방법은 아래와 같다.
1 |
|
- 회색벡터($proj_{L}(w)$)는 빨간벡터($w$)의 녹색벡터($L$)에 대한 투영이며, 녹색 벡터를 기준으로 표기 될 수 있다.
- $L$이 $x$축과 평행하지 않은 조금 더 복잡한 상황일 경우는 아래와 같다.
1 |
|
1 |
|
- $L$과 Orthogonal한 노란벡터를 사용해서 계산하는데, 이는 투영 $L$에서 시작해서 $w$로 도착하는 벡터이다.
- 벡터의 합과 차를 기억한다면, 회색 벡터 + 노란 벡터는 빨간 벡터가 된다.
- 노란 벡터는 빨간 벡터에서 회색 벡터를 뺀 것과 동일한 내용이다.
- 이를 식으로 표현하면 아래와 같다.
- 이전에 $L$(회색)에 대한 $w$(빨강)의 투영을 $cv$(녹색 * 스칼라)로 표기했다.
- 노란 벡터는 빨간 벡터에서 회색 벡터를 뺀것과 동일하다.
- 이는 아래와 같이 표기할 수 있다.
- 회색(녹색도 마찬가지)과 노란색은 서로 수직 상태에 있기 때문에 두 벡터의 내적값은 0이 나온다.
- 즉, 회색 $\cdot$ 노란색 = 0이며 식은 아래와 같다.
- 식을 풀게 되면,
- 로 바꿀 수 있으며, $cv = proj_{L}(w)$이므로 양변에 $v$를 곱하여,
- 라는 최종 식을 얻을 수 있다.
선형 투영의 이유
- 2차원에 있는 초록색 벡터를 표시하기 위해서는 x와 y라는 두 개의 피쳐(feature)가 필요하다.
- 이 때, 초록색 벡터를 x축에 투영한다면 초록색 벡터가 가지고 있는 의미를 표현하기 위해서 x만큼의 피쳐만 쓰면 된다.
- y가 가지고 있던 데이터가 사라지는 대신 피쳐가 한 개 줄어들기 때문에 메모리나 알고리즘의 코스트(cost)가 낮아진다.
- 궁극적으로는 데이터 분석을 하기 위해 몇 백개의 피쳐를 사용할 때 의미가 없거나 크거나 작은 것들을 구분해서 없거나 작은 것은 제거하면서 원래 데이터가 제공하고자 하는 인사이트는 충분히 살릴 수 있는 차원 축소의 근본이 되는 기술이라고 할 수 있다.
- 빅데이터가 여러 개 있다면 이를 활용하기 위한 물리적 메모리, 딥러닝을 적용하기 위한 컴퓨터 파워 등이 절약이 된다는 장점이 있고 데이터 로스(loss)가 있음에도 불구하고 충분히 유의미한 결론을 도출할 수 있다는 데에 의의가 있다.