본문 바로가기
C++ 200제/코딩 IT 정보

상관계수 공식 풀이 : 피어슨 상관분석 예시 (S-PLUS)

by vicddory 2017. 4. 2.


변수 사이의 상관계수만을 구하고 싶을 경우 창에 아래 명령어를 입력합니다. (피어슨 상관분석에 필요)


cor(x, y, trim=0, na.method="fail", unbiased=T)

상관분석 필요 인자

x

숫자형(복소수 포함) matrix, vector 혹은 data frame 형태의 상관분석 관심변수 이름을 입력합니다. x가 matrix일 경우 열은 변수로 행은 개별 관찰치로 인식합니다. x가 data frame인 경우 숫자형이 아닌 변수는 결측치로 인식합니다.


y

또다른 관심변수의 이름을 입력합니다. 형식은 x와 같으며 x변수와 같은 길이를 가진 변수를 입력해야 합니다.


trim

낮은 확률밀도를 가진 관측치를 생략합니다. 0.5 보다 작은 값을 사용하며 생략된 관측치의 전체에 대한 비율을 나타냅니다.


na.method

상관분석 관심변수의 결측치를 어떻게 다룰지를 결정합니다.

“fail” - 결측치가 발견되면 S-PLUS는 분석을 중단합니다.

“omit” - 결측치가 포함된 관찰치는 생략하고 분석합니다.

“include” - 결측치를 값으로 인식하고 분석합니다.


unbiased

표본분산의 형태를 결정하며 디폴트값은 T입니다. T 불편성을 만족하는 표본분산인 아래 값을 분석 중에 사용하게 됩니다.


표본분산표본분산


F 표본분산인 아래 값을 분석 중에 사용하게 됩니다.


F표본분산F표본분산


다음으로 피어슨, 스피어만, 켄달의 상관계수를 이용하여 두 변수의 상관관계에 대한 검정을 하고 싶을 경우 Script File 창에 아래의 명령어를 입력합니다.


cor.test(x, y, alternative="two.sided", method="pearson")


x, y

숫자형 상관분석 vector인 x, y는 길이가 2보다 커야하며 서로 같아야 합니다. 결측값은 null 값으로 인식됩니다.


alternative

“two.sided” - 양측검정을 실시합니다.

“greater”, “less” - 단측검정을 실시합니다.


method

“pearson”(“p”) - 피어슨의 적률 상관계수를 구합니다.

“spearman”(“s”) - 스피어만의 순위 상관계수를 구합니다.

“kendall”(“k”) - 켄달의 타우 상관계수를 구합니다.

예제

다음 자료를 통해 키와 몸무게 사이에 상관관계가 있는지 알아보도록 합시다.


상관관계 예제상관관계 예제


먼저 산점도를 통해 자료의 특성을 알아보기 위한 S-PLUS 프로그램은 다음과 같습니다.


plot(HW$Height,HW$Weight,xlab="Height",ylab="Weight")


- HW$Height , HW$Weight

HW 데이터프레임에서 관심변수 Height와 Weight를 불러 옵니다.


- xlab="Height" , ylab="Weight"

X축의 이름을 Height로 Y축의 이름을 Weight로 합니다.


상관분석 결과는 아래와 같습니다.


상관관계 결과상관관계 결과


키가 커짐에 따라 몸무게도 증가하는 경향을 보이므로 상관분석을 통해 자세히 알아보도록 하겠습니다.

S-PLUS 분석

상관분석을 실행하기 위한 S-PLUS 프로그램은 다음과 같습니다.


cor.test (HW$Height , HW$Weight , alternative="two.sided" , method ="pearson")


- HW$Height , HW$Weight

HW 데이터프레임에서 관심변수 Height와 Weight를 불러 옵니다.


- alternative="two.sided"

피어슨 상관계수에 대한 양측검정을 실시합니다.


- method="pearson"

피어슨의 적률 상관계수를 구합니다.


상관분석 결과는 아래와 같습니다.


피어슨의 적률상관 계수 결과피어슨의 적률상관 계수 결과


피어슨 상관계수 p = 0라는 귀무가설에 대한 검정결과 p값이 0이므로 유의수준 5%에서 키와 몸무게 사이에는 상관관계가 없다는 귀무가설은 기각됩니다.


그리고 이때 상관계수의 값 또한 0.715 정도로 키와 몸무게 사이에는 높은 상관관계가 있음을 알 수 있습니다. 단순히 관심변수 사이의 상관계수만을 알고 싶은 경우 아래와 같은 방법을 통해 간단히 구할 수가 있습니다.


Statistics 메뉴 선택 -> Data summaries 선택 -> Correlations... 선택


아래와 같이 Correlations and Covariances 대화상자가 뜹니다.


Data Set 항목에서 HW 선택Data Set 항목에서 HW 선택


Data Set 항목에서 분석에 필요한 데이터가 있는 자료의 이름 HW를 선택한 후 Variables 항목에서 관심변수 Height와 Weight를 선택하고 결측값 처리 방법도 선택합니다.


상관분석 Type 항목에서 Correlation을 선택하고 Fraction to Trim 항목에 보통 값을 설정합니다. Save As 항목에 변수 이름을 지정하면 분석 결과가 모두 변수에 저장됩니다. 결과를 보고 싶으면 Print Results 항목을 선택하고 버튼을 누릅니다.


피어슨 상관계수 결과는 아래와 같습니다.


상관계수 확인상관계수 확인


Height와 Weight에 대한 상관계수가 매트릭스 형태로 나타나며 자기 자신과의 상관관계는 1로 Height와 Weight간의 상관관계는 0.715 정도로 높은 상관관계를 나타내 주고 있습니다.



댓글