Що ви можете зробити, це використовувати залишкові ідеї затінення від vcd тут у поєднанні з розрідженою візуалізацією матриці, як, наприклад, на сторінці 49 цієї книги . Уявіть останню ділянку із залишковими відтінками, і ви отримаєте ідею.
Таблиця розрідженої матриці / суміжності зазвичай містить кількість випадків дії кожного лікарського засобу з кожним несприятливим ефектом. За допомогою залишкової ідеї затінення, однак, ви можете встановити лінійну модель журналу базової лінії (наприклад, модель незалежності або все, що вам більше подобається) і використовувати кольорову схему, щоб дізнатися, яка комбінація ліків / ефектів трапляється частіше / рідше, ніж модель передбачала б . Оскільки у вас є багато спостережень, ви можете використовувати дуже тонкий поріг кольорів і отримати карту, яка буде схожа на те, як мікрориси в кластерному аналізі часто візуалізуються, наприклад, тут(але, ймовірно, з більш сильними кольоровими "градієнтами"). Або ви можете побудувати пороги такими, що лише в тому випадку, якщо відмінності спостережень від прогнозів перевищать поріг, ніж він стане кольоровим, а решта залишиться білою. Як саме ви це зробили (наприклад, яку модель використовувати або які пороги), залежить від ваших питань.
Редагувати
Ось як я це зробив (враховуючи, що в мене буде достатньо оперативної пам'яті ...)
- Створіть розріджену матрицю потрібних розмірів (назви лікарських засобів x ефекти)
- Обчисліть залишки з логістичної моделі незалежності
- Використовуйте кольоровий градієнт у чіткій роздільній здатності від мінімальної до максимальної залишкової (наприклад, з кольоровим простором hsv)
- Вставте відповідну величину кольору величини залишків у відповідному положенні в розрідженій матриці
- Накресліть матрицю із графіком зображення.
Потім у вас виходить щось подібне (звичайно, ви малюнок буде набагато більшим і буде набагато менший розмір пікселів, але вам слід отримати ідею. Завдяки розумному використанню кольору ви зможете візуалізувати асоціації / відступи від незалежності, які ви найбільше зацікавлений в).
Швидкий і брудний приклад з матрицею 100x100. Це лише іграшковий приклад із залишками від -10 до 10, як ви бачите в легенді. Білий - нуль, синій - рідше, ніж очікувалося, червоний - частіше, ніж очікувалося. Ви повинні мати можливість отримати ідею та взяти її звідти. Редагувати: я виправив налаштування сюжету і використав ненасильницькі кольори.
Це було зроблено за допомогою image
функції та cm.colors()
в наступній функції:
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)
використовуючи ідеї звідси http://www.phaget4.org/R/image_matrix.html . Якщо ваша матриця настільки велика, що image
функція стає повільною, використовуйте useRaster=TRUE
аргумент (можливо, ви також хочете використовувати розріджені об'єкти матриці; зверніть увагу, що повинен бути image
метод, якщо ви хочете використовувати код зверху, див. Пакет sparseM.)
Якщо ви це зробите, може стати корисним певне впорядкування рядків / стовпців, що ви можете обчислити за допомогою пакету ручок (перевірте сторінки 17 та 18 чи так). Як правило, я б рекомендував утиліти arules для цього типу даних і проблем (не тільки візуалізація, але і пошук шаблонів). Там же ви знайдете міри зв'язку між рівнями, які ви могли б використовувати замість залишкового затінення.
Ви також можете подивитися на планшети, які ви хочете дослідити лише пару негативних наслідків пізніше.