Saya memiliki 92 set data dengan tipe yang sama.
Saya ingin membuat matriks korelasi untuk dua kombinasi yang mungkin.
yaitu saya ingin matriks 92 x92.
sehingga elemen (ci, cj) harus merupakan korelasi antara ci dan cj.
Bagaimana aku melakukan itu?
Saya memiliki 92 set data dengan tipe yang sama.
Saya ingin membuat matriks korelasi untuk dua kombinasi yang mungkin.
yaitu saya ingin matriks 92 x92.
sehingga elemen (ci, cj) harus merupakan korelasi antara ci dan cj.
Bagaimana aku melakukan itu?
Jawaban:
Sebuah contoh,
d <- data.frame(x1=rnorm(10),
x2=rnorm(10),
x3=rnorm(10))
cor(d) # get correlations (returns matrix)
Anda bisa menggunakan paket 'corrplot'.
d <- data.frame(x1=rnorm(10),
x2=rnorm(10),
x3=rnorm(10))
M <- cor(d) # get correlations
library('corrplot') #package corrplot
corrplot(M, method = "circle") #plot matrix

Informasi lebih lanjut di sini: http://cran.r-project.org/web/packages/corrplot/vignettes/corrplot-intro.html
Fungsi cor akan menggunakan kolom-kolom matriks dalam perhitungan korelasi. Jadi, jumlah baris antara matriks x dan matriks y harus sama . Ex.:
set.seed(1)
x <- matrix(rnorm(20), nrow=5, ncol=4)
y <- matrix(rnorm(15), nrow=5, ncol=3)
COR <- cor(x,y)
COR
image(x=seq(dim(x)[2]), y=seq(dim(y)[2]), z=COR, xlab="x column", ylab="y column")
text(expand.grid(x=seq(dim(x)[2]), y=seq(dim(y)[2])), labels=round(c(COR),2))

Berikut adalah contoh label baris dan kolom kustom pada matriks korelasi yang dihitung dengan matriks tunggal:
png("corplot.png", width=5, height=5, units="in", res=200)
op <- par(mar=c(6,6,1,1), ps=10)
COR <- cor(iris[,1:4])
image(x=seq(nrow(COR)), y=seq(ncol(COR)), z=cor(iris[,1:4]), axes=F, xlab="", ylab="")
text(expand.grid(x=seq(dim(COR)[1]), y=seq(dim(COR)[2])), labels=round(c(COR),2))
box()
axis(1, at=seq(nrow(COR)), labels = rownames(COR), las=2)
axis(2, at=seq(ncol(COR)), labels = colnames(COR), las=1)
par(op)
dev.off()
image(x=seq(dim(x)[2]), y=seq(dim(y)[2]), z=COR, col=rev(heat.colors(20)), xlab="x column", ylab="y column")
imagefungsi tidak secara otomatis mengambil nama baris dan kolom, jadi ini harus ditambahkan.
Ada cara lain untuk mencapai ini di sini: ( Plot matriks korelasi ke dalam grafik ), tapi saya suka versi Anda dengan korelasi di kotak. Apakah ada cara untuk menambahkan nama variabel ke kolom x dan y daripada hanya nomor indeks tersebut? Bagi saya, itu akan membuat ini menjadi solusi yang sempurna. Terima kasih!
sunting: Saya mencoba mengomentari kiriman oleh [Marc di dalam kotak], tetapi saya jelas tidak tahu apa yang saya lakukan. Namun, saya berhasil menjawab pertanyaan ini untuk diri saya sendiri.
jika d adalah matriks (atau bingkai data asli) dan nama kolom yang Anda inginkan, maka berikut ini berfungsi:
axis(1, 1:dim(d)[2], colnames(d), las=2)
axis(2, 1:dim(d)[2], colnames(d), las=2)
las = 0 akan membalik nama kembali ke posisi normalnya, nama saya panjang, jadi saya menggunakan las = 2 untuk membuatnya tegak lurus dengan sumbu.
edit2: untuk menyembunyikan gambar () fungsi pencetakan angka pada grid (jika tidak mereka tumpang tindih dengan label variabel Anda), tambahkan xaxt = 'n', misalnya:
image(x=seq(dim(x)[2]), y=seq(dim(y)[2]), z=COR, col=rev(heat.colors(20)), xlab="x column", ylab="y column", xaxt='n')
corfungsi, ataurcorrfungsi dalamHmiscpaket