본문 바로가기

배운 책들 정리/만만한 통계 : R 활용

0220 만만한 통계 R - 상관계수 계산 및 유의성 검정, 보건의료(7,17)

C7 상관계수 계산하기

1) 상관관계

상관계수 : 기술통계 값의 범위는

-1 <= r < 0 

0 < r <= +1 

2가지

- 수치로 비교하는 것이며, 음수와 양수의 비교로 하는 것이 아님 (0.5보다 -0.7이 더 큰 상관관계수)

 

2) 상관관계의 종류

변수가 같은 방향이면 직접 상관관계 = 양의 상관관계

변수가 반대 방향이면 간접 상관관계 = 음의 상관관계

* 강도 1에 가까울 수록 크다는 것. (강도)

* 같은 방향이라는건 크다는 것 (방향)

 

선형관계인지 확인을 먼저 해야 함 (회귀분석을 하기전)

 

3) 결정계수 (상관계수의 제곱)

다른 변수의 분산과 공유되는 한 변수의 분산의 비율

설명할 수 있는 변동량의 비율이 x%가 된다.

회귀분석에서 사용할 때 변하는 양에 대해서 얼만큼 설명할 수 있는지를 설명할 때 사용.

설명력을 높이기 위해 변수를 추가하는 경우가 많음

 

4) 상관관계의 주의

상관관계 = 연관성

상관관계가 인과관계와는 같지 않다.

 

5) 실습1 (상관계수 구하기)

# 상관계수
x <- c(2,4,5,6,4,7,8,5,6,7)
y <- c(3,2,6,5,3,6,5,4,4,5)
# x편차 = x값 - x평균
x_bar <- mean(x)
x_bar
x_dev <- x-x_bar
x_dev
# y편차 = y값 - y평균
y_bar <- mean(y)
y_bar
y_dev <- y-y_bar
y_dev
# 상관계수
# 분자 = x편차*y편차의 합
num <- sum(x_dev*y_dev)
# 분모 = 제곱근(x편차제곱합*y편차제곱합)
snum <- sqrt((sum(x_dev^2))*(sum(y_dev^2)))
# 상관계수 = 분자/분모
num/snum
# r < 0.3 : 약함
# 0.3 <= r < 0.7 : 중간정도
# 0.7 <= r : 강함
# r = 0.692 => 
# 1) 양의 상관관계(직접상관관계)
# 2) 상관관계 크기가 중간정도의 크기를 가지고 있음
# 함수표현식
cor(x,y)
# 산점도 = 상관관계의 시각화
plot(x,y)

결과값
산점도

6) 실습2 (변수의 분산공유와 상관관계)

# 실습
data <- read.csv("./Syntax(R)/07/ch7ds1.csv")
head(data)
str(data)

income <- data$Income
Education <- data$Education

in_var <- mean(income)
Ed_var <- mean(Education)
in_dev <- income - in_var
Ed_dev <- Education - Ed_var

num1 <- sum(in_dev*Ed_dev)
snum1 <- sqrt((sum(in_dev^2))*(sum(Ed_dev^2)))
res <- num1/snum1
res
# 함수로 상관계수 계산
cor(income,Education)
plot(income,Education)

install.packages("car")
library(car)
scatterplot(Education,income)

상관계수
산점도

 

C17 관계 및 상관계수의 유의성 검정

1) 상관계수의 유의성 검정

상관계수 : 변수의 차이를 확인하는게 아닌 관계를 확인하는 방법. 

 

2) 실습1 (상관계수 t검정)

# CP17
# 상관계수 t검정
x <- c(76,81,78,76,76,78,76,78,98,88,76,66,44,67,65,59,87,77,79,58,68,76,77,98,98,99,98,87,67,78)
y <- c(43,33,23,34,31,51,56,43,44,45,32,33,28,39,31,38,21,27,43,46,41,41,48,56,56,55,45,68,54,33)
# 산점도 : 상관관계 시각화
plot(x,y)
# 상관계수
r <- cor(x,y)
r
# 검정통계량 t값 
# = (표본상관계수 - 모상관계수) / 제곱근((1-표본상관계수의 제곱) / (표본의 크기-2))
# 분자 = (표본상관계수 - 모상관계수=0) 
r
# 분모 = 제곱근((1-표본상관계수의 제곱) / (표본의 크기-2))
n <- length(x)
n
sqrt((1-r^2)/(n-2))
# 분자/분모
t <- r/sqrt((1-r^2)/(n-2))
t <- abs(t)
t
# 임계값, 자유도, 유의수준, 양측검정
df <- n-2
alpha <- 0.05
cv <- qt(1-alpha/2,df)
# 통계적으로 유의하다 (true)
cv<t
# True = 오른쪽 = 기각역 = 귀무가설 기각 = 연구가설 채택 =상관계수가 0이 아니다 = 통계적으로 유의하다
# 유의확률
p <- (1-pt(t,df))*2
alpha > p
scatterplot(x,y)
# 결혼생활의 질과 부모관계의 질은 통계적으로 유의한 상관관계를 가지고 있다. 이 상관계수는 양의 상관관계(직접상관관계)이고, 중간 정도 크기의 상관관계를 가지고 있다.

유의성 확인
유의수준 확인
산점도 확인

3) 실습2

# 465p 확인
# 실습
data <- read.csv("./Syntax(R)/17/ch17ds1.csv")
head(data)
str(data)
ma <- data$Qual.Marriage
pc <- data$Qual.PC
cor(ma,pc)
# 산점도
plot(ma,pc)
scatterplot(ma,pc)

# 산점도 수정
plot(ma,pc,xlab="Marriage Quality",ylab ="Parent_child",main="Scatterplot")
# 상관계수 t검정
cor.test(ma,pc)

상관계수
산점도
상관계수 t검정 결과

 

 

보건의료

1) 실습문제

# 보건의료 문제 // 상관분석 실습문제
library(readxl)
data <- read_excel("./SpyderBD_01/data/sta_data.xlsx", sheet = "cor")
head(data)
str(data)
# 산점도
pairs(data)
# 전체 상관계수, 표본의 개수, 상관계수의 유의확률 확인
install.packages("Hmisc")
library(Hmisc)
rcorr(as.matrix(data))
# 산점도, 추세선, 상관계수, *로 표시된 유의확률
install.packages("PerformanceAnalytics")
library(PerformanceAnalytics)
chart.Correlation(data,method = c("pearson"))

 

변수가 여러개일 때 보는 산점도 분석 pairs(data)

 

상관계수

 

유의성 검증

 

# 산점도, 추세선, 상관계수, *로 표시된 유의확률

* 개수는 유의하다는 것을 의미함

* 개수는 일반적으로 p-값이 0.05 미만이면 별표 1개( ), p-값이 0.01 미만이면 별표 2개( ), p-값이 0.001 미만이면 별표 3개( )를 사용하는 것이 관례입니다. 

 

 

 

* 핵심

- 상관계수, 유의성 검정은 중요하다.

- 산점도분석은 변수가 증가함에 따라 다양한 방법으로 함수를 표현할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
LIST