Quais são as boas maneiras de plotar distribuições ao longo do tempo usando R?

8

Eu tenho ~ 400 indivíduos e> 10k pontos no tempo cada (resultados da simulação) que gostaria de poder monitorar à medida que eles mudam ao longo do tempo. Traçar todos os indivíduos é muito confuso, traçar média + -sd, min / max ou quantis é pouca informação para o meu gosto. Estou imaginando o que outras pessoas inventaram para visualizar esse tipo de dados. Se houvesse menos pontos de dados, eu usaria plotagens de bean para cada ponto do tempo, mas isso não funcionaria para tantos pontos do tempo.

Lívido
fonte
Você está olhando para examinar medidas repetidas (distribuição de valores em grupos de nível de pessoa) ou resultados de painel (funções da variável de resposta dentro de pessoa ao longo do tempo) ou está apenas examinando os resultados em função do tempo? Gráficos de feijão (ou gráficos de violino) ignoram o agrupamento, mas podem ser usados ​​para visualizar observações discretas no tempo. Você já considerou smoothers populares como LOESS ou suavizar splines?
AdamO 29/01
@AdamO Eu só quero ver a distribuição dos resultados ao longo do tempo. Estou interessado em saber como a distribuição de uma estatística de nível individual ("nível de atividade") muda como uma maneira de observar uma rede de indivíduos. Cada um dos indivíduos interage com um subconjunto dos outros, isso também muda com o tempo.
Lívido
Mães são capazes de fazer isso. Não é um gráfico de espaguete que mostra estatísticas individuais, mas você pode visualizar uma tendência média ao longo do tempo.
AdamO 29/01
@ AdamO Não entendo a sugestão de suavização, pois posso simplesmente traçar a média a cada passo para ver isso.
Lívio
1
@Glen_b Gostaria apenas de calcular quantis em cada ponto do tempo e criar séries temporais com esses itens, em vez de usar boxplots, mas espero ver distribuições complexas.
Lívio

Respostas:

1

Eu usaria um mais suave, como:

geom_smooth(method='loess')

ou subamostraria seus dados e plotaria apenas a cada 5 indivíduos e a cada 10 etapas (por exemplo).

library(ggplot2)    
# Data looks like:
#   Subject   Timestep  Y
#   1         1         0.5
#   1         2         0.6    
#   1         3         0.6
#   1         4         0.7
temp=subset(data, ((as.numeric(subject)%%5)==0) & ((as.numeric(Timestep)%%10)==0))
qplot(Timestep,Y,data=temp)

ou ambos.

S. Robinson
fonte
1

Estas são algumas ótimas sugestões. Minha sugestão é usar gráficos de meio violino, como mostrado em http://biostat.mc.vanderbilt.edu/HmiscNew, usando a função e os gráficos do Hmiscpacote R.summarySlattice

Frank Harrell
fonte