extrapolieren in der R für eine time-series data
Ich habe eine time-series-Daten für die letzten 20 Jahre. Die variable wurde gemessen, jedes Jahr, so habe ich 20 Werte. Ich habe eine tab-getrennte Datei mit der ersten Spalte repräsentieren Jahres und die zweite Spalte den Wert.
Hier ist, wie es aussieht :
1991 438 1992 408 1993 381 1994 361 1995 338 1996 315 1997 289 1998 261 1999 229 2000 206 2001 190 2002 173 2003 151 2004 141 2005 126 2006 108 2007 99 2008 93 2009 85 2010 77 2011 71 2012 67
Ich soll zu extrapolieren den Wert der zweiten Spalte für die kommenden Jahre. Die rate, mit der die Werte in der zweiten Spalte ist die Verringerung ist auch runter geht, so denke ich, wir können nicht lineare regression. Ich möchte wissen, in welchem Jahr die zweite Spalte nähern sich dem Wert null. Ich habe noch nie verwendet, R also wäre es toll, wenn Sie auch mir helfen mit dem code, der verwendet wird zum Lesen der Daten aus einer tab-getrennten Datei.
Dank
Nicht zu erwähnen, ein ganzes Handbuch nur für die Daten-Eingabe/Ausgabe
Versuchen Sie dies:
library(zoo); library(forecast); z <- read.zoo("file.dat"); f <- forecast(z); print(f); plot(f)
und Lesen Sie die 5 Vignetten (PDF-Dokumente) hier: cran.r-project.org/web/packages/zoo/index.htmlNein, grundlegende Fragen auf, wie das Programm extrapolation sind sehr viel on-topic hier. Eigentlich hatte ich die Forschung es mir vor kurzem, und festgestellt, dass es eine Lücke in SO knowledgebase, also ich habe meine Antwort. Ehrlich gesagt, R ist ein wirres Durcheinander auf interpolation/extrapolation.
Aber ja, mischen dies mit einer Frage an das Lesen in der Datei war auch nicht gerade förderlich um sich eine gute Antwort.
InformationsquelleAutor user1985425 | 2013-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Folgende ist eine Skizze, die helfen können Sie loslegen.
In diesem Fall unser Modell sagt, die Linie wird nie Kreuz auf null. Wenn das keinen Sinn macht, dann werden Sie wollen, wählen ein anderes Modell. Für welches Modell Sie auswählen, Kurve mit dem Ergebnis zusammen mit den Daten, so dass Sie sehen können, wie gut Sie tun.
entweder das, oder definieren
tmp$pred1
vor dem erstellenp1
oder machen geom_line Lesen Sie die Daten wieder mitgeom_line(aes(y = pred1), color="red", data = tmp)
Ich habe bearbeitet die Antwort, die Definition
tmp$pred1
ersten.InformationsquelleAutor Ista
Zu Lesen, in der Sie Daten von formatierten Datei:
sehen und die Lesen.Tabelle manpage
Zu extrapolieren die Daten:
als EDi und Dirk gesagt, Sie müssen noch ein wenig Lesen. Entscheiden Sie, welche Art der extrapolation fn, die Sie wollen: linear (Hmisc::approxExtrap für die lineare extrapolation; approxfun tut interpolation aber keine extrapolation), spline(stats::splinefun oder splines - Paket), etc.
splinefun
ist wahrscheinlich ok, für Ihren Fall.Speziell für die Prognose von Zeitreihen, siehe Prognose (sollten Sie auch durchsuchen Verwandte Fragen).
Nachdem Sie überfliegen diese manpages, etwas ausprobieren, post code und sagen Sie uns, wo Sie stecken, kann reagieren. Andernfalls erhalten Sie gnadenlos geflamed und deine Frage wird wahrscheinlich geschlossen werden, wie 'Give me teh codez' 😉
Kleine Korrektur:
approxfun
Linear interpoliert, aber nicht extrapoliert Linear - vielmehr ist es entweder zurück NA, oder "den Wert auf die nächsten Daten extreme".stimmt, aber
Hmisc::approxExtrap
hatInformationsquelleAutor smci