R 과데이터분석 상관관계 양창모 청주교육대학교컴퓨터교육과 2015 년여름 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 1 / 20
상관관계 양적변수quantitative variables 사이의관계relationships를나타내기위하여상관계수correlation coefficients를사용한다. ± 기호를사용하여관계의방향을나타낸다. -1에서 1사이의값은관계의강도를나타낸다. 변수간상관계수가크면변수간의연관관계가존재한다는의미이다. 그러나이것이인과관계를나타내는것은아니다. 변수가서로독립이라면변수간상관계수는 0 이다. 그러나상관계수가 0 이라해서변수가서로독립임을의미하지는않는다. 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 2 / 20
상관관계 R에기본적으로설치되어있는 state.x77 데이터를사용한다. 1977년미국 50개주의인구, 수입, 문맹율illiteracy rate, 기대수명life expectancy, 살인사건비율murder rate, 고등학교졸업률high school graduation rate 기본설치이외에 psych 패키지와 ggm 패키지를사용한다. > head(state.x77) Population Income Illiteracy Life Exp Murder HS Grad Frost Area Alabama 3615 3624 2.1 69.05 15.1 41.3 20 50708 Alaska 365 6315 1.5 69.31 11.3 66.7 152 566432 Arizona 2212 4530 1.8 70.55 7.8 58.1 15 113417 Arkansas 2110 3378 1.9 70.66 10.1 39.9 65 51945 California 21198 5114 1.1 71.71 10.3 62.6 20 156361 Colorado 2541 4884 0.7 72.06 6.8 63.9 166 103766 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 3 / 20
상관계수의종류 Pearson, Spearman, Ken- dall, partial, polychoric, polyserial 등여러 상관계수가있다. 보통상관계수라하면 Pearson 상관계수를의미한다. 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 4 / 20
공분산共分散, covariance 두변수사이의상관정도, 둘사이의정의되는관계의밀접도를측정하는 측도로써, Cov(X, Y ) 라표기한다. 만약 2 개의변수중하나의값이상승하는경향을보일때, 다른값도 상승하는경향이있다면, 공분산은양수이며 반대로하나가상승하고다른하나가감소한다면, 공분산은음수가된다. 이처럼공분산은상관관계의상승혹은하강이라고이해할수도있으나, 2 개 변수의측정단위의크기에따라값이달라지므로상관분석을통해정도를 파악하기는부적절하다. Cov(X, Y ) = Σ(x x)(y ȳ) n 1 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 5 / 20
Pearson, Spearman, Kendall 상관계수 Pearson 상관계수두양적변수quantitative variables의선형관계의정도를나타낸다. 두변수의공분산를사용하여계산한다. 연속형값에적합하다 ( 예, 국어점수과영어점수 ). Spearman 상관계수rank correlation coefficient 두변수의실제값대신값의순위를사용하여상관계수를계산한다. Pearson 상관계수와달리비선형관계의연관성을파악할수있다. 순서가있는데이터에적용할수있다 ( 예, 국어석차과영어석차 ). Kendall의순위상관계수rank correlation coefficient (X, Y ) 형태의순서쌍으로값이있을때 x i < x j 일때 y i < y j 이면 concordant, x i < x j 일때 y i > y j 이면 discordant라고정의한다. Kendall 상관계수는 concordant의수가 discordant의수에비하여얼마나많은지그비율로계산한다. 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 6 / 20
cor() 함수 세가지상관계수를계산한다. cor(x, method= pearson ) x - 데이터프레임의행렬 method - 계산할상관계수 (pearson, spearman, kendall) 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 7 / 20
Pearson 상관계수해석 r이 -1.0과 -0.7 사이이면, 강한음적선형관계, r이 -0.7과 -0.3 사이이면, 뚜렷한음적선형관계, r이 -0.3과 -0.1 사이이면, 약한음적선형관계, r이 -0.1과 +0.1 사이이면, 거의무시될수있는선형관계, r이 +0.1과 +0.3 사이이면, 약한양적선형관계, r이 +0.3과 +0.7 사이이면, 뚜렷한양적선형관계, r이 +0.7과 +1.0 사이이면, 강한양적선형관계 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 8 / 20
cor() 함수 > states<- state.x77[,1:6] > cor(states) Population Income Illiteracy Life Exp Murder HS Grad Population 1.00000000 0.2082276 0.1076224-0.06805195 0.3436428-0.09848975 Income 0.20822756 1.0000000-0.4370752 0.34025534-0.2300776 0.61993232 Illiteracy 0.10762237-0.4370752 1.0000000-0.58847793 0.7029752-0.65718861 Life Exp -0.06805195 0.3402553-0.5884779 1.00000000-0.7808458 0.58221620 Murder 0.34364275-0.2300776 0.7029752-0.78084575 1.0000000-0.48797102 HS Grad -0.09848975 0.6199323-0.6571886 0.58221620-0.4879710 1.00000000 > cor(states, method="spearman") Population Income Illiteracy Life Exp Murder HS Grad Population 1.0000000 0.1246098 0.3130496-0.1040171 0.3457401-0.3833649 Income 0.1246098 1.0000000-0.3145948 0.3241050-0.2174623 0.5104809 Illiteracy 0.3130496-0.3145948 1.0000000-0.5553735 0.6723592-0.6545396 Life Exp -0.1040171 0.3241050-0.5553735 1.0000000-0.7802406 0.5239410 Murder 0.3457401-0.2174623 0.6723592-0.7802406 1.0000000-0.4367330 HS Grad -0.3833649 0.5104809-0.6545396 0.5239410-0.4367330 1.0000000 수입 income 과고등학교졸업률 HS Grad 은강한양적상관관계가있다. 문맹률 Illiteracy 와기대수명 Life Exp 는강한음적상관관계가있다. 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 9 / 20
cor() 함수 두인수를사용하여원하는변수들의상관계수를구할수있다. > x <- states[,c("population","income","illiteracy","hs Grad")] > y <- states[,c("life Exp", "Murder")] > head(x) Population Income Illiteracy HS Grad Alabama 3615 3624 2.1 41.3 Alaska 365 6315 1.5 66.7 Arizona 2212 4530 1.8 58.1 Arkansas 2110 3378 1.9 39.9 California 21198 5114 1.1 62.6 Colorado 2541 4884 0.7 63.9 > head(y) Life Exp Murder Alabama 69.05 15.1 Alaska 69.31 11.3 Arizona 70.55 7.8 Arkansas 70.66 10.1 California 71.71 10.3 Colorado 양창모 ( 청주교육대학교컴퓨터교육과 72.06) 6.8 Data Analysis using R 2015년여름 10 / 20
cor() 함수 두인수를사용하여원하는변수들의상관계수를구할수있다. > x <- states[,c("population","income","illiteracy","hs Grad")] > y <- states[,c("life Exp", "Murder")] > cor(x,y) Life Exp Murder Population -0.06805195 0.3436428 Income 0.34025534-0.2300776 Illiteracy -0.58847793 0.7029752 HS Grad 0.58221620-0.4879710 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 11 / 20
상관관계의유의성검정 귀무가설은상관이없다. 즉모집단의상관계수는 0이다. cor.test() 함수를사용하여상관관계의유의성검정을한다. cor.test(x, y, alternative = "two.side", method ="pearson" ) x, y - 상관계수를계산할변수 alternative - ("two.side", "less", "greater") method - ("pearson", "kendall", "spearman") 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 12 / 20
상관관계의유의성검정 다음예는기대수명과살인사건율의상관관계를검정한다. 귀무가설은 상관계수가 0 이다 이며 p value = 1.258e 08 < 0.05 이므로 귀무가설을기각한다. 기대수명과살인사건율의상관계수는 0 이아니다 라고결론내릴수있다. > cor.test(states[,3], states[,5]) Pearson s product-moment correlation data: states[, 3] and states[, 5] t = 6.8479, df = 48, p-value = 1.258e-08 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.5279280 0.8207295 sample estimates: cor 0.7029752 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 13 / 20
상관관계의유의성검정 cor.test() 함수는한번에하나의상관관계만을검정할수있다. psych 라이브러리의 corr.test() 함수를사용하여여러변수의상관관계를검정할수있다. cor.test(x, y, method = ) x, y - 상관계수를계산할변수 method - ("pearson", "kendall", "spearman") 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 14 / 20
상관관계의유의성검정 cor.test() 함수는한번에하나의상관관계만을검정할수있다. psych 라이브러리의 corr.test() 함수를사용하여여러상관관계를 검정할수있다. > install.packages("psych") > library(psych) > corr.test(states) Call:corr.test(x = states) Correlation matrix Population Income Illiteracy Life Exp Murder HS Grad Population 1.00 0.21 0.11-0.07 0.34-0.10 Income 0.21 1.00-0.44 0.34-0.23 0.62 Illiteracy 0.11-0.44 1.00-0.59 0.70-0.66 Life Exp -0.07 0.34-0.59 1.00-0.78 0.58 Murder 0.34-0.23 0.70-0.78 1.00-0.49 HS Grad -0.10 0.62-0.66 0.58-0.49 1.00 Sample Size [1] 50 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 15 / 20
상관관계의유의성검정 Probability values (Entries above the diagonal are adjusted for mu Population Income Illiteracy Life Exp Murder HS Grad Population 0.00 0.59 1.00 1.0 0.10 1 Income 0.15 0.00 0.01 0.1 0.54 0 Illiteracy 0.46 0.00 0.00 0.0 0.00 0 Life Exp 0.64 0.02 0.00 0.0 0.00 0 Murder 0.01 0.11 0.00 0.0 0.00 0 HS Grad 0.50 0.00 0.00 0.0 0.00 0 To see confidence intervals of the correlations, print with the s 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 16 / 20
상관관계를알아보기쉽게 산포도 > layout(matrix(c(1,2,3,4), 2, 2, byrow = TRUE)) > plot(states[,"income"],states[,"murder"]) > plot(states[,"income"],states[,"life Exp"]) > plot(states[,"murder"],states[,"life Exp"]) > plot(states[,"hs Grad"],states[,"Income"]) 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 17 / 20
상관관계를알아보기쉽게 산포도 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 18 / 20
상관관계를알아보기쉽게 살펴봐야할열의수가맣으면한눈에숫자가들어오지않을수있다. symnum() 함수는특정범위의값을문자로치환하여보기쉽도록한다. > symnum(cor(states[,2:6])) In Il LE M HG Income 1 Illiteracy. 1 Life Exp.. 1 Murder,, 1 HS Grad,,.. 1 attr(,"legend") [1] 0 0.3. 0.6, 0.8 + 0.9 * 0.95 B 1 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 19 / 20
상관관계를알아보기쉽게 corrgram 패키지는상관계수를시각화하는데유용한패키지이다. 파란색은양의상관계수, 빨간색은음의상관계수를의미한다. 상관계수의절대값이클수록색은진해진다. > library(corrgram) > corrgram(cor(states[,2:6]), type="corr", upper.panel=panel.conf) 양창모 ( 청주교육대학교컴퓨터교육과 ) Data Analysis using R 2015 년여름 20 / 20