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?

es ist gespeichert, dass 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

Schreibe einen Kommentar