Apa yang dapat Anda lakukan adalah menggunakan ide bayangan sisa dari vcd di sini dikombinasikan dengan visualisasi matriks jarang seperti misalnya pada halaman 49 bab buku ini . Bayangkan plot terakhir dengan bayangan sisa dan Anda mendapatkan ide.
Tabel matriks jarang / kontigensi biasanya akan berisi jumlah kejadian setiap obat dengan masing-masing efek samping. Namun dengan ide naungan residual Anda dapat mengatur model linier log baseline (misalnya model independensi atau apa pun yang Anda suka) dan menggunakan skema warna untuk mengetahui kombinasi obat / efek yang lebih sering terjadi / lebih jarang daripada yang diprediksi oleh model . Karena Anda memiliki banyak pengamatan, Anda dapat menggunakan ambang warna yang sangat halus dan mendapatkan peta yang mirip dengan bagaimana microarray dalam analisis kluster sering divisualisasikan misalnya di sini(tapi mungkin dengan warna "gradien" yang lebih kuat). Atau Anda bisa membuat ambang sedemikian rupa sehingga hanya jika perbedaan pengamatan dengan prediksi melebihi ambang batas daripada yang diwarnai dan sisanya akan tetap putih. Bagaimana tepatnya Anda melakukan ini (misalnya model mana yang digunakan atau ambang mana) tergantung pada pertanyaan Anda.
Sunting
Jadi, inilah cara saya melakukannya (mengingat saya memiliki cukup RAM yang tersedia ...)
- Buat matriks jarang dari dimensi yang diinginkan (nama obat x efek)
- Hitung residu dari model loglinear independensi
- Gunakan gradien warna dalam resolusi halus dari min ke maksimum residu (misalnya dengan ruang warna hsv)
- Masukkan nilai warna sesuai dari besarnya residu pada posisi yang sesuai dalam matriks jarang
- Plot matriks dengan plot gambar.
Anda kemudian berakhir dengan sesuatu seperti ini (tentu saja gambar Anda akan jauh lebih besar dan akan ada ukuran piksel yang jauh lebih rendah tetapi Anda harus mendapatkan ide. Dengan penggunaan warna yang pintar Anda dapat memvisualisasikan asosiasi / keberangkatan dari kemerdekaan yang paling Anda sukai. berminat).
Contoh cepat dan kotor dengan matriks 100x100. Ini hanyalah contoh mainan dengan residu mulai dari -10 hingga 10 seperti yang Anda lihat dalam legenda. Putih adalah nol, biru lebih jarang dari yang diharapkan, merah lebih sering dari yang diharapkan. Anda harus bisa mendapatkan ide dan mengambilnya dari sana. Sunting: Saya memperbaiki pengaturan plot dan menggunakan warna non-kekerasan.
Ini dilakukan menggunakan image
fungsi dan cm.colors()
dalam fungsi berikut:
ImagePlot <- function(x, ...){
min <- min(x)
max <- max(x)
layout(matrix(data=c(1,2), nrow=1, ncol=2), widths=c(1,7), heights=c(1,1))
ColorLevels <- cm.colors(255)
# Color Scale
par(mar = c(1,2.2,1,1))
image(1, seq(min,max,length=255),
matrix(data=seq(min,max,length=255), ncol=length(ColorLevels),nrow=1),
col=ColorLevels,
xlab="",ylab="",
xaxt="n")
# Data Map
par(mar = c(0.5,1,1,1))
image(1:dim(x)[1], 1:dim(x)[2], t(x), col=ColorLevels, xlab="",
ylab="", axes=FALSE, zlim=c(min,max))
layout(1)
}
#100x100 example
x <- c(seq(-10,10,length=255),rep(0,600))
mat <- matrix(sample(x,10000,replace=TRUE),nrow=100,ncol=100)
ImagePlot(mat)
menggunakan ide dari sini http://www.phaget4.org/R/image_matrix.html . Jika matriks Anda begitu besar sehingga image
fungsinya menjadi lambat, gunakan useRaster=TRUE
argumen (Anda mungkin juga ingin menggunakan objek Matrix jarang; perhatikan bahwa harus ada image
metode jika Anda ingin menggunakan kode dari atas, lihat paket sparsem.)
Jika Anda melakukan ini, beberapa pemesanan baris / kolom yang cerdik mungkin menjadi berguna, yang dapat Anda hitung dengan paket arules (periksa halaman 17 dan 18 atau lebih). Saya biasanya merekomendasikan utilitas arules untuk tipe data dan masalah ini (tidak hanya visualisasi tetapi juga untuk menemukan pola). Di sana Anda juga akan menemukan ukuran-ukuran hubungan antara level-level yang bisa Anda gunakan alih-alih shading residual.
Anda mungkin juga ingin melihat tableplots yang ingin Anda selidiki hanya beberapa efek samping nanti.