2014-12-01 1 views
2

성별, IQ 및 Brain_Mass 열 이름이있는 데이터 집합이 있습니다. 성별은 물론 범주 형 변수이므로, gender=factor(Gender)으로 설정하여 더미 변수를 할당했습니다.더미 변수가있는 데이터로부터 상관 관계 및 공분산 행렬을 찾는 방법은 무엇입니까?

그러나 공분산 행렬과 상관 행렬을 찾고 싶습니다. 상관 행렬을 얻으려면 cov2cor(V)을 사용할 수 있지만이 데이터에서 공분산 행렬을 얻으려면 어떻게해야합니까? 더미 변수가 존재하기 때문에 나는 단지 var(data)을 가져갈 수 있다고 생각하지 않습니다.

누군가가 도와 주면 정말 감사하겠습니다. 감사.

+0

을, 나는 믿지 않는다 'cov'를 사용합니다 (method ='spearma n')가 올바르지 않습니다. 스피어 맨 상관 관계는 연속적이고 순서적인 데이터를위한 것이며, 성별은 이들 중 하나에 속하지 않습니다! – Suren

답변

1

상관 관계 계산에 요인 변수를 포함하려는 이유가 표시되지 않습니다.

set.seed(1) 
n <- 100 
df <- data.frame(Gender=sample(c("male", "female"), n, replace=TRUE), IQ=rnorm(n, mean=100, sd=10), Brain_Mass=rnorm(n, mean=5000, sd=500)) 
head(df) 

COV <- cov(df[,2:3]) 
COR <- cor(df[,2:3]) 
COV; COR 

당신은 기술적으로 숫자에 Gender을 변환 할 수 있습니다 다음 동일한 수행합니다 :

df$Gender <- as.numeric(df$Gender) 
cor(df) 
0

그것은 가장 좋은 것은 아닌 그 변수를 제거하고 오직 작은 data.frame에 대한 cor을 계산하는 것이 좋습니다 범주 형 데이터와 연속 형 데이터간에 동일한 상관 관계 (또는 공분산) 계산을 사용합니다. 범주 형 데이터의 경우 연속 데이터와 스피어 만 상관 관계에 피어슨 상관 관계를 사용해야합니다. 이 두 가지 방법은 경우에 따라 유사한 결과를 나타낼 수 있습니다. 공분산 시도에 대한

:

cov(data_set,method='spearman') 

또는 데이터 유형에 따라 선택 할 방법에 따라

cov(data_set,method='pearson') #this is the default 

.

상관 관계는 cov() 함수를 cor()으로 바꿉니다.

gender <- as.numeric(gender) 

UPDATE :

그냥 당신이 아마해야한다 생각 당신이 올바른 방법으로 상관 관계를 계산하고 있는지 확인하기 위해

당신은 요구 사항이 요인 변수는 숫자 사전에 변환 할 모든 변수를 하나의 유형 즉 모든 연속 또는 모든 범주로 변환하십시오. 일반적인 방법은 연속 데이터를 범주 형으로 저장하는 것입니다 (예를 들어 정보 가치를 잃을 수도 있지만 일반적으로 원하는 것을 얻을 수 있습니다). 그런 다음 spearman 상관/공분산 행렬을 사용하십시오. 이 방법을 사용하면 적어도 계산이 일관되고 cov() 또는 cor()

1

을 사용하여 모든 것을 한꺼번에 처리 할 수 ​​있습니다. 피어슨이나 스피어 먼의 연속 변수와 이분법 변수 간의 상관 관계를 막을 수있는 기술 (기술)은 없지만, "point-biserial correlation"이라고 불리는 것을보십시오, 사실 피어슨의 상관 관계와 매우 밀접하게 관련되어 있지만 왜곡 된 것에 대한 다소 이국적인 이름입니다!

해당하는 R package있다)

1

가 같은 다른 함수에 입력을 위해 필요한 것으로 (연속 및 범주 데이터의 조합에 대한 상관 행렬을 계산하는 정당한 이유가있는 경우), 다음 하나 개의 접근법 자신의 더미 변수 인코딩 요인을 변환 할 model.matrix 기능을 사용하는 것입니다, 다음 상관 관계 또는 공분산 계산하는 cor 또는 다른 함수에 결과를 전달합니다 미래 관찰자를 위해서

> cor(model.matrix(~.-1,data=iris[,3:5])) 
        Petal.Length Petal.Width Speciessetosa Speciesversicolor Speciesvirginica 
Petal.Length   1.0000000 0.9628654 -0.9227654   0.2017545  0.7210109 
Petal.Width   0.9628654 1.0000000 -0.8873437   0.1178988  0.7694449 
Speciessetosa  -0.9227654 -0.8873437  1.0000000  -0.5000000  -0.5000000 
Speciesversicolor 0.2017545 0.1178988 -0.5000000   1.0000000  -0.5000000 
Speciesvirginica  0.7210109 0.7694449 -0.5000000  -0.5000000  1.0000000 
>