Ich beabsichtige, einen Code zu erstellen, um die Kointegration von zwei Zeitreihen von Finanzpreisdaten zu überprüfen, um eine bessere Vorhersage von einem von ihnen zu machen.R: Argumente implizieren unterschiedliche Anzahl von Zeilen mit Finanzdaten
Zu diesem Zweck habe ich diese beiden Zeitreihen: BBVA historischen Preis und IBEX35 und diesen kleinen Code bauen:
ibex <- new.env()
bbva <- new.env()
library(quantmod)
getSymbols("^IBEX", env = ibex, src = "yahoo", from = as.Date("2010-01-04"), to = as.Date("2015-11-30"))
getSymbols("bbva", env = bbva, src = "yahoo", from = as.Date("2010-01-04"), to = as.Date("2015-11-30"))
ibex <- ibex$IBEX
ibex <- ibex$IBEX.Adjusted
bbva <- bbva$BBVA
bbva <- bbva$BBVA.Adjusted
ldbbva <- diff(log(bbva))
ldibex <- diff(log(ibex))
mean <- mean(ldbbva, na.rm = TRUE)
ldbbva[is.na(ldbbva)] <- mean
mean <- mean(ldibex, na.rm = TRUE)
ldbbva[is.na(ldibex)] <- mean
library(urca)
jotest=ca.jo(data.frame(ldbbva,ldibex), type="trace", K=2, ecdet="none", spec="longrun")
An diesem Punkt, wenn ich versuche, einen Datenrahmen aus meiner Zeitreihe zu machen, ich Gesicht dieser Fehler Argumente implizieren unterschiedliche Anzahl von Zeilen: 1488, 1514.
Was kann ich tun?
Welcher Teil der Fehlermeldung ist unklar? – Roland
Sie müssen wahrscheinlich verstehen, warum diese beiden Spalten unterschiedliche Längen haben. Meine Vermutung (das ist nur eine Vermutung) ist, dass "IBEX" kleiner ist, weil der spanische Continuous Market öfter geschlossen wird als andere Märkte und Ihnen Daten aus Tagen fehlen, an denen er geschlossen ist. Wenn dies der Fall ist, müssen Sie es möglicherweise an den entsprechenden Tagen mit "NA" erweitern. In jedem Fall - schauen Sie sich die Daten selbst an und sehen Sie, wo eine Diskrepanz zuerst entsteht. Kannst du diese Diskrepanz verstehen? –
Sie sollten wirklich Dinge benennen und wählen, was "Steinbock" und "bbva" sein sollte, entweder "Umgebungen" oder "Vektoren", Sie verwenden sie als beide und überschreiben wahrscheinlich Werte. (Die beiden Zeilen, die mit "ibex <-" beginnen, überschreiben einfach die ibex-Variable in der globalen Umgebung). Versuchen Sie, 'ibexenv' und' ibexvec' zu verwenden, um sich darüber klar zu werden, was was ist. (Dann für die Fehlermeldung, bauen Sie einfach die 'data.frame' aus dem 'ca.jo', können Sie besser warum es fehlschlägt. – Tensibai