데이터분석 공부하기
상관(Correlation) 본문
이변량(bivariate) 상관
- 상관계수 파악 : 측정 전에 가장 먼저 그래프를 통해서 눈으로 상관관계를 파악한다.
- 공분산(covariance)
분산(s²) = Σ(xᵢ - xˉ)²/(N-1)
-> 한 변수의 분산 : 점수들이 대체로 평균과 어마나 떨어져 있는가?
교차곱 편차(cross-product deviation) : (한 변수의 편차)X(다른 변수의 편차) = (xᵢ - xˉ)(yᵢ - yˉ)
-> 편차의 곱이 양일 경우 (positive correlation), 음일 경우(negative correlation- 두 편차의 방향이 다르다)
공분산(cov(x,y)) = Σ(xᵢ - xˉ)(yᵢ - yˉ)/(N-1)
-> 교차곱을 모두 합하여 평균을 낸 것
-> 한 변수의 변화가 다른 변수의 변화 방식과 어느 정도 부합하는가?
-> 한 변수가 분산에서 벗어나는 방식과 다른 변수가 분산에서 벗어나는 방식이 비슷한가?
-> 한계 : 측정의 축적에 의존한다 (표준화된 척도가 아니여서 서로 다른 단위는 비교할 수 없다)
-상관계수(correlation coefficient)
a.k.a. 피어슨의 곱적률 상관계수(Person's product-moment correlation coefficient)/
피어슨 상관계수(Pearson correlation coefficient)
상관계수 = 표준화된 공분산 = (공분산)/(변수1의 표준편차)*(변수2의 표준편차)
r = (cov𝒙𝐲)/(S𝒙S𝐲) = Σ(xᵢ - xˉ)(yᵢ - yˉ)/(N-1)S𝒙S𝐲
* -1 < r < 1
* 효과크기 : ±.1 작은 효과, ±.3 중간효과, ±.5 큰 효과 (연구 문맥 안에서 해석필요)
상관계수의 유의성 (확률적으로 관계가 유의한가, p.267)
1. z-score : r은 표지분포를 사용하다, 피셔의 공식으로 r의 표집분포를 실제로 정규분포로 만들 수 있음. z = zᵣ/SEᵣ
2. t 통계량(df = N-2) : 일반적으로 사용, r로부터 바로 구할 수 있음
tᵣ = r√(N-2)/√(1-r²)
해석에 대한 유의사항 : correlation ≠ causation
1) third variable, 2) 인관관계의 방향
상관의 종류
이변량 상관(bivariate correlation) : 두 변수의 상관관계
편상관(partial correlation) : 하나 이상의 다른 변수들의 효과를 '제어'할 때의 두 변수의 상관관계
상관계수의 종류
피어슨 상관계수 :
1. 기본 요구조건 : 선형 관계 측정을 위해 데이터는 구간 또는 비례수준(interval/ratio)이여야 한다.
2. 유의성 확인을 위한 가정 : 두 변수가 모두 정규분포여야한다. (예외, 한 변수가 범주가 2개인 범주형변수이면 무시가능)
-> 검정통계량 사용을 위해 표집분포가 정규분포여야 한다(표본자료가 정규분포이거나, 표본이 크면 표집분포도 정규분포라고 가정가능)
3. 결정계수(coefficient of determination, r²) : 변의성(variability), 변동(variation)을 다른 변수가 어느 정도 공유하는가?
-> cor(df)^2 or cor(df)^2 * 100
[피어슨의 상관계수 가정을 만족하지 못하는 경우]
스피어먼 상관계수(Spearman's correlation coefficient, 𝘱 (스피어먼의 로); 비모수적 통계량)
1. 두 변수 순위 사이의 피어슨 상관계수 : 자료에 순위를 매긴다 -> 순위들에 피어슨 상관계수 공식을 적용한다.
2. 순서척도(ordinal)데이터에서 사용
켄달의 타우(Kendall's tau, τ; 비모수적 상관계수)
- 표본의 크기가 작고 동순위 점수가 많을 경우, 스피어먼 대신 사용
- 모집단의 상관을 좀 더 정확하게 추정 가능
부트스트랩을 적용한 상관분석
객체 <- boot(df, 함수, 반복(추출 표본 수))
- 부트스트랩을 통해 생성된 객체로 알 수 있는 속성:
1) estimate of biase, 2) 실험적으로 유도한 standard erro, 3) boot.ci(객체, conf = 0.99)로 부트스트랩에 기초한 신뢰구간
bootau <- function(liar, i){
cor(liar$Position[i], liar$Creativity[i], use = "complete.obs", method = "kendall")}
library(boot)
boot_kendall <- boot(liar, bootau, 2000)
boot_kendall
boot.ci(boot_kendall)
- i : 특정 부트스트랩 표본을 식별하는 매개변수
* 함수 작성 *
함수이름 <- function(input.object1, input.object2, ...)
{a set of commands that do things to the input object(s),
a set of command that specify the output of the function}
mean.variable <- function(variable)
{
mean <- sum(variable)/length(variable)
cat("Mean = ", mean)
}
이연(biserial)상관과 점이연(point-biserial) 상관
- 두 변수 중 하나가 이분적(dichotomous;이항적) 변수일 때 사용(범주가 단 두 개) ex> 성별, 임신여부 등
점이연 상관계수(point-biserial correlation coefficient, r𝑏) : 한 변수가 이산적인 이분적 변수 ex> 사망 여부
범주를 0,1로 코드하고, 피어슨 상관계수로 계수 및 유의성 체크(p.294)
cor.test(cat.data$time, cat.data$gender)
이연 상관계수(biserial correlation coefficient, r𝑝𝑏) : 한 변수가 연속적인 이분적 변수 ex> 시험점수 1-100에서 통과/탈락
-z-score로 유의성 체크 가능(p.230)
library(polycor)
polyserial(cat.data$time, cat.data$gender)
In R
R 패키지 : Hmisc, polycor, boot, ggplot2, ggm
R 함수:
1. cor(x,y, use = "결측값 처리 방식", method = "상관계수 종류")
- use = "everything"(해당 변수에 결측값 존재시, NA출력) ,"all.obs"(자료에 결측값 존재시 오류메시지),
"complete.obs"(목록별 결측값 제외),"pairwise.complete.obs"(쌍별 결측값 제외)
- method = "pearson"(default), "spearman", "kendall", c("pearson", "spearman")
2. cor.test(x, y, alterative = "string", method = "correlation type", conf.level = 0.95, exact= FALSE)
- 두 변수(df전체 X)사용가능
- alternative : 검정/ 방향 가설의 종류- "two.sided"(양쪽꼬리 검정), "less"(음의 상관 예측), "greater"(양의 상관예측)
- cof.level : "피어슨" 상관계수의 신뢰구간의 너비, default = 0.95(디폴트일 경우 생략가능)
- exact = FALSE : 동일 랭크가 있는 경우
3. rcorr(x, y, type = "상관계수의 종류") : Hmisc패키지, type : "pearson", "spearman", c("pearson", "spearman")
1) df에는 작동하지 않으므로 df를 행렬(matrix)로 변환해야함, 2) 쌍별 결측값 제거방식으로만 작동한다(목록별 제거 지원X)
ex) rcorr(as.matric(df[, c("","","")]))
*) ggm패키지에도 rcorr()함수가 있으므로, 두 패키지를 모두 설치했을 시, Hmisc::rcorr()로 작성이 필요하다.
* 결측값 제거:
John : exam, anxiety(missing), attendance
-목록별 결측값 제외(excluding cases listwise) : 한 사례에 하나 변수라도 결측값이 있으면 그 사례를 통째로 분석에서 제외
ex) exam-attendance계산에도 john의 데이터는 제외함
-쌍별 결측값 제외(excluding cases pairwise) : 빠진 점수가 관여하는 계산에서만 제외
ex) exam-anxiety 계산에는 사용되지 않지만, exam-attendance 계산에는 사용됨
편상관 (partial correlation)
-third variable의 효과를 일정하게 유지/제어하여, 두 변수의 고유/유일(unique) 관계를 파악할 수 있는 상관
ex) 시험 불안, 복습, 성적의 상관관계가: 불안이 성적에 미치는 19.4%, 보습이 성적에 미치는 15.7%.
- first ordr(1차 편상관계수) : 제어 변수가 하나 일때
- second-order(2차 편상관계수) : 제어 변수가 둘 일때 ...
library(ggm)
#pcor(c("var", "var2", "control 1", "control 2",...), var(df)),
pc <- pcor(c("Exam", "Anxiety", "Revise"), var(exam.data))
pc
pc^2
#유의성 검사 : pcro.test(pcor로 만든 객체, 제어 변수의 게수, 표본 크기)
pcor.test(pc, 1, 103)
준편상관(semi-partial)/ 부분상관(part)
third variable이 상관관계가 있는 두 변수 중 '하나에' 미치는 영향만 제어(VS. 일반 편상관은 두 변수 '모두'에 미치는 영향 제어)
-> 특정한 하나의 변수(결과변수)의 변동을 다른 일단의 예측변수들로 설명하고자 할 때
상관계수의 비교
1. 독립적인 r들의 비교 : z-score사용
-> 남성과 시험 불안의 상관계수 vs 여성과 실험 불안의 상관계수의 차이가 유의한지 평가
zdifference<-function(r1, r2, n1, n2)
{zd<-(atanh(r1)-atanh(r2))/sqrt(1/(n1-3)+1/(n2-3))
p <-1 - pnorm(abs(zd))
print(paste("Z Difference: ", zd))
print(paste("One-Tailed P-Value: ", p))
}
2. 종속적인 r들의 비교
tdifference<-function(rxy, rxz, rzy, n)
{ df<-n-3
td<-(rxy-rzy)*sqrt((df*(1 + rxz))/(2*(1-rxy^2-rxz^2-rzy^2+(2*rxy*rxz*rzy))))
p <-pt(td, df)
print(paste("t Difference: ", td))
print(paste("One-Tailed P-Value: ", p))
}
효과크기 계산에 유의 사항
1. Spearman's r𝑠의 의미
Pearson's R² : 변동(분산)들의 공유 비율
Spearman R𝑠² : 두 변수가 공유하는 '순위'들의 변동 비율
2. 상관계수 간 비교
- r, r𝑠는 결국엔 동일한 공식을 사용하여 값과 의미가 유사하나, Kendall은 값이 그 둘에 비해 상당히 작다(66~75%)
-> Kendall τ² : 변동이나 순위의 변동 비율 X; r, r𝑠과 비교할 수 없다.
- 이연 상관계수와 점이연 상관계수의 크기가 다르다 - 이분적 변수에 연속체가 깔려있느지 아닌지세심하게 판단해야한다.
상관분석의 보고
유의 사항
1) 절대값이 1보다 작은 상관계수 또는 확률 값 표기 : 소수점 앞에 0 표기 X
2) 상관계수는 소수점 이하 두자리까지 보고
3) 양쪽꼬리가 아닌 한쪽꼬리 확률을 인용하는 경우 명시해야함
4) 각 상관계수를 서로 다른 영문자로 표기해야함
5) 적용하는 확률에 표준적 기준(.05, .01, .001) 존재
text보고 예시(p.241) :
-there was a significant relationship between number of TV shows watched and the number of SNS accounts, r = .78, p(one-tailed) < .05.
-Test performance was significantly correlated with confidence score, r = .60, and time spent sleeping, r = .45; the time spend sleeping was also correlated with confidence score, r = .72 (all 𝑝𝑠 < .001).
-Creativity was significantly related to how well people did in a drawing competition, τ = -.30, 𝑝 < .001.
Table보고 예시:
출처 및 참고 : '앤디 필드의 유쾌한 R 통계학'
'통계' 카테고리의 다른 글
[가정] 모수적 검정 - 2) 분산의 동질성(homogeneity of variance) (0) | 2022.01.14 |
---|---|
[가정] 모수적 검정- 1) 정규성(normality) (0) | 2022.01.14 |
R - graph(ggplot2) (0) | 2022.01.13 |
R- Rstudio in Mas OC (0) | 2022.01.03 |
추론통계(Inferential statistics) : 2) 통계모형과 가설검정 (0) | 2021.12.30 |