공분산과 상관관계 둘 다 두 변수가 서로 선형적으로 상관관계가 있는지 확인하는 지표로 서로 뗄 수가 없는 사이다. 단, 둘의 차이점으로는, 공분산은 서로의 양, 음의 상관관계를 파악할 수 있지만, 값이 커질수록 상관관계가 커진다고 결론짓기 어려운 반면에, 상관관계는 공분산을 Scaling을 했기 때문에 둘의 상관 정도를 -1과 1사이의 값으로 측정하며, 강도까지 알 수 있게 해주는 지표이다. (앞으로 상관계수라고 언급하는 것은 모두 피어슨 상관계수다.)
cov(): covariance matrix
iris 데이터를 이용하여 연속형 변수들의 covariance를 구해보면 다음과 같다.
> cov(iris[,1:4])
Sepal.Length Sepal.Width Petal.Length Petal.Width
Sepal.Length 0.6856935 -0.0424340 1.2743154 0.5162707
Sepal.Width -0.0424340 0.1899794 -0.3296564 -0.1216394
Petal.Length 1.2743154 -0.3296564 3.1162779 1.2956094
Petal.Width 0.5162707 -0.1216394 1.2956094 0.5810063
Sepal.Length와 Petal.Length는 서로 양의 공분산을 가지므로, 양의 상관관계가 있다고 볼 수 있다.
Petal.Length와 Petal.Width 또한 서로 양의 공분산을 가진다. 여기서 Diagonal한 값들은, 각 변수의 분산이다.
cor(): Pearson Correlation
Pearson Correlation은 Continuous한 변수들의 상관관계를 측정할 때 사용되며, 공분산에 각 변수의 표준편차를 나누어서 구할 수 있다. 이 때의 상관계수를 피어슨 r이라고 하며, 적률 상관계수라고도 한다.
> cor(iris[,1:4])
Sepal.Length Sepal.Width Petal.Length Petal.Width
Sepal.Length 1.0000000 -0.1175698 0.8717538 0.8179411
Sepal.Width -0.1175698 1.0000000 -0.4284401 -0.3661259
Petal.Length 0.8717538 -0.4284401 1.0000000 0.9628654
Petal.Width 0.8179411 -0.3661259 0.9628654 1.0000000
Sepal.Width와 Sepal.Length는 음의 상관관계를 가지고있고, 그 값이 -0.11로 0과 가깝기 때문에 서로의 선형관계가 강하다고 볼 수 없다. 그에 반해 Petal.Width와 Sepal.Length는 0.81로 강한 양의 상관관계를 가져 꽃잎의 너비가 넓으면 곷받침의 길이가 길다고 결론내릴 수 있다.
Pearson Correlation 말고도 Spearman Correlation도 있다. (보통은 피어슨을 사용하고, 스피어만 상관계수를 쓸 경우 스피어만을 언급한다 :>)
cf) Spearman Correlation
스피어만 상관계수는 Ordered한 변수의 상관관계를 측정하는 데에 사용하며. 비선형적인 상관관계도 나다낸다.
이 때 쓰이는 상관계수는 순위상관계수인 Rho(p)이다.
cor.test(x, y, method = ("pearson","spearman") : 상관분석
상관계수가 통계적으로 유의한지 검정할 때는 cor.test 함수를 사용한다. method는 피어슨과 스피어만 중 변수의 특성에 맞춰서 설정해주면 된다. iris 데이터의 경우 등간척도 이상의 연속형 변수기때문에 pearson을 적용해서 상관분석을 해보면 다음과 같다.
> cor.test(iris$Sepal.Length, iris$Petal.Width, method = "pearson")
Pearson's product-moment correlation
data: iris$Sepal.Length and iris$Petal.Width
t = 17.296, df = 148, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.7568971 0.8648361
sample estimates:
cor
0.8179411
iris의 꽃받침 길이와 꽃잎의 너비 사이의 피어슨 상관계수는 0.818이므로, 꽃받침 길이가 길어질수록 꽃잎의 너비도 넓어진다고 결론내릴 수 있다. 또한 p-value는 유의수준 0.05보다 작으므로 통계적으로 유의하다.
rcorr() : 상관계수와 상관분석 동시진행 (Hmisc package)
rcorr(as.matrix(iris[,1:4]), type = 'pearson')
as.matrix(df)를 넣어 데이터프레임을 매트릭스 형태로 변환해서 넣어주어야 오류가 나지 않는다.
결과는, 위쪽 표가 상관계수, 밑에 표가 p-value이다. Sepal.Length와 Sepal.Width의 p-value는 유의수준보다 크기 때문에 둘의 상관관계는 통계적으로 유의하지 않다.
Sepal.Length Sepal.Width Petal.Length Petal.Width
Sepal.Length 1.00 -0.12 0.87 0.82
Sepal.Width -0.12 1.00 -0.43 -0.37
Petal.Length 0.87 -0.43 1.00 0.96
Petal.Width 0.82 -0.37 0.96 1.00
n= 150
P
Sepal.Length Sepal.Width Petal.Length Petal.Width
Sepal.Length 0.1519 0.0000 0.0000
Sepal.Width 0.1519 0.0000 0.0000
Petal.Length 0.0000 0.0000 0.0000
Petal.Width 0.0000 0.0000 0.0000