2017-09-13 2 views
1

Je me demandais si quelqu'un ayant des connaissances sur les séries temporelles de R du paquet stats pouvait m'aider.Est-ce que la série temporelle de R génère automatiquement des données manquantes?

Je suis en train de générer une série temporelle en utilisant la fonction ts de stat. Je transmets à la fonction ts un ensemble de données (avec trois années de dates et de valeurs numériques pour chaque jour), les dates de début et de fin qui ont été analysées en tant que date décimale et la fréquence de 365. Cependant, certaines plages de dates sont manquantes (par exemple, les dates et les valeurs du 30 avril 2016 au 2 janvier 2017 sont manquantes). Cependant, lorsque j'ai vu ou tracé la série chronologique, j'ai remarqué que les données manquantes sont automatiquement remplies avec des valeurs.

Je ne suis pas sûr comment ces valeurs ont été générées.

Est-ce que la fonction de séries temporelles remplit automatiquement les dates manquantes avec leurs données?

Merci pour toute aide,
Jay

Edit: Exemple d'une partie de mon trame de données d'origine:
(vous pouvez voir qu'il ya des données manquantes 30/04/2016 à 2017-01- 02)

Dataframe: 
      date   pieceVolume 
... |  ...  |  ... 
615 | 2016-04-29 | 250.5 
616 | 2016-04-30 | 1230.4 
617 | 2017-01-02 | 273.2 
618 | 2017-01-01 | 26150.5 
619 | 2017-01-02 | 232550.7 

mon trame de données d'origine a 655 lignes, mais ma série de temps a une longueur de 1079
Voici comment je générer mes timeseries de la trame de données:

sts <- ts(test_data$pieceVolume, start=decimal_date(min(as.Date(test_data$date))), end=decimal_date(max(as.Date(test_data$date))), frequency=365) 

Mon code d'origine:

original_data <- readRDS("original_data.rds") 
library(plyr) 
## Using ddply to average all the pieceVolumes that have the same dates. 
test_data <- plyr::ddply(original_data, .(date), function(x) c(pieceVolume=mean(x$pieceVolume))) 
library("forecast") 
## Generate time-series using test_data 
sts <- ts(test_data$pieceVolume, start=decimal_date(min(as.Date(test_data$date))), end=decimal_date(max(as.Date(test_data$date))), frequency=365) 
+0

Hmm, vous supprimez NA de lorsque vous chargez les données? Peut ajouter des données à votre problème? Êtes-vous sûr que ces dates ne sont pas complètement supprimées? Avez-vous vérifié la longueur de l'ensemble original par rapport à l'ensemble de séries chronologiques converties? – DataTx

+0

@DataTx il n'y a pas de NA. Les données manquantes sont complètement manquantes (il n'y a pas de ligne du tout pour les dates manquantes) – Jay

+0

il peut ne pas tracer les dates manquantes du tout. Vérifiez la longueur de la série de temps avec 'length (df $ timeseries)' ou avec 'dim'. Si c'est moins de 365 alors rien n'est tracé pour les dates manquantes – DataTx

Répondre

0

Essayez

sts<- ts(test_data$pieceVolume) 
+0

Il semble que lorsque je génère la série temporelle, quelque chose interpole automatiquement les données pour moi. Il génère automatiquement les dates manquantes, bien que je n'ai rien fait pour l'interpoler.Je me demande si les ts fonctionnent automatiquement en interpolant pour moi. – Jay

+0

Veuillez expliquer ce que votre code fait différemment des OP et comment cela résout le problème ou répond à la question. Je recommande ce guide sur la création d'une réponse utile stackoverflow.com/help/how-to-answer –