순서가없는 범주 형 변수와의 상관 관계


123

많은 관측치와 변수가있는 데이터 프레임이 있습니다. 그들 중 일부는 범주 형 (정렬되지 않음)이고 다른 일부는 숫자입니다.

이 변수들 사이의 연관성을 찾고 있습니다. 수치 변수 (Spearman의 상관 관계)에 대한 상관 관계를 계산할 수 있었지만 :

  • 정렬되지 않은 범주 형 변수 간의 상관 관계를 측정하는 방법을 모르겠습니다.
  • 정렬되지 않은 범주 형 변수와 숫자 변수 간의 상관 관계를 측정하는 방법을 모르겠습니다.

아무도 이것이 어떻게 이루어질 수 있는지 알고 있습니까? 그렇다면 이러한 메소드를 구현하는 R 함수가 있습니까?


답변:


113

원하는 상관 관계에 따라 다릅니다. 프로토 타입 Pearson의 제품 모멘트 상관 관계를 실행하면 연관 강도를 측정하고 해당 연관의 중요성을 테스트 할 수 있습니다. 그러나보다 일반적으로 유의성 검정효과 크기 측정이 다릅니다.

유의성 테스트 :

효과 크기 (연관 강도) :


5
연속 대 명목 사례에 대한 매우 철저한 설명은 여기에서 찾을 수 있습니다 . 공칭 (IV) 변수와 연속 (DV) 변수 사이의 상관 관계 .
gung

3
이진 대 간격의 경우 점-비교 상관이 있습니다.
Glen_b

큰 샘플에 대한 카이 제곱 테스트에 대한 더 나은 대안은 무엇입니까?
Waldir Leoncio

2
@WaldirLeoncio, 예. null이 true이면 는 에 불과 합니다. 그것이 작동하는 방식입니다. 널의 검정뿐만 아니라 효과의 크기를 알고 싶다면 카이 제곱 검정과 함께 Cramer 's V를 계산할 수 있습니다. p<.055%
gung

1
@gung이 지적했듯이 공칭 (IV) 변수와 연속 (DV) 변수의 상관 관계는 혼합 변수의 상관 관계를 수행하는 방법에 대한 훌륭한 링크입니다. Hmisc::rcorr이것을 아름답게 수행하고 다음과 같이 (혼합 변수 데이터 프레임에 대해) 확인할 수 있습니다 :as.data.frame(rcorr(as.matrix(data_frame),type = "pearson")$P) as.data.frame(rcorr(as.matrix(data_frame),type = "pearson")$r)
KarthikS

15

전에 연결된 다음 치트 시트를 보았습니다.

https://stats.idre.ucla.edu/other/mult-pkg/whatstat/

도움이 될 수 있습니다. 특정 R 라이브러리에 대한 링크도 있습니다.


3
이 치트 시트의 문제점은 범주 형 / 서수 / 간격 변수에만 관련이 있다는 것입니다. 내가 찾고있는 것은 숫자 및 범주 독립 변수를 모두 사용할 수있는 방법입니다.
Clément F

6

범주 형 변수의 상관 행렬을 원하는 경우 다음 래퍼 함수를 ​​사용할 수 있습니다 ( 'vcd'패키지 필요).

catcorrm <- function(vars, dat) sapply(vars, function(y) sapply(vars, function(x) assocstats(table(dat[,x], dat[,y]))$cramer))

어디:

vars 상관시키려는 범주 형 변수의 문자열 벡터입니다.

dat 변수를 포함하는 data.frame입니다

결과는 Cramer 's V의 행렬입니다.


6

달성하려는 대상에 따라 다릅니다. 는 연속적이고 수치적인 변수이고 는 (정렬되지 않은) 범주 형 변수 라고 하자 . 그런 다음 가능한 방법 중 하나는 숫자 점수 를 가능한 모든 , 값에 할당 하는 것입니다 . 가능한 기준 중 하나는 와 점수 사이의 상관 관계를 최대화하는 것입니다XKtiKi=1,,pXti. 하나의 연속 변수와 하나의 범주 형 변수 만 있으면 최대 상관 관계가 항상 하나이므로 (그러한 점수를 찾기 위해 Lagrange multipliers를 사용하는 연습입니다) 많은 도움이되지 않을 수 있습니다! 범주 형 변수에 대한 타협점을 찾고 다중 상관 관계 를 최대화하려고 시도 하면 개별 상관 관계는 더 이상 (매우 특별한 경우 제외) 동일하지 않습니다. R2

이러한 분석은 다중 대응 분석의 일반화로 볼 수 있으며, 표준 상관 분석, 균질성 분석 등과 같은 많은 이름으로 알려져 있습니다. R의 구현은 homals패키지 (CRAN)에 있습니다. 이 이름 중 일부에 대한 인터넷 검색은 풍부한 정보를 제공합니다. Albert Gifi, "Nonlinear Multivariate Analysis"라는 완전한 책이 있습니다. 행운을 빕니다!


1
(+1) 왜 Lagrange 멀티 플라이어를 사용합니까? 범주 형 변수의 점수를 매기기 위해 연속 변수의 값을 사용하십시오. 이것은 또한 최대 상관 관계가 반드시 이 아닌 이유를 보여줍니다. 이는 각 범주가 연속 변수의 변하지 않는 값 세트와 쌍을 이룰 때만 달성 할 수 있습니다. 1
whuber

이 의견을 고려하여 편집하겠습니다.
kjetil b halvorsen

2

비슷한 문제가 있었고 제안 된대로 카이 제곱 테스트를 시도했지만 NULL 가설에 대한 P- 값을 평가하는 데 매우 혼란 스럽습니다.

범주 형 변수를 어떻게 해석했는지 설명하겠습니다. 귀하의 경우에 그것이 얼마나 관련성이 있는지 잘 모르겠습니다. 응답 변수 Y와 두 개의 예측 변수 X1 및 X2가 있는데, 여기서 X2는 1과 2의 두 수준을 갖는 범주 형 변수입니다. 선형 모델을 맞추려고했습니다.

ols = lm(Y ~ X1 + X2, data=mydata)

그러나 다른 수준의 X2가 위의 방정식에 어떻게 맞는지 이해하고 싶었습니다. 나는 R 함수를 통해왔다.

by(mydata,X2,function(x) summary(lm(Y~X1,data=x)))

이 코드는 X2의 각 레벨에 대해 선형 모델에 적합하려고합니다. 이것은 내가 이해하고 해석 할 수있는 모든 P- 값과 R- 제곱, 잔류 표준 오차를 주었다.

다시 말하지만 이것이 당신이 원하는 것인지 확실하지 않습니다. Y를 예측할 때 X2의 다른 값을 비교했습니다.


1

두 범주 형 변수 사이의 링크 강도를 측정하려면 chisquare 통계와 함께 크로스 탭을 사용하는 것이 좋습니다.

숫자와 범주 형 변수 사이의 링크 강도를 측정하기 위해 평균 비교를 사용하여 한 범주에서 다른 범주로 크게 변화하는지 확인할 수 있습니다.


2
@DaSilvaLionel 사이트에 오신 것을 환영합니다. 두 개의 범주 형 변수와 함께 카이 제곱 테스트를 사용하는 것이 이미 위에서 제안 된 것을 알 수 있습니다.
gung
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.