일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- zsh
- python
- 리눅스 마스터 1급
- 자바
- Reference Type
- OOP
- Inheritance
- Unity
- 리눅스 기초
- preprocessing
- Class
- 리눅스
- X윈도우
- literal
- 백준
- Java
- selenium
- External Scheme
- systemd
- Operator
- dbms
- 셀레니움
- X.org
- Mac
- BFS
- Entity Set
- Binary Search
- Polymolphism
- Physical Scheme
- Entity
- Today
- Total
Byeol Lo
[ADP] 4장 데이터 분석 - 다변량 분석 본문
상관분석
두 변수간의 관계를 알아보기 위해 해야하는 것이 상관분석이다. 두 변수의 상관관계를 나타내는 지표는 다음과 같다.
피어슨의 상관계수
$$\rho = Corr (X, Y) = \frac{Cov(X, Y)}{\sqrt{Var(X)Var(Y)}}$$
이때 -1 ≤ p ≤ 1 이며, X, Y가 독립이면 0의 값을 가진다. 이 모수의 피어슨의 상관계수를 추정하기 위해, 표본 상관계수r 을 사용한다.
$$r = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^n (x_i - \bar{x})} \sqrt{\sum_{i=1}^n (y_i - \bar{y})}}$$
corr(data, type = "pearson")
스피어만의 상관계수
피어슨의 상관계수는 두 변수 간의 선형관계의 크기를 측정하는 값이다. 이는 비선형적인 상관관계는 나타내지 못하기 때문에 모든 변수를 순위로 변환시켜서 두 순위 사이의 피어슨 상관계수로 쓴다.
$$\theta = \frac{\sum (r_i - \bar{r})(s_i - \bar{s})}{\sqrt{\sum (r_i - \bar{r})^2}\sqrt{\sum (s_i - \bar{s})^2}}$$
corr(data, type="spearman")
다차원 척도법
여러 대상 간의 거리가 주어질 때, 대상들을 동일한 상대적 거리를 가진 실수공간의 점들로 배치시키는 방법. 보통 자료들의 상대적 관계를 직관적으로 이해하기 위해 시각화에 더 가깝다.
data(eurodist)
eurodist
loc <- cmdscale(eurodist)
plot(loc[,1], loc[,2], type="n", main="eurodist")
text(loc[,1], loc[,2], rownames(loc), cex=0.8)
abline(v=0, h=0)
eurodist의 데이터를 가져와서 배치시켜보았다.
주성분 분석 PCA
고차원의 데이터의 정보를 최대한 보존하는 저차원 자료로 변환시키는 방법, 이 또한 깊이 있는 내용은 다른 포스트로 대체한다.
R은 다음 함수를 통해 사용할 수 있다.
princomp(data, cor=TRUE)
여기서 cor=TRUE 옵션은 주성분분석을 공분산행렬이 아닌 상관계수 행렬을 사용하여서 수행하도록 한다는 뜻이다.
library(datasets)
data(USArrests)
summary(USArrests)
fit <- princomp(USArrests, cor=TRUE)
summary(fit)
loadings(fit)
Importance of components:
Comp.1 Comp.2 Comp.3 Comp.4
Standard deviation 1.5748783 0.9948694 0.5971291 0.41644938
Proportion of Variance 0.6200604 0.2474413 0.0891408 0.04335752
Cumulative Proportion 0.6200604 0.8675017 0.9566425 1.00000000
분해되어서 다시 재결합된 변수1 부터 4까지 보여주는 것을 볼 수 있다(독립변수가 4개이기 때문). 또 첫번째 주성분이 데이터 전체의 62퍼센트를 설명할 수 있는 능력이 있으며, 갈수록 적어짐을 알 수 있다. 따라서 이를 통해 comp1, 2, 3만 사용하면 데이터(분산)의 95퍼센트를 설명할 수 있다.
Loadings:
Comp.1 Comp.2 Comp.3 Comp.4
Murder 0.536 0.418 0.341 0.649
Assault 0.583 0.188 0.268 -0.743
UrbanPop 0.278 -0.873 0.378 0.134
Rape 0.543 -0.167 -0.818
Comp.1 Comp.2 Comp.3 Comp.4
SS loadings 1.00 1.00 1.00 1.00
Proportion Var 0.25 0.25 0.25 0.25
Cumulative Var 0.25 0.50 0.75 1.00
새로 생긴 각 comp 변수 별로 원래 변수가 해당 변수에 얼마나 영향을 주고 있는지 볼 수 있다. 첫번째 변수만 보면
$$Comp.1 = 0.536 * Murder + 0.583 * Assault + 0.278 * UrbanPop + 0.543 * Rape$$
로 나타낼 수 있다.
'AI > ADP' 카테고리의 다른 글
[ADP] 4장 데이터 분석 - 분류 분석 (0) | 2024.08.03 |
---|---|
[ADP] 4장 데이터 분석 - 시계열 분석 (0) | 2024.08.02 |
[ADP] 4장 데이터 분석 - 회귀 분석(Regression Analysis) (0) | 2024.07.30 |
[ADP] 4장 데이터 분석 - 비모수 검정 (0) | 2024.07.27 |
[ADP] 4장 데이터 분석 - 통계 분석 (0) | 2024.07.25 |