Eu tenho duas variáveis: Nome do Medicamento (DN) e Eventos Adversos (EA) correspondentes, que mantêm uma relação de muitos para muitos. Existem 33.556 nomes de medicamentos e 9.516 eventos adversos. O tamanho da amostra é de cerca de 5,8 milhões de observações.
Quero estudar e entender a associação / relação entre DN e AE. Estou pensando em uma maneira de visualizar esse conjunto em R, já que é melhor olhar para as fotos. Eu não tenho certeza de como fazer isso ...
Respostas:
O que você pode fazer é usar as idéias de sombreamento residual de vcd aqui em combinação com a visualização de matriz esparsa, como por exemplo, na página 49 deste capítulo do livro . Imagine o último gráfico com sombras residuais e você entendeu.
A tabela de matriz / contingência esparsa normalmente conteria o número de ocorrências de cada medicamento com cada efeito adverso. Com a idéia de sombreamento residual, no entanto, você pode configurar um modelo linear de log de linha de base (por exemplo, um modelo de independência ou o que mais desejar) e usar o esquema de cores para descobrir qual combinação de drogas / efeitos ocorre com mais frequência / menos do que o modelo previa. . Como você tem muitas observações, você pode usar um limiar de cores muito fino e obter um mapa parecido com o modo como os microarrays na análise de cluster são frequentemente visualizados, por exemplo, aqui(mas provavelmente com "gradientes" de cores mais fortes). Ou você pode construir os limites de forma que somente se as diferenças de observações nas previsões excederem o limite, elas ficarão coloridas e o restante permanecerá branco. Como exatamente você faria isso (por exemplo, qual modelo usar ou quais limites) depende de suas perguntas.
Editar Então, aqui está como eu faria isso (já que eu teria RAM suficiente disponível ...)
Você acaba com algo assim (é claro que a imagem será muito maior e haverá um tamanho de pixel muito menor, mas você deve ter uma idéia. Com o uso inteligente da cor, você pode visualizar as associações / saídas da independência que você mais tem interessado em).
Um exemplo rápido e sujo com uma matriz 100x100. Este é apenas um exemplo de brinquedo com resíduos variando de -10 a 10, como você pode ver na legenda. Branco é zero, azul é menos frequente do que o esperado, vermelho é mais frequente do que o esperado. Você deve ter a ideia e levá-la de lá. Editar: eu consertei a configuração da trama e usei cores não violentas.
Isso foi feito usando a
image
função ecm.colors()
na seguinte função:usando idéias daqui http://www.phaget4.org/R/image_matrix.html . Se sua matriz é tão grande que a
image
função fica lenta, use ouseRaster=TRUE
argumento (você também pode usar objetos Matrix esparsos; observe que deve haver umimage
método para usar o código acima, consulte o pacote sparseM.)Se você fizer isso, algumas ordens inteligentes das linhas / colunas podem se tornar úteis, que você pode calcular com o pacote arules (consulte as páginas 17 e 18). Geralmente, eu recomendaria os utilitários do arules para esse tipo de dados e problemas (não apenas na visualização, mas também para encontrar padrões). Lá você também encontrará medidas de associação entre os níveis que você pode usar em vez do sombreamento residual.
Você também pode querer olhar para as tabelas de tabelas que deseja investigar apenas alguns efeitos adversos posteriormente.
fonte