1

Ich möchte ccgarch Paket in R verwenden. Vor allem, was sind die anfänglichen Werte in diesem Paket? Wie kann ich diese Werte angeben? Wie kann ich loglik.eccc verwenden und param dafür definieren? Zum Beispiel, wenn ich param=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14) habe, ändert sich dieser Parameter nicht und ich habe vorherige Standardwerte für param.Wie kann ich Anfangswerte in ccfarph-Paket von (R) angeben?

# computing a likelihood value for the (E)CCC-GARCH(1,1) mdoel 
    loglik.eccc <- function(param, dvar, model){ 
     nobs <- dim(dvar)[1] 
     ndim <- dim(dvar)[2] 
     para.mat <- p.mat(param, model, ndim) 
     a <- para.mat$a 
     A <- para.mat$A 
     B <- para.mat$B 
     R <- para.mat$R 

     # check if R is positive definite 
     eigenR <- eigen(R)$values 
     if(max(abs(R[lower.tri(R)]))>1.0||min(eigenR)<0||!is.double(eigenR)){ 
     R <- diag(ndim) 
     } 
     h <- vector.garch(dvar, a, A, B) 
     z <- dvar/sqrt(h) 
     lndetR <- log(det(R)) 
     invR <- solve(R) 
     lf <- -0.5*nobs*ndim*log(2*pi) - 0.5*sum(log(h)) - 0.5*nobs*lndetR - 0.5*sum((z%*%invR)*z) 
     -lf 

    } 

Antwort

1

Ich möchte ccgarch Paket in R. Zunächst einmal verwenden, Was sind in diesem Paket Anfangswerte?

Ich bin ziemlich sicher gibt es keine Standardparameter. Wenn Sie versuchen, Ihren Code auszuführen, ohne param Angabe sollten Sie etwas entlang der Linien erhalten (Anmerkung: Ich tat dies mit dem Befehl loglik.dcc):

Error in loglik.dcc(dvar = my.df, model = "diagonal") : 
argument "param" is missing, with no default 

Wie kann ich diese Werte angeben?

Ich empfehle Ihnen, die Beispiele in der Dokumentation zum ccgarch-Paket zu überprüfen. Während für loglik.eccc kein Beispiel angegeben ist, gibt es jedoch ein schönes Beispiel für loglik.dcc.

Auf die Dokumentation kann zugegriffen werden here. Das Beispiel auf Seite 24/25 ist die folgende:

## Not run: 
# Simulating data from the original DCC-GARCH(1,1) process 
    nobs <- 1000; cut <- 1000 
    a <- c(0.003, 0.005, 0.001) 
    A <- diag(c(0.2,0.3,0.15)) 
    B <- diag(c(0.75, 0.6, 0.8)) 
    uncR <- matrix(c(1.0, 0.4, 0.3, 0.4, 1.0, 0.12, 0.3, 0.12, 1.0),3,3) 
    dcc.para <- c(0.01,0.98) 
    dcc.data <- dcc.sim(nobs, a, A, B, uncR, dcc.para, model="diagonal") 

# Estimating a DCC-GARCH(1,1) model 
    dcc.results <- dcc.estimation(inia=a, iniA=A, iniB=B, ini.dcc=dcc.para, 
    dvar=dcc.data$eps, model="diagonal") 
# Parameter estimates and their robust standard errors 
    dcc.results$out 
# Computing the value of the log-likelihood at the estimates 
    loglik.dcc(dcc.results$out[1,], dcc.data$eps, model="diagonal") 
## End(Not run) 

dcc.results$out zeigen Ihnen die geschätzten Parameter:

> dcc.results$out 
        a1   a2   a3   A11  A22  A33   B11  B22  B33 dcc alpha 
estimates 0.002390773 0.00477909 0.001010304 0.199707914 0.2738877 0.13370911 0.7644433750 0.61175081 0.82020157 0.018729549 
std.err 0.000703168 0.03576364 0.032840012 0.001213087 0.0439388 0.05675561 0.0003626412 0.02548092 0.03398187 0.008090084 
      dcc beta 
estimates 0.93071563 
std.err 0.03659041 

, die Sie in die Berechnung des loglik.dcc verwenden:

loglik.dcc(dcc.results$out[1,], dcc.data$eps, model="diagonal") 
[1] 6316.604 

Abschließend können Sie:

1. Stellen Sie eine Parametervektor selbst

Ihr Beispiel param=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14) verletzt, einige sehr wichtige Modellstützen. Ich empfehle dringend, dass Sie mehr über die Einschränkungen des Modells lesen, das Sie untersuchen (ich finde, dass dies sehr schön in this Journalartikel auf S. 160 vom Großvater aller GARCH Modelle, Robert Engle, erzählt wird.)

In Kurz: Sie können in den oben genannten geschätzten Parametern sehen, dass sie alle im Bereich 0 < a, A and B < 1 liegen. Wenn Sie sich für etwas entscheiden, orientieren Sie sich an diesen Parametern.

2. Schätzen Sie sie basierend auf Ihren Daten und verwenden Sie sie wie im obigen Beispiel dargestellt.

Beachten Sie, dass das Beispiel für 3 Serien ist. Wenn Sie mehr/weniger Dimensionen verwenden, müssen Sie die Anfangsparameter anpassen. Das ccgarch2 Paket e. G. können Sie Schätzungen vornehmen, ohne Anfangswerte festzulegen. Es wird sie zufällig erzeugen.

Außerdem, wie kann ich loglik.eccc verwenden und param dafür definieren?

Dies sollte durch die obigen Beispiele abgedeckt sein.

+1

Es tut mir leid, du hast mich verloren. Also haben Sie ein Modell mit 'eccc.estimation' geschätzt und möchten nicht die Parameter verwenden, die Ihnen die Schätzung gegeben hat? – Numb3rs

+0

Ich möchte diese Parameter verwenden, aber, wie identifiziere ich die entsprechenden Anfangswerte? –

+1

Ah, jetzt verstehe ich es. Sie möchten also wissen, ob es eine Art Best Practice gibt, wie Sie Ihre Anfangsparameter einstellen können. Leider denke ich nicht, dass es da ist. Sie können sich [dieses Papier] (http://faculty.washington.edu/ezivot/research/practicalgarchfinal.pdf) ansehen. Auf Seite 10 und 12 diskutieren sie dieses Thema (auf Seite 10 geben sie an, wie Anfangsparameter in der Praxis eingestellt werden können). – Numb3rs

Verwandte Themen