2010-06-04 41 views
9

J'utilise R. J'ai 25 variables sur 15 points de temps, avec 3 répétitions ou plus par variable par point de temps. J'ai melt ed dans un data.frame, que je peux tracer heureusement en utilisant (entre autres choses) la commande facet_wrap() de ggplot. Ma trame de données fondue s'appelle lis; voici sa tête et la queue, donc vous aurez une idée des données:R + ggplot: comment utiliser un lisseur personnalisé (Processus gaussien)

> head(lis) 
    time variable value 
1 10  SELL 8.170468 
2 10  SELL 8.215892 
3 10  SELL 8.214246 
4 15  SELL 8.910654 
5 15  SELL 7.928537 
6 15  SELL 8.777784 
> tail(lis) 
    time variable value 
145 1  GAS5 10.92248 
146 1  GAS5 11.37983 
147 1  GAS5 10.95310 
148 1  GAS5 11.60476 
149 1  GAS5 11.69092 
150 1  GAS5 11.70777 

je peux obtenir une belle parcelle de toutes les séries chronologiques, ainsi que d'une spline ajustée et 95% des intervalles de confiance à l'aide des commandes ggplot2 suivantes: Le problème est que le lisseur n'est pas à mon goût - les intervalles de confiance de 95% sont loin. Je voudrais utiliser les processus gaussiens (GP) pour obtenir une meilleure régression et estimation de la covariance pour mes séries temporelles.

je peux adapter à un médecin généraliste en utilisant quelque chose comme

library(tgp) 
out <- bgp(X, Y, XX = seq(0, 200, length = 100)) 

qui prend du temps X, observations Y et fait des prédictions à chaque point XX. L'objet out contient un tas de choses sur ces prédictions, y compris une matrice de covariance que je peux utiliser à la place de l'intervalle de confiance de 95% que je reçois (je pense?) De ns().

Le problème est que je ne suis pas comment envelopper cette fonction pour faire l'interface avec ggplot2::stat_smooth(). Toutes les idées ou indications sur la façon de procéder seraient grandement appréciées!

Répondre

-3

Stat_smooth a y, ymin et ymax esthétique que vous pouvez utiliser avec une plus lisse sur mesure, comme indiqué ici: http://had.co.nz/ggplot2/stat_smooth.html. Vous créez un bloc de données avec les prédictions et les CI à partir de votre lisseuse personnalisée et utilisez-le directement dans stat_smooth (en spécifiant un nouvel argument de données). Vous pourriez être en mesure d'utiliser stat_smooth(method="tgp::bgp",XX=seq(0,200,length=100)) mais je ne l'ai pas essayé.

6

Il semble que bgp ne respecte pas le style R standard pour les fonctions de modélisation. Cela signifie que vous ne pouvez pas l'utiliser à l'intérieur de geom_smooth et vous devrez adapter le modèle en dehors de l'appel de ggplot2. Vous pouvez également envoyer un courrier électronique à l'auteur du package tgp et l'encourager à suivre les standards R.