Estou analisando um conjunto de dados com muitos parâmetros (por exemplo, 50-200) e estou interessado em examinar as relações entre variáveis (por exemplo, em termos de gráficos de dispersão de 2 variáveis ou histogramas 2D). No entanto, para esse número de parâmetros, parece inviável desenhar uma matriz de plotagens de 200x200 (a menos que eu a imprima e pendure na parede).
Por outro lado, fazer apenas uma matriz de correlação não fornece todas as informações sobre relações de 2 variáveis.
Existe uma maneira (biblioteca ou fluxo de trabalho) de explorar relações de 2 variáveis para muitas variáveis?
Estou especialmente interessado em mostrar resultados para outras pessoas (talvez após algum pré-processamento de dados). Por exemplo, algo interativo em JavaScript, onde posso ver a matriz de gráficos de dispersão para campos selecionados de uma matriz de correlação.
Por matriz de gráfico de dispersão, quero dizer algo assim:
(extraído do blog pandasplotting ; disponível em Python / Pandas , R , D3.js , etc.).
fonte
Respostas:
Explorar relações entre variáveis é bastante vago, mas eu acho que dois dos objetivos mais gerais de examinar gráficos de dispersão como esse;
Ambos reduzem os dados em resumos mais gerenciáveis, mas têm objetivos diferentes. Para identificar grupos latentes, normalmente reduz-se as dimensões nos dados (por exemplo, via PCA) e depois explora se variáveis ou casos se agrupam nesse espaço reduzido. Veja, por exemplo, Friendly (2002) ou Cook et al. (1995).
Identificar discrepantes pode significar ajustar um modelo e plotar os desvios do modelo (por exemplo, plotar resíduos de um modelo de regressão) ou reduzir os dados em seus componentes principais e apenas destacar pontos que se desviam do modelo ou do corpo principal de dados. Por exemplo, boxplots em uma ou duas dimensões geralmente mostram apenas pontos individuais que estão fora das dobradiças (Wickham & Stryjewski, 2013). A plotagem de resíduos tem a propriedade legal de que deve achatar as plotagens (Tukey, 1977); portanto, qualquer evidência de relacionamento na nuvem de pontos restante é "interessante". Esta pergunta no CV tem algumas excelentes sugestões para identificar discrepâncias multivariadas.
Uma maneira comum de explorar SPLOMS tão grandes é não plotar todos os pontos individuais, mas algum tipo de resumo simplificado e, em seguida, talvez pontos que se afastem amplamente desse resumo, por exemplo, elipses de confiança, resumos escagnósticos (Wilkinson & Wills, 2008), bivariados gráficos de caixas, gráficos de contorno. Abaixo está um exemplo de plotagem de elipses que definem a covariância e a sobreposição de um loess mais suave para descrever a associação linear.
(fonte: statmethods.net )
De qualquer maneira, uma plotagem interativa de sucesso real com tantas variáveis provavelmente precisaria de classificação inteligente (Wilkinson, 2005) e uma maneira simples de filtrar variáveis (além de recursos de escovar / vincular). Além disso, qualquer conjunto de dados realista precisaria ter os recursos para transformar o eixo (por exemplo, plotar os dados em escala logarítmica, transformar os dados criando raízes etc.). Boa sorte e não fique com apenas um enredo!
Citações
fonte
Você pode considerar usar a interface brilhante do pacote pairsD3 R, que fornece uma maneira de interagir com matrizes de plotagem de dispersão.
Um exemplo com o conjunto de dados da íris:
Fonte: https://github.com/garthtarr/pairsD3
fonte