O que é um gráfico apropriado para ilustrar a relação entre duas variáveis ordinais?
Algumas opções que posso pensar:
- Gráfico de dispersão com tremulação aleatória adicionada para impedir que os pontos se ocultem. Aparentemente, um gráfico padrão - o Minitab chama isso de "gráfico de valores individuais". Na minha opinião, pode ser enganoso, pois encoraja visualmente um tipo de interpolação linear entre os níveis ordinais, como se os dados fossem de uma escala de intervalo.
- Gráfico de dispersão adaptado para que o tamanho (área) do ponto represente a frequência dessa combinação de níveis, em vez de desenhar um ponto para cada unidade de amostragem. Ocasionalmente, vi tais conspirações na prática. Eles podem ser difíceis de ler, mas os pontos estão em uma rede com espaçamento regular que supera de certa forma as críticas ao gráfico de dispersão nervoso que "visualiza" os dados.
- Especialmente se uma das variáveis for tratada como dependente, um gráfico de caixa agrupado pelos níveis da variável independente. É provável que pareça terrível se o número de níveis da variável dependente não for suficientemente alto (muito "plano" com falta de bigodes ou quartis ainda piores, o que impossibilita a identificação visual da mediana), mas pelo menos chama a atenção para mediana e quartis que são estatística descritiva relevante para uma variável ordinal.
- Tabela de valores ou grade em branco de células com mapa de calor para indicar frequência. Visualmente diferente, mas conceitualmente semelhante ao gráfico de dispersão, com a área do ponto mostrando a frequência.
Existem outras idéias ou pensamentos sobre quais parcelas são preferíveis? Existem campos de pesquisa em que certas parcelas ordinais versus ordinais são consideradas padrão? (Parece que me lembro do mapa de calor de frequência sendo generalizado na genômica, mas suspeito que isso seja mais frequente para nominal versus nominal.) Sugestões para uma boa referência padrão também seriam muito bem-vindas, estou supondo algo da Agresti.
Se alguém quiser ilustrar com um gráfico, segue o código R para dados de amostra falsos.
"Qual a importância do exercício para você?" 1 = nada importante, 2 = um tanto sem importância, 3 = nem importante nem sem importância, 4 = um pouco importante, 5 = muito importante.
"Com que regularidade você leva 10 minutos ou mais?" 1 = nunca, 2 = menos de uma vez por quinzena, 3 = uma vez a cada uma ou duas semanas, 4 = duas ou três vezes por semana, 5 = quatro ou mais vezes por semana.
Se seria natural tratar "frequentemente" como uma variável dependente e "importância" como uma variável independente, se um gráfico distingue entre os dois.
importance <- rep(1:5, times = c(30, 42, 75, 93, 60))
often <- c(rep(1:5, times = c(15, 07, 04, 03, 01)), #n=30, importance 1
rep(1:5, times = c(10, 14, 12, 03, 03)), #n=42, importance 2
rep(1:5, times = c(12, 23, 20, 13, 07)), #n=75, importance 3
rep(1:5, times = c(16, 14, 20, 30, 13)), #n=93, importance 4
rep(1:5, times = c(12, 06, 11, 17, 14))) #n=60, importance 5
running.df <- data.frame(importance, often)
cor.test(often, importance, method = "kendall") #positive concordance
plot(running.df) #currently useless
Uma questão relacionada a variáveis contínuas achei útil, talvez um ponto de partida útil: quais são as alternativas aos gráficos de dispersão ao estudar a relação entre duas variáveis numéricas?
Respostas:
Um spineplot (mosaico) funciona bem para os dados de exemplo aqui, mas pode ser difícil de ler ou interpretar se algumas combinações de categorias forem raras ou não existirem. Naturalmente, é razoável, e esperado, que uma frequência baixa seja representada por um bloco pequeno e zero por nenhum bloco, mas a dificuldade psicológica pode permanecer. Também é natural que as pessoas que gostam de tramas espinhais escolham exemplos que funcionam bem para seus trabalhos ou apresentações, mas eu sempre produzi exemplos que eram muito bagunçados para serem usados em público. Por outro lado, um gráfico de espinha usa bem o espaço disponível.
Algumas implementações pressupõem gráficos interativos, para que o usuário possa interrogar cada bloco para saber mais sobre ele.
Uma alternativa que também pode funcionar muito bem é um gráfico de barras bidirecional (existem muitos outros nomes).
Veja, por exemplo,
tabplot
em http://www.surveydesign.com.au/tipsusergraphs.htmlPara esses dados, um gráfico possível (produzido usando o
tabplot
Stata, mas deve ser fácil em qualquer software decente) éO formato significa que é fácil relacionar barras individuais aos identificadores de linha e coluna e que você pode anotar com frequências, proporções ou porcentagens (não faça isso se achar que o resultado é muito ocupado, naturalmente).
Algumas possibilidades:
Se uma variável pode ser considerada uma resposta a outra como preditor, vale a pena pensar em plotá-la no eixo vertical, como de costume. Aqui penso na "importância" como medida de uma atitude, a questão então é se afeta o comportamento ("frequentemente"). A questão causal é frequentemente mais complicada, mesmo para esses dados imaginários, mas o ponto permanece.
A sugestão 1 sempre deve ser superada se o inverso funcionar melhor, ou seja, for mais fácil pensar e interpretar.
Porcentagens ou probabilidades de discriminação geralmente fazem sentido. Um gráfico de frequências brutas também pode ser útil. (Naturalmente, esse enredo carece da virtude de enredos em mosaico de mostrar os dois tipos de informações de uma só vez.)
É claro que você pode tentar as alternativas (muito mais comuns) de gráficos de barras agrupados ou gráficos de barras empilhadas (ou os gráficos de pontos agrupados ainda bastante incomuns no sentido de WS Cleveland). Nesse caso, acho que não funcionam tão bem, mas às vezes funcionam melhor.
Alguns podem querer colorir diferentes categorias de resposta de maneira diferente. Não tenho objeções e, se você quiser, não levaria as objeções a sério.
A estratégia de hibridar gráfico e tabela pode ser útil de maneira mais geral, ou mesmo não o que você deseja. Um argumento frequentemente repetido é que a separação de figuras e tabelas era apenas um efeito colateral da invenção da impressão e da divisão do trabalho que produzia; é mais uma vez desnecessário, assim como foi para escritores de manuscritos que colocavam ilustrações exatamente como e onde eles gostavam.
fonte
Aqui está uma tentativa rápida de um mapa de calor : usei bordas de células pretas para quebrar as células, mas talvez os ladrilhos devam ser separados mais como na resposta de Glen_b.
Aqui está um gráfico de flutuação baseado em um comentário anterior de Andy W. Como ele os descreve "eles são basicamente apenas gráficos de dispersão binados para dados categóricos, e o tamanho de um ponto é mapeado para o número de observações que caem dentro desse bin". Para uma referência, consulte
fonte
Aqui está um exemplo de como seria um gráfico de espinha dos dados. Eu fiz isso em Stata muito rapidamente, mas há uma implementação R . Eu acho que em R deveria ser apenas:
spineplot(factor(often)~factor(importance))
O spineplot realmente parece ser o padrão se você der variáveis categóricas para R:
plot(factor(often)~factor(importance))
A repartição fracionária das categorias de é frequentemente mostrada para cada categoria de importância. Barras empilhadas são desenhadas com dimensão vertical, mostrando a fração de vezes dada a categoria de importância. A dimensão horizontal mostra a fração em cada categoria de importância. Assim, as áreas dos ladrilhos formados representam as frequências, ou em geral totais, para cada combinação cruzada de importância e frequência.
fonte
A maneira como eu fiz isso é meio que uma farsa, mas pode ser corrigida com bastante facilidade.
Esta é uma versão modificada da abordagem de tremulação.
A remoção dos eixos reduz a tentação de interpretar a balança como contínua; desenhar caixas ao redor das combinações tremidas enfatiza que há algo como uma "quebra de escala" - que os intervalos não são necessariamente iguais
Idealmente, os rótulos 1..5 devem ser substituídos pelos nomes das categorias, mas deixarei isso para a imaginação por enquanto; Eu acho que transmite o sentido disso.
Refinamentos possíveis:
i) diminuir os intervalos (eu prefiro intervalos maiores do que isso, pessoalmente), e
ii) tentar usar uma sequência quase aleatória para reduzir a incidência de padrão aparente dentro das caixas. Embora minha tentativa tenha ajudado um pouco, você pode ver que nas células com um número menor de pontos ainda existem subsequências com uma aparência mais ou menos correlacionada (por exemplo, a caixa na linha superior, segunda coluna). Para evitar isso, a sequência quase aleatória pode ter que ser inicializada para cada subcaixa. (Uma alternativa pode ser a amostragem Latin Hypercube.) Uma vez resolvida, ela poderia ser inserida em uma função que funciona exatamente como jitter.
fonte
Usando o riverplot do pacote R:
fonte
Uma idéia diferente da qual eu não pensava originalmente era uma trama de peneiras .
O tamanho de cada bloco é proporcional à frequência esperada; os pequenos quadrados dentro dos retângulos representam as freqüências reais. Portanto, uma densidade maior dos quadrados indica uma frequência maior que a esperada (e está sombreada em azul); menor densidade de quadrados (vermelho) é para uma frequência menor que o esperado.
Acho que preferiria que a cor representasse o tamanho, não apenas o sinal, do resíduo. Isto é particularmente verdadeiro para casos extremos onde as frequências esperadas e observadas são semelhantes e o resíduo é próximo de zero; um esquema dicotômico de vermelho / azul parece enfatizar excessivamente pequenos desvios.
Implementação em R:
fonte
Um gráfico de barras facetado em R. Ele mostra a distribuição de "frequentemente" em cada nível de "importância" muito claramente. Mas não teria funcionado tão bem se a contagem máxima tivesse variado mais entre os níveis de "importância"; é fácil configurar o
scales="free_y"
ggplot ( veja aqui ) para evitar muito espaço vazio, mas seria difícil discernir o formato da distribuição em níveis de "importância" de baixa frequência, pois as barras seriam muito pequenas. Talvez nessas situações seja melhor usar a frequência relativa (probabilidade condicional) no eixo vertical.Não é tão "limpo" como o tabplot no Stata ao qual Nick Cox se vinculou, mas transmite informações semelhantes.
Código R:
fonte