Tengo dos variables: Nombre del medicamento (DN) y los eventos adversos (AE) correspondientes, que están en una relación de muchos a muchos. Hay 33,556 nombres de medicamentos y 9,516 eventos adversos. El tamaño de la muestra es de aproximadamente 5,8 millones de observaciones.
Quiero estudiar y comprender la asociación / relación entre DN y AE. Estoy pensando en una forma de visualizar este conjunto en R ya que es mejor mirar imágenes. No estoy seguro de cómo hacerlo ...
Respuestas:
Lo que podría hacer es usar las ideas de sombreado residual de vcd aquí en combinación con una visualización de matriz dispersa como, por ejemplo, en la página 49 de este capítulo del libro . Imagine la última trama con sombreados residuales y obtendrá la idea.
La tabla de matriz / contigencia escasa normalmente contendría el número de ocurrencias de cada fármaco con cada efecto adverso. Sin embargo, con la idea del sombreado residual, puede configurar un modelo lineal de registro de línea de base (por ejemplo, un modelo de independencia o cualquier otra cosa que desee) y usar el esquema de color para averiguar qué combinación de drogas / efecto ocurre con más frecuencia / menos frecuencia de lo que el modelo predeciría. . Dado que tiene muchas observaciones, puede usar un umbral de color muy fino y obtener un mapa que se parece a la forma en que a menudo se visualizan las microarrays en el análisis de conglomerados, por ejemplo, aquí(pero probablemente con "gradientes" de color más fuertes). O podría construir los umbrales de tal manera que solo si las diferencias de observaciones a predicciones exceden el umbral de lo que se colorean y el resto permanecerá blanco. Cómo exactamente haría esto (por ejemplo, qué modelo usar o qué umbrales) depende de sus preguntas.
Editar Así que así es como lo haría (dado que tendría suficiente RAM disponible ...)
Luego terminas con algo como esto (por supuesto, tu imagen será mucho más grande y habrá un tamaño de píxel mucho más bajo, pero debes tener la idea. Con el uso inteligente del color puedes visualizar las asociaciones / salidas desde la independencia que eres más interesado en).
Un ejemplo rápido y sucio con una matriz de 100x100. Este es solo un ejemplo de juguete con residuos que van desde -10 a 10 como se puede ver en la leyenda. El blanco es cero, el azul es menos frecuente de lo esperado, el rojo es más frecuente de lo esperado. Debería poder tener la idea y tomarla desde allí. Editar: arreglé la configuración de la trama y usé colores no violentos.
Esto se hizo usando la
image
función ycm.colors()
en la siguiente función:utilizando ideas de aquí http://www.phaget4.org/R/image_matrix.html . Si su matriz es tan grande que la
image
función se vuelve lenta, use eluseRaster=TRUE
argumento (es posible que también quiera usar objetos Matrix dispersos; tenga en cuenta que debe haber unimage
método si desea usar el código de arriba, consulte el paquete sparseM).Si hace esto, puede resultar útil realizar un ordenamiento inteligente de las filas / columnas, que puede calcular con el paquete arules (consulte las páginas 17 y 18 más o menos). En general, recomendaría las utilidades de arules para este tipo de datos y problemas (no solo visualización sino también para encontrar patrones). Allí también encontrará medidas de asociación entre los niveles que podría usar en lugar del sombreado residual.
También es posible que desee ver las tablas de las que desea investigar solo un par de efectos adversos más adelante.
fuente