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)
보건의료
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"))
* 개수는 유의하다는 것을 의미함
* 개수는 일반적으로 p-값이 0.05 미만이면 별표 1개( ), p-값이 0.01 미만이면 별표 2개( ), p-값이 0.001 미만이면 별표 3개( )를 사용하는 것이 관례입니다.
* 핵심
- 상관계수, 유의성 검정은 중요하다.
- 산점도분석은 변수가 증가함에 따라 다양한 방법으로 함수를 표현할 수 있다.
'배운 책들 정리 > 만만한 통계 : R 활용' 카테고리의 다른 글
0222 만만한 통계 R - 카이제곱 검정과 기타 비모수 검정 (CP19) (0) | 2023.02.22 |
---|---|
0221 만만한 통계 R - 선형회귀, 단순회귀, 다중회귀 (18) (0) | 2023.02.21 |
0217 만만한 통계 R - 평균 차이 검정, 분산분석(ANOVA)(14,15) (1) | 2023.02.17 |
0216 만만한 통계 R - 독립 표본 t 검정, 종속 표본 t 검정 (0) | 2023.02.16 |
0215 만만한 통계 R - 유의성 검사 및 단일 표본 z 검정 (11,12) (0) | 2023.02.16 |