R: Extrahieren von Werten aus der Zusammenfassung()
Ich bin mit dem urca Paket zur Durchführung einiger Berechnungen auf unit roots.
Zum Beispiel, verwenden Sie folgenden Datensatz aus dem urca-Paket:
library(urca)
data(Raotbl3)
attach(Raotbl3)
Anwendung des Augmented Dickey Fuller test sieht wie folgt aus:
lc.df <- ur.df(y=lc, lags=3, type='trend')
summary(lc.df)
Im Gegenzug bekommen wir eine Zusammenfassung aller Werte. Allerdings möchte ich extrahieren nur bestimmte Werte. Mögliche Felder sind hier:
slotNames(summary(lc.df))
# [1] "classname" "test.name" "testreg" "teststat" "cval" "bpoint" "signif" "model" "type" "auxstat"
# [11] "lag" "H" "A" "lambda" "pval" "V" "W" "P"
Interessanterweise
ur.df(y=lc, lags=3, type='trend')@teststat
# tau3 phi2 phi3
# statistic -2.239 3.738 2.597
oder
ur.df(y=lc, lags=3, type='trend')@cval
# 1pct 5pct 10pct
# tau3 -4.04 -3.45 -3.15
# phi2 6.50 4.88 4.16
# phi3 8.73 6.49 5.47
funktioniert Prima. Allerdings extrahieren von Werten aus "pval" oder "lag" nicht funktioniert (gibt "NULL").
Als ich sah hier, entdeckte ich, dass das problem erscheint mit jeder variable, "=NULL". Nicht sicher, ob es wichtig ist.
setMethod("summary", "ur.df", function(object){
return(new("sumurca", classname="ur.df", test.name=object@test.name,
testreg=object@testreg, teststat=object@teststat,
cval=object@cval, bpoint=NULL, signif=NULL,
model=object@model, type=NULL, auxstat=NULL, lag=NULL,
H=NULL, A=NULL, lambda=NULL, pval=NULL, V=NULL, W=NULL, P=NULL))
})
Irgendeine Idee, wie man dieses Problem lösen?
testreg
slot, Sie könnte tun with(as.list(lc.df@testreg$fstatistic), pf(value, numdf, dendf, lower=FALSE))
Wenn es
NULL
es NULL
. Nur weil der slot benannt ist, bedeutet nicht, es enthält etwas.Genial, es funktioniert! Wie haben Sie herausfinden, über die Struktur? Ich Frage deshalb, weil ich würde auch "lag".
Gelöst: summary(ur.df(merged_table_type$ks_sum, type = "none", lags = 12, selectlags = "AIC"))@testreg$fstatistic[2] wird numdf, das ist der lag.
InformationsquelleAutor Christopher | 2015-09-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Holen Sie sich die slots mit @ und danach wie gewohnt:
slot(lc.df, "testreg")
InformationsquelleAutor Robert