Saya memiliki masalah dalam menggunakan cor()
dan cor.test()
fungsi.
Saya hanya memiliki dua matriks (hanya nilai numerik, dan jumlah baris dan kolom yang sama) dan saya ingin memiliki nomor korelasi dan nilai p yang sesuai.
Ketika saya menggunakan cor(matrix1, matrix2)
saya mendapatkan koefisien korelasi untuk semua sel. Saya hanya ingin satu nomor sebagai hasil dari cor.
Selain itu ketika saya melakukannya cor.test(matrix1, matrix2)
saya mendapatkan kesalahan berikut
Error in cor.test.default(matrix1, matrix2) : 'x' must be a numeric vector
Bagaimana saya bisa mendapatkan nilai-p untuk matriks?
Anda menemukan tabel sederhana yang ingin saya korelasikan di sini:
http://dl.dropbox.com/u/3288659/table_exp1_offline_MEANS.csv
http://dl.dropbox.com/u/3288659/table_exp2_offline_MEANS.csv
r
correlation
L_T
sumber
sumber
cor(as.vector(matrix1), as.vector(matrix2))
?Jawaban:
Jika Anda hanya ingin menghitung korelasi antara dua set nilai, mengabaikan struktur matriks, Anda dapat mengubah matriks menjadi vektor menggunakan
c()
. Kemudian korelasi Anda dihitung olehcor(c(matrix1), c(matrix2))
.sumber
read.csv
yang mungkin Anda gunakan, mengembalikandata.frame
yang bukanmatrix
. Jadi, Anda perlu mengonversinya menjadimatrix
denganas.matrix
sebelum membuatnya menjadi satu vektor panjang denganc()
dan memberikan hasilnyacor
. Ini dia dalam satu baris:cor(c(as.matrix(matrix1)), c(as.matrix(matrix2)))
Anda belum mengatakan apa pun tentang apa sebenarnya data Anda. Namun...
Misalkan matriks Anda memiliki kolom yang mewakili dua set variabel (berbeda) dan (jumlah yang sama) baris yang mewakili kasus.
Analisis Korelasi Canonical
Dalam situasi ini, satu analisis korelasi yang lebih terstruktur yang berpotensi menarik adalah menemukan korelasi kanonik . Ini mengasumsikan bahwa Anda ingin meringkas hubungan antara dua set variabel dalam hal korelasi (s) antara kombinasi linear dari
matrix1
kolom dan kombinasi linear darimatrix2
kolom. Dan Anda akan ingin melakukan itu jika Anda mencurigai ada ruang dimensi kecil, bahkan mungkin 1, yang akan mengungkapkan struktur korelasi yang mendasari seluruh kasus yang dikaburkan oleh realisasinya dalam sistem koordinat yang ditentukan variabel saat ini. Akibatnya nilai korelasi (kanonik) ini akan, dalam arti tertentu, meringkas hubungan linear multivariat antara kedua matriks. Memang, sementara CCA bekerja untuk matriks dengan jumlah variabel yang berbeda itu mengurangi ke korelasi Pearson ketika masing-masing 'matriks' hanya satu kolom.Penerapan
Analisis korelasi kanonik dijelaskan dalam kebanyakan teks analisis multivariat, yang mungkin paling membantu jika Anda senang dengan aljabar matriks hingga analisis eigen. Ini diimplementasikan seperti
cancor
pada basis R dan juga dalam paket CCA yang dijelaskan di sini .sumber
cancor(matrix1, matrix2)
.matrix1
A i j i jJika Anda longgar menafsirkan korelasi dengan kesamaan berarti, Anda dapat menggunakan definisi berdasarkan pada produk dalam, seperti:
Dengan data Anda ini menghasilkan 0,996672.
Alternatifnya, jika struktur matriks tidak penting, adalah hanya meratakan matriks menjadi vektor dan menggunakan ukuran korelasi pilihan Anda. Karena saya tidak tahu distribusi data Anda, saya menggunakan produk titik, untuk mendapatkan 0,976.
Cara Eithe3r, sepertinya data Anda sangat berkorelasi.
sumber