1

Rでccgarchパッケージを使いたいです。まず、このパッケージの初期値はどうですか?これらの値はどのように指定できますか?(R)のccgarphパッケージの初期値はどのように指定できますか?

さらに、loglik.ecccを使用してparamを定義するにはどうすればよいですか?たとえば、param=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14)がある場合、このパラメータは変更されず、以前のデフォルト値はparamです。私はすべてのR.まずでccgarchパッケージを使用したい

# 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 

    } 

答えて

1

、このパッケージの初期値は何ですか?

私はかなり確信していますのデフォルトパラメータはありません。あなたがparamを指定せずに、あなたのコードを実行しようとする場合は、線に沿って何かを取得する必要があります(注:私はコマンドloglik.dccでこれをやった):

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

がどのように私は、これらの値を指定することができますか?

ドキュメントの例をccgarchパッケージにチェックアウトすることをおすすめします。 loglik.ecccの例はありませんが、loglik.dccの良い例があります。

hereにアクセスすることができます。ページ24/25上の例は以下の通りです:

## 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あなたに推定されたパラメータが表示されます:

> 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 

あなたがloglik.dccの計算に使用することができます。

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

これで終わることができます:

1.パラメータベクトルを自分で設定する

param=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14)は、いくつかの非常に重要なモデルの制約に違反しています。私はあなたが探しているモデルの制限についてもっと読むことを強くお勧めします(これは、GARCHモデルのすべての祖父であるthisジャーナルの記事、Robert Engleで非常にうまく説明されています)。

In短い:上記の推定パラメータでは、すべてが範囲0 < a, A and B < 1にあることがわかります。あなたが何かのために行くなら、それらのパラメタに自分自身を向ける。

2.データに基づいて推定し、上記の例に示すように使用します。

例は3シリーズ用です。より多くの/より小さいディメンションを使用する場合は、初期パラメータを調整する必要があります。 ccgarch2パッケージe。 g。初期値を設定せずに見積もりを行うことができます。ランダムに生成されます。

さらに、loglik.ecccを使用してparamを定義するにはどうすればよいですか?

これは上記の例/ナレーションによってカバーされる必要があります。

+1

申し訳ありませんが、私を失ってしまいました。だからあなたは 'eccc.estimation'を使ってモデルを推定しました。推定値を使ってパラメータを使いたくないのですか? – Numb3rs

+0

私はこのパラメータを使用したいが、適切な初期値をどのように特定するのか? –

+1

ああ、今私はそれを手に入れます。したがって、初期パラメータを設定する方法に何らかのベストプラクティスがあるかどうかを知りたいとします。残念ながら私はそこにいるとは思わない。 [この論文](http://faculty.washington.edu/ezivot/research/practicalgarchfinal.pdf)を見ることができます。 10ページと12ページで、トピック(10ページの例では、実際にどのように初期パラメータを設定できるかなど)を説明します。 – Numb3rs

関連する問題