티스토리 뷰
INTRO
1. 상관 분석(Correlation Analysis)
- 피어슨 상관계수(Pearson Correlation Coefficient, PCC)
- 스피어만 상관계수(Spearman's Rank Correlation Coefficient, SRCC)
2. 다차원 척도법(Multi-Dimensional Scailing, MDS)
3. 주성분 분석(Principal Component Analysis, PCA)
1. 상관 분석
- 스피어만 상관계수
피어슨의 상관계수는 두 변수 간의 선형관계의 크기를 측정하는 값으로 비선형적인 상관관계는 나타내지 못한다.
스피어만 상관계수는 두 변수 간의 비선형적인 관계도 나타낼 수 있는 값으로, 한 변수를 단조 증가 함수로 변환하여 다른 변수를 나타낼 수 있는 정도를 나타낸다.
스피어만의 상관계수는 두 변수를 모두 순위로 변환시킨 후 두 순위 사이의 피어슨 상관계수로 정의된다.
$
여기서, -1 \leq \theta \leq 1
$
$
r_i는 {x_1,x_2,...,x_n}에서 x_i의 순위
$
$
s_i는 {y_1,y_2,...,y_n}에서 y_i의 순위
$
[예제] mtcars 데이터를 이용한 상관분석
dataset
package "Hmisc" mtcars
R console> install.packages("Hmisc")
Spearman's Rank Correlation Coefficient 구하기
test_correlation_analysis_SRCC.R
rm(list=ls())
## Ex. Hmisc
library(Hmisc)
data(mtcars)
head(mtcars)
tail(mtcars)
# correlation coefficient and p-value for mtcars dataset
rcorr(as.matrix(mtcars), type="spearman")
출력결과
> ## Ex. Hmisc
> library(Hmisc)
> data(mtcars)
> head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
> tail(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.7 0 1 5 2
Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2
Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.5 0 1 5 4
Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.5 0 1 5 6
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.6 0 1 5 8
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.6 1 1 4 2
> # correlation coefficient and p-value for mtcars dataset
> rcorr(as.matrix(mtcars), type="spearman")
mpg cyl disp hp drat wt qsec vs am gear carb
mpg 1.00 -0.91 -0.91 -0.89 0.65 -0.89 0.47 0.71 0.56 0.54 -0.66
cyl -0.91 1.00 0.93 0.90 -0.68 0.86 -0.57 -0.81 -0.52 -0.56 0.58
disp -0.91 0.93 1.00 0.85 -0.68 0.90 -0.46 -0.72 -0.62 -0.59 0.54
hp -0.89 0.90 0.85 1.00 -0.52 0.77 -0.67 -0.75 -0.36 -0.33 0.73
drat 0.65 -0.68 -0.68 -0.52 1.00 -0.75 0.09 0.45 0.69 0.74 -0.13
wt -0.89 0.86 0.90 0.77 -0.75 1.00 -0.23 -0.59 -0.74 -0.68 0.50
qsec 0.47 -0.57 -0.46 -0.67 0.09 -0.23 1.00 0.79 -0.20 -0.15 -0.66
vs 0.71 -0.81 -0.72 -0.75 0.45 -0.59 0.79 1.00 0.17 0.28 -0.63
am 0.56 -0.52 -0.62 -0.36 0.69 -0.74 -0.20 0.17 1.00 0.81 -0.06
gear 0.54 -0.56 -0.59 -0.33 0.74 -0.68 -0.15 0.28 0.81 1.00 0.11
carb -0.66 0.58 0.54 0.73 -0.13 0.50 -0.66 -0.63 -0.06 0.11 1.00
n= 32
P
mpg cyl disp hp drat wt qsec vs am gear carb
mpg 0.0000 0.0000 0.0000 0.0000 0.0000 0.0071 0.0000 0.0008 0.0013 0.0000
cyl 0.0000 0.0000 0.0000 0.0000 0.0000 0.0006 0.0000 0.0022 0.0008 0.0005
disp 0.0000 0.0000 0.0000 0.0000 0.0000 0.0081 0.0000 0.0001 0.0003 0.0014
hp 0.0000 0.0000 0.0000 0.0023 0.0000 0.0000 0.0000 0.0416 0.0639 0.0000
drat 0.0000 0.0000 0.0000 0.0023 0.0000 0.6170 0.0102 0.0000 0.0000 0.4947
wt 0.0000 0.0000 0.0000 0.0000 0.0000 0.2148 0.0004 0.0000 0.0000 0.0036
qsec 0.0071 0.0006 0.0081 0.0000 0.6170 0.2148 0.0000 0.2644 0.4182 0.0000
vs 0.0000 0.0000 0.0000 0.0000 0.0102 0.0004 0.0000 0.3570 0.1170 0.0000
am 0.0008 0.0022 0.0001 0.0416 0.0000 0.0000 0.2644 0.3570 0.0000 0.7264
gear 0.0013 0.0008 0.0003 0.0639 0.0000 0.0000 0.4182 0.1170 0.0000 0.5312
carb 0.0000 0.0005 0.0014 0.0000 0.4947 0.0036 0.0000 0.0000 0.7264 0.5312
[예제] test_data 이용한 상관분석
Spearman's Rank Correlation Coefficient 구하기
test_correlation_analysis_SRCC.R
...
## Ex. test
test = read.csv("~/R_coding/test_data.csv")
test
plot(test)
rcorr(as.matrix(test),type="spearman")
출력결과
...
> ## Ex. test
> test = read.csv("~/R_coding/test_data.csv")
> test
korean math english science
1 85 80 80 90
2 75 60 70 100
3 65 75 69 50
4 78 40 79 80
5 59 50 80 67
6 60 64 95 89
7 90 70 98 60
8 100 78 97 79
9 99 90 67 89
10 91 98 80 80
11 70 50 59 100
> plot(test)
> rcorr(as.matrix(test),type="spearman")
korean math english science
korean 1.00 0.65 0.20 0.00
math 0.65 1.00 0.16 -0.09
english 0.20 0.16 1.00 -0.42
science 0.00 -0.09 -0.42 1.00
n= 11
P
korean math english science
korean 0.0299 0.5517 1.0000
math 0.0299 0.6462 0.7937
english 0.5517 0.6462 0.1926
science 1.0000 0.7937 0.1926
반응형
'R' 카테고리의 다른 글
(macOS)[R] 다변량 분석 : 상관 분석(Correlation Analysis) - 4 (0) | 2022.04.17 |
---|---|
(macOS)[R] 다변량 분석 : 상관 분석(Correlation Analysis) - 3 (0) | 2022.04.16 |
(macOS)[R] 다변량 분석 : 상관 분석(Correlation Analysis) - 1 (0) | 2022.04.16 |
(macOS)[R] 기초 통계 분석 : 최적 회귀 방정식 선택(설명변수 선택) - 3 (0) | 2022.04.15 |
(macOS)[R] 기초 통계 분석 : 최적 회귀 방정식 선택(설명변수 선택) - 2 (0) | 2022.04.15 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Templates
- github
- 라즈베리파이
- MacOS
- Pandas
- pyserial
- template
- DS18B20
- Regression
- COVID-19
- 코로나
- DAQ
- Python
- Django
- 자가격리
- SSH
- sublime text
- r
- Model
- Raspberry Pi
- git
- raspberrypi
- ERP
- CSV
- arduino
- 확진
- analysis
- server
- 코로나19
- vscode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함