2016-04-25 12 views
0

ich das Jahresergebnis von Google in den vergangenen 4 Jahre heruntergeladenExtrapolation Zeitreihe

library(quantmod) 
getFinancials(GOOG) 
df<-viewFinancials(GOOG.f, type='IS', period='A',subset = NULL)['Net Income',] 
df<-(as.data.frame(df)) 

Hier wird, wie die Daten angezeigt:

2015-12-31 16348 
2014-12-31 14136 
2013-12-31 12733 
2012-12-31 10737 

Ich möchte „extrapolieren“ diese Daten als ein durchschnittliches lineares Wachstum in den nächsten 10 Jahren, etwas auf diese Weise:

enter image description here.

In Excel, alles was ich brauche die obigen Daten einfügen, sortiert nach ältestem neuesten, wählen Sie es, und „strecken“ die Auswahl über 10 zusätzliche Zeilen, mit diesem Ergebnis:

12/31/2012 10737 
12/31/2013 12733 
12/31/2014 14136 
12/31/2015 16348 
12/31/2016 18048 
12/31/2017 19871 
12/31/2018 21695 
12/31/2019 23518 
12/31/2020 25342 
12/31/2021 27166 
12/31/2022 28989 
12/31/2023 30813 
12/31/2024 32636 
12/31/2025 34460 

Wie kann ich mach dasselbe (oder etwas in der Nähe) in R?

Antwort

2

Es dauert ein paar zusätzliche Schritte in R. Hier ist Ihre Beispieldaten:

date<-as.Date(c("2015-12-31", "2014-12-31", "2013-12-31", "2012-12-31")) 
value<-c(16348, 14136, 12733, 10737) 

ein lineares Wachstum in die Zukunft Unter der Annahme. Verwenden Sie den Befehl lm, um die lineare Regression durchzuführen. Die Variable "Modell" speichert die Anpassung.

#fit linear regression 
model<-lm(value~date) 

10 Jahre in die Zukunft der Suche, ein Datum Sequenz für die nächsten 10 Jahre und Speicher als Datenrahmen (erforderlich für den Befehl vorhersagen) erstellen

#build predict dataframe 
dfuture<-data.frame(date=seq(as.Date("2016-12-31"), by="1 year", length.out = 10)) 
#predict the futurne 
predict(model, dfuture, interval = "prediction") 

Das obige Modell lineares Wachstum annimmt. Wenn es eine andere Vorhersage gibt, wie das Wachstum sein würde, dann muss lm Formel modifiziert werden oder die nlm-Gleichung verwenden. Ich werde die Warnungen über Vorhersagen außerhalb des Bereichs der verfügbaren Daten weglassen.

+0

das ist es. Es funktioniert reibungslos für "GOOG", aber wenn ich es auf "TSLA" anwendete, sagte es nur 4 statt 10 Jahre voraus. Weißt du, warum? Zu unberechenbar? – Oposum

+0

Die Vorhersagefunktion sollte eine Schätzung für jede Zeile in dem Datenrahmen erzeugen, der an sie übergeben wird. Stellen Sie sicher, dass die Spaltennamen im Datenrahmen mit den Namen der abhängigen Variablen im Modell übereinstimmen! Im obigen Fall war das lm-Modell value vs. "date" und somit wurde der Spaltenname im dfuture-Datenframe auch "date" genannt. – Dave2e

+0

hab es geschafft, danke! – Oposum