SW/R

R : 상관분석

얇은생각 2019. 2. 13. 12:30
반응형

상관 분석

상관 분석은 두 변수 X와 Y 간의 선형성의 정도를 측정하는 통계량을 뜻합니다. 아래 그림과 같이 정의됩니다.




r 지수

일반적으로 -1 <= r <= 1 범위를 가집니다. 양수일 때는 양의 상관관계를 가집니다. 반대로 음수일 때는 음의 상관관계를 가집니다. 1이나 -1에 근접할수록 상관성이 높습니다. 아래 예시를 참고하세요.


r의 값에 따라 그래프 상관 관계가 보이시나요?



음주 정도와 혈중 알코올 농도의 상관도 분석

beers = c(5,2,9,8,3,7,3,5,3,5) # 맥주를 먹은 잔 수
bal = c(0.1,0.03,0.19,0.12,0.04,0.0095,0.07,0.06,0.02,0.05) # 혈중 알코올 농도의 값
tbl = data.frame(cbind(beers,bal)) # 데이터 프레임 선언
tbl; class(tbl) # 클래스 선언
plot(bal~beers,data=tbl) # 산점도
res=lm(bal~beers,data=tbl) # 회귀식 도출
abline(res) # 회귀선그리기
cor(beers,bal) # 상관성 분석 시행


상관도를 통해 맥주를 많이 먹으면 혈중 알코올 농도가 올라가는 결론을 얻을 수 있습니다.



tbl = data.frame(cbind(beers,bal))

data.frame

- 데이터를 테이블 형태로 관리합니다.

cbind()

- 두 벡터를 컬럼(열) 방향으로 합친다

rbind()

- 두  벡터를 행 방향으로 합친다)



plot(bal~beers,data=tbl)

두 벡터 데이터를 가지고 산점도를 그립니다. plot(tbl), plot(tbl[,1],tbl[,2]) 도 동일한 결과 도출됩니다.



res=lm(bal~beers,data=tbl)

산점도를 가장 잘 표현할 수 있는 선형 모델(회귀식)을 구합니다.



abline(res) # 선그리기

위에서 구한 선형모델을 활용합니다. 값을 통해 산점도 위에 선을 그립니다.



cor(beers,bal) # 상관성 분석 시행

두 벡터자료를 파라미터로 넣어줍니다. 두 벡터값에 따라 상관계수를 계산합니다.



여러 변수들간의 상관 계수를 동시에 구하는 방법

cor(iris[,1:4]) # 4개 변수간 상관성 분석
# Sepal.Length Sepal.Width Petal.Length
# Sepal.Length 1.0000000 -0.1175698 0.8717538
# Sepal.Width -0.1175698 1.0000000 -0.4284401
# Petal.Length 0.8717538 -0.4284401 1.0000000
# Petal.Width 0.8179411 -0.3661259 0.9628654
# Petal.Width
# Sepal.Length 0.8179411
# Sepal.Width -0.3661259
# Petal.Length 0.9628654
# Petal.Width 1.0000000


위 값을 통해 변수간의 상관계수를 알 수 있습니다.

반응형