Rの行列間の相関


9

cor()およびcor.test()関数の使用に問題があります。

2つの行列(数値のみで、行と列の数は同じ)があり、相関数と対応するp値が欲しいのです。

使用するcor(matrix1, matrix2)と、すべてのセルの相関係数が得られます。corの結果として単一の番号が欲しいだけです。

さらに、私が行う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)の1つの結果だけが必要だと言うとき、(matrix1のすべての数値)と(matrix2のすべての数値)を相関させようとしていますか?その場合、cor(as.vector(matrix1)、as.vector(matrix2))を試すことができます
Marius

正確に示すと予想されるp値は何ですか?(つまり、どの仮説をテストしていますか?)
chl

いいえ、2つのマトリックスを相関させて、それらがどの程度類似しているかを知りたいだけです。セルごとに比較したくない。結果として、すべてのピアソン相関が入力に2つのベクトルを使用するように、0から1までの単一の数値が欲しいだけです。なにか提案を?期待するp値は、相関関係の重要性を教えてくれます。
L_T 2012年

1
という意味cor(as.vector(matrix1), as.vector(matrix2))ですか?
whuber

回答:


12

マトリックス構造を無視して、2つの値のセット間の相関関係を計算するだけの場合は、を使用してマトリックスをベクトルに変換できますc()。次に、相関はによって計算されcor(c(matrix1), c(matrix2))ます。


関数を使用すると、「cor(c(matrix1)、c(matrix2))のエラー: 'x'は数値である必要があります」というエラーが発生します。しかし、私のテーブルを
ざっと

3
Rがこれを発行read.csvします:おそらく使用しdata.frameたは、でないを返しますmatrix。したがって、1つの長いベクトルにして結果をに渡す前に、これをmatrixwith as.matrixに変換する必要があります。これは1行c()corcor(c(as.matrix(matrix1)), c(as.matrix(matrix2)))
活用前

5

あなたはあなたのデータが実際に何であるかについて何も言っていません。それにもかかわらず...

仮定し、あなたの行列が(別の)変数やケースを表す行(同じ数の)の二組を表す列を持っていること。

正準相関分析

この状況で、潜在的に興味深いより構造化された相関分析の1つは、正準相関を見つけることです。これは、matrix1列の線形結合と線形結合の間の相関関係に関して、2つの変数セット間の関係を要約することを前提としています。matrix2列。そして、おそらく1であっても小さな次元のスペースがあると疑った場合は、現在の変数定義の座標系での実現によって不明瞭になっているケース全体の基礎となる相関構造を明らかにするでしょう。したがって、この(正準)相関の値は、ある意味で、2つの行列間の多変量線形関係を要約します。実際、CCAは変数の数が異なる行列に対して機能しますが、各「行列」が単一の列である場合、ピアソン相関に減少します。

実装

正準相関分析は、ほとんどの多変量分析テキストで説明されています。これは、固有値分析までの行列代数に満足している場合におそらく最も役立ちます。cancorベースRと同様に、ここで説明するCCAパッケージにも実装されています


ありがとね。私のデータは、同じ変数を含む単純な2つの行列です。2つの行列の構造は同じです。各セルの値は、これらの変数が9ポイントのリッカートスケールで評価され、参加者間で平均化された実験の結果です。2つの行列の間に相関関係があることを見つけるのに最適な戦略はどれですか。Rで例を挙げられますか?
L_T 2012年

1
ベースRでは、それだけcancor(matrix1, matrix2)です。
共役前

しかし、おそらく少し明確にすることができます。コールmatrix1 AAijij

こんにちは10人の参加者がいました。ペアの刺激間の「一貫性の度合い」を表現する必要がありました(これは、非類似度の評価実験ではないことに注意してください)。私は2つの実験をしました。そして、私は2つの実験条件での結果を比較したいと思います。各セルは、刺激の各ペアに対する参加者の評価の平均です。その後、まだcancorを使用する必要がありますか?
L_T 2012年

cancorを使用しましたが、相関関係を表す単一の係数値も、その有意性を表すp値も得られません。助けてください!
L_T 2012年

3

相関を緩く解釈して類似性を意味する場合は、次のような内積に基づく定義を使用できます。

ここABTRAcAB=A,BA||BA,Btr(ABT)x||x,x1/2

データを使用すると、0.996672になります。

マトリックス構造が重要ではない場合の代替策は、単純にマトリックスをベクトルにフラット化し、選択した相関測定を使用することです。あなたのデータの分布がわからないので、0.976を得るためにドット積を使用しました。

Eithe3r方法、あなたのデータは非常に相関しているようです。


これは、OPが求めたrv係数のようです。両方の行列がどの程度類似しているかを示す0と1の間の値です。
llrs
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.