2010-06-16 7 views
-1

Je ne suis pas sûr de ce qui me manque ici, mais j'essaie fondamentalement de calculer des valeurs interpolées pour une série temporelle; quand je tracer directement la série, ce qui limite les points d'interpolation avec « interpolation.date.vector », l'intrigue est correcte:Interpolation de données de séries temporelles dans R

plot(date.vector,fact.vector,ylab='Quantity') 
lines(spline(date.vector,fact.vector,xout=interpolation.date.vector)) 

Lorsque je calcule l'interpolation, la stocker dans une variable intermédiaire, puis tracer les résultats ; Je reçois un résultat radicalement incorrect:

intepolated.values <- spline(date.vector,fact.vector,xout=interpolation.date.vector) 

plot(intepolated.values$x,intepolated.values$y) 
lines(intepolated.values$x,intepolated.values$y) 

Est-ce pas la fonction lignes() doivent exécuter la fonction spline() pour récupérer les points interpolés de la même manière que je le fais?

+2

Vous devez être précis sur ce qui ne va pas en utilisant 'plot (intepolated.values ​​$ x, intepolated.values ​​$ y)' au lieu de 'plot (date.vector, fact.vector, ylab = 'Quantity')' la deuxième fois, parce que les résultats me vont bien. – Aniko

+2

Ça me va aussi bien. 'lignes (spline (date.vector, fact.vector, xout = interpolation.date.vector))' doit être identique à 'lines (intepolated.values)' – hatmatrix

Répondre

0

Pour l'interpolation, j'utilise approx. Exemple:

inter <- approx(date.vector, fact.vector, xout=interpolation.date.vector) 
inter$x # holds x interpolated values, basically interpolation.date.vector 
inter$y # holds y interpolated values 

L'inconvénient est que cela soit fait interpolation linéaire ou constant.

Questions connexes