Quels sont les bons moyens de tracer des distributions dans le temps en utilisant R?


8

J'ai environ 400 individus et> 10 000 points temporels chacun (résultats de simulation). J'aimerais pouvoir suivre leur évolution au fil du temps. Tracer tous les individus est trop compliqué, tracer la moyenne + -sd, min / max ou quantiles est trop peu d'informations à mon goût. Je me demande ce que d'autres personnes ont imaginé pour visualiser ce type de données. S'il y avait moins de points de données, j'utiliserais des haricots pour chaque point temporel, mais cela ne fonctionnerait pas pour autant de points temporels.


Cherchez-vous à examiner des mesures répétées (distribution des valeurs au sein des grappes au niveau de la personne) ou des résultats du panel (fonctions de la variable de réponse au sein de la personne au fil du temps) ou examinez-vous simplement les résultats en fonction du temps? Les parcelles de haricot (ou parcelles de violon) ignorent le regroupement, mais peuvent être utilisées pour visualiser des observations qui sont discrètes dans le temps. Avez-vous envisagé des lissoirs populaires comme LOESS ou des cannelures lissantes?
AdamO

@AdamO Je veux juste voir la distribution des résultats au fil du temps. Je m'intéresse à la façon dont la distribution d'une statistique au niveau individuel ("niveau d'activité") change pour observer un réseau d'individus. Chacun des individus interagit avec un sous-ensemble des autres, cela change également avec le temps.
Livid

Les lissoirs sont capables de le faire. Ce n'est pas un graphique de spaghetti qui affiche des statistiques individuelles, mais vous pouvez visualiser une tendance moyenne au fil du temps.
AdamO

@AdamO Je ne comprends pas la suggestion de lissage car je peux simplement tracer la moyenne à chaque pas de temps pour voir cela.
Livid

1
@Glen_b Je calculerais simplement des quantiles à chaque point temporel et en ferais une série temporelle plutôt que d'utiliser des boîtes à moustaches, je m'attends à voir des distributions complexes cependant.
Livid

Réponses:


1

J'utiliserais soit un lisseur, comme:

geom_smooth(method='loess')

ou je sous-échantillonnerais vos données et ne tracerais que tous les 5 individus, et tous les 10 pas de temps (par exemple).

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 les deux.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.