2016-07-08 7 views
2

Dies ist wahrscheinlich eine einfache Frage, aber meine R-Fähigkeiten sind immer noch in den Lernphasen. Ich versuche, nur eine Darstellung der saisonalen Komponente in einem ETS-Zeitreihenmodell zu erhalten und möchte auch, dass die x-Achse die Monate anzeigt. Der folgende Code erzeugt das folgende Diagramm. Ich möchte den letzten Abschnitt (Saison) nehmen und es zu einem einzigen Diagramm machen, wobei auch auf der x-Achse nicht nur die Jahre, sondern auch die Monate angezeigt werden.Plotten nur die saisonale Komponente des ETS-Modells - R

library(datasets) 
fit <- ets(AirPassengers) 
plot(fit) 

ETS Plot

Ich habe versucht, die richtige Komponente des fit-Objekt zu finden, aber ich war zu isolieren sie erfolglos.

Antwort

2

fit$states[,"s1"] haben wollen, ist ts.data der Saison. Paket xts hilft Ihnen mit dem Format des Datums.

library(datasets); library(xts); library(forecast) 

fit <- ets(AirPassengers) 
season <- fit$states[,"s1"] 

plot(as.xts(season), major.format = "%Y-%m", auto.grid=F) 

enter image description here

+0

Danke, das war genau das, was ich brauchte. Ich dachte, es wäre der "s1" -Teil von angepassten Staaten, aber ich konnte keine Dokumentation darüber finden und mein allgemeines Wissen ist gerade genug, um gefährlich zu sein. – user1723699

2

Versuchen Sie folgendes:

library(forecast) 
fit <- ets(AirPassengers) 
plot.2=function (x, ...){ 
    if (!is.null(x$lambda)) 
\t y <- BoxCox(x$x, x$lambda) 
    else y <- x$x 
    plot(cbind(season = x$states[,"s1"]), main = paste("Decomposition by", x$method, 
      "method"), ...) 
} 

plot.2(fit) 

Sie können einen Blick auf plot.ets

+0

Danke für die Antwort, funktioniert das so gut wie die, die ich als Antwort markiert, es sieht aus wie die andere erste war (kann ehrlich zu sein nicht sagen), aber ich habe Ihnen ein Upvote für Ihre Hilfe, ich wünschte, ich könnte Ihnen beide den Scheck geben. Danke noch einmal. – user1723699