R에서 행렬 사이의 상관 관계


9

cor()cor.test()기능 을 사용하는 데 문제가 있습니다.

나는 단지 두 개의 행렬 (숫자 값과 같은 수의 행과 열)을 가지고 있으며 상관 수와 해당 p- 값을 원합니다.

내가 사용할 때 cor(matrix1, matrix2)모든 셀에 대한 상관 계수를 얻습니다. cor의 결과로 단일 숫자를 원합니다.

additon cor.test(matrix1, matrix2)에서 다음과 같은 오류가 발생합니다.

Error in cor.test.default(matrix1, matrix2) : 'x' must be a numeric vector

행렬의 p- 값은 어떻게 얻을 수 있습니까?

여기에서 상관시키려는 간단한 테이블을 찾으십시오.

http://dl.dropbox.com/u/3288659/table_exp1_offline_MEANS.csv

http://dl.dropbox.com/u/3288659/table_exp2_offline_MEANS.csv


4
당신이 원하는 것을 조금 불분명합니다. cor (matrix1, matrix2)에 대해 하나의 결과를 원할 때 (matrix1의 모든 숫자)와 (matrix2의 모든 숫자) 상관 관계가 있습니까? 이 경우 cor (as.vector (matrix1), as.vector (matrix2)) 시도
Marius

정확히 p- 값은 무엇을 보여줄 것으로 예상됩니까? (즉, 어떤 가설을 테스트하고 있습니까?)
chl

아니요, 두 매트릭스를 서로 연관 시켜서 얼마나 비슷한 지 알고 싶습니다. 셀별로 비교 셀을 원하지 않습니다. 모든 피어슨 상관 관계가 입력에 두 벡터를 사용하는 것처럼 결과적으로 0에서 1까지의 단일 숫자를 원합니다. 어떠한 제안? 내가 기대하는 p- 값은 상관 관계의 중요성을 말해 주어야합니다.
L_T

1
에서 의미 cor(as.vector(matrix1), as.vector(matrix2))합니까?
whuber

답변:


13

행렬 구조를 무시하고 두 값 집합 간의 상관 관계를 간단히 계산하려면을 사용하여 행렬을 벡터로 변환 할 수 있습니다 c(). 그런 다음 상관 관계는로 계산됩니다 cor(c(matrix1), c(matrix2)).


함수를 사용하면 다음 오류가 발생합니다. "cor (c (matrix1), c (matrix2))의 오류 : 'x'는 숫자 여야합니다." 그러나 내 테이블을
간략히 살펴보면

3
R 문제이 하나 : read.csv당신은 아마 사용하는 반환 data.frameㄱ하지 않은 matrix. 그래서 당신은 인로 변환 할 필요 matrixas.matrix함께 하나의 긴 벡터를하기 전에 c()하고 결과를 제공합니다 cor. 여기 한 줄에 :cor(c(as.matrix(matrix1)), c(as.matrix(matrix2)))
conjugateprior

6

데이터가 실제로 무엇인지에 대해서는 언급하지 않았습니다. 그렇지만...

행렬에 두 개의 (다른) 변수 세트를 나타내는 열과 사례를 나타내는 (같은 수의) 행이 있다고 가정 하십시오.

정식 상관 분석

이 상황에서 잠재적으로 흥미로운 구조적 상관 관계 분석 중 하나는 정식 상관 관계 를 찾는 것 입니다. 이것은 matrix1열의 선형 조합과 선형 조합 사이의 상관 관계 측면에서 두 변수 세트 간의 관계를 요약하려는 것으로 가정합니다.matrix2열. 그리고 만약 당신이 작은 차원, 아마도 1의 공간이 있다고 의심된다면, 현재의 변수 정의 좌표계에서 그들의 실현에 의해 가려진 경우에 걸쳐 기본 상관 구조를 드러 낼 것입니다. 결과적으로이 (정규) 상관 관계의 값은 두 행렬 사이의 다변량 선형 관계를 요약합니다. 실제로 CCA는 변수 수가 다른 행렬에 대해 작동하지만 각 '행렬'이 단일 열일 때 Pearson 상관 관계로 줄어 듭니다.

이행

정규 상관 분석은 대부분의 다변량 분석 텍스트에 설명되어 있으며, 대수학에서 eigenanalysis까지 만족할 경우 가장 유용합니다. cancor기본 R과 마찬가지로 여기 에 설명 된 CCA 패키지 에서 구현됩니다 .


안녕 고마워 내 데이터는 동일한 변수를 포함하는 간단한 두 행렬입니다. 두 행렬의 구조는 동일합니다. 각 셀의 값은 해당 변수를 9 점 리 커트 척도로 평가하고 참가자 전체에서 평균을 얻은 실험 결과입니다. 두 행렬 사이에 상관 관계가 있는지 찾는 가장 좋은 전략은 무엇입니까? R로 예제를 만들 수 있습니까?
L_T

1
기본 R에서는 그냥 cancor(matrix1, matrix2)입니다.
공역 사전

그러나 아마도 당신은 조금 명확히 할 수 있습니다. 요구matrix1 A. 그럼 뭐야Aij? 그것은i-에 대한 사람의 응답 j리 커트 아이템? 분명히 아니다. 그렇다면 평균 참가자 수는 어디입니까?
공역 사전

안녕하세요 10 참가자, 그들은 쌍 자극 사이의 "일관성 정도"를 표현해야했다 (비 유사 등급 실험이 아닙니다). 나는 두 가지 실험을했다. 두 가지 실험 조건에서 결과를 비교하고 싶습니다. 각 세포는 각 자극 쌍에 대한 10 명의 참가자 평가의 평균입니다. 그렇다면 여전히 cancor를 사용해야합니까?
L_T

cancor를 사용했지만 상관 관계를 나타내는 단일 계수 값이나 그 의미를 나타내는 p 값을 얻지 못했습니다. 도와주세요!
L_T

3

유사성을 의미하기 위해 상관 관계를 느슨하게 해석하면 내부 제품을 기반으로하는 정의를 사용할 수 있습니다.

=,|| 어디 ,아르 자형()엑스||엑스,엑스1/2

귀하의 데이터로 0.996672가 산출됩니다.

매트릭스 구조가 중요하지 않은 경우 대안은 단순히 매트릭스를 벡터로 평면화하고 선택한 상관 관계 측정을 사용하는 것입니다. 귀하의 데이터 분포를 모르기 때문에 0.976을 얻기 위해 내적을 사용했습니다.

3 가지 방법으로, 데이터가 서로 밀접한 관련이있는 것 같습니다.


이것은 rv coefficient로 보입니다. 이것은 OP가 요청한 것입니다 .0과 1 사이의 값은 두 행렬이 얼마나 비슷한 지 알려줍니다.
llrs
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.