0

Doornik & Ooms が 2002 年に説明した方法を使用して、ドイツ株式指数 (dax) の加算的および革新的な外れ値を見つけようとしています。

ステップ 1 ベースライン GARCH モデルを推定して対数尤度 (lb) と残差を取得する

ステップ 2 t = s での最大の (絶対値での) 標準化残差を見つけます。平均にダミー dt=1 if (t = s)、分散に dt−1 を使用して拡張 GARCH モデルを推定します。これにより、追加されたパラメーターと対数尤度 (lm) の推定値が得られます。

ステップ 3 2(lm-lb) < C の場合は終了します。C=5.66+1.88log(T) でそれ以上の異常値は存在しません。T は観測数です。

データは 2014 年 6 月 2 日から 2016 年 1 月 1 日までの DAX (Deutscher Aktienindex) であり、その時点で pdfetch が適切に機能しなかったため、Datastream 経由で取得しました。私の質問は、ダミー変数を拡張 GARCH モデルにどのように実装するかです。

これまでの私のコード:

    # Preparation:
    library("rugarch")
    library("tseries")
    library("xts")

    dax <-read.csv2("~/Bachelorarbeit/Daten/DAXINDX_Time_Series_010114_010116_final.csv", stringsAsFactors=FALSE)
    dax_xts<-xts(dax, order.by=as.Date.character(dax$Date, format="%Y-%m-%d")) #Convert into xts-format
    dax_xts$Date=NULL #Remove "Date"-Column
    storage.mode(dax_xts)<- "numeric"
    colnames(dax_xts)<-c("Dax") #Rename Column-Names

    dax.logs.prep<-diff(log(dax$Index), lag=1)
    dax.date<-dax$Date[-1]
    dax.logs<-data.frame(dax.date,dax.logs.prep)
    dax_ret<-xts(dax.logs, order.by=as.Date.character(dax.logs$Date, format="%Y-%m-%d")) #Convert into xts-format
    dax_ret$Date=NULL #Remove "Date"-Column
    storage.mode(dax_ret)<- "numeric"
    colnames(dax_ret)<-c("Index Returns") #Rename Column-Names

    # Step 1: Estimate baseline GARCH model to obtain log-likelihood and residuals
    dax_mod<-garch(dax_ret, order = c(1,1))
    l.b<-dax_mod$n.likeli
    dax_mod.res<-data.frame(dax.date, dax_mod$residuals)

    # Step 2: Find largest absolute standardized residual
    max(abs(dax_mod.res$dax_mod.residuals/sd(dax_mod.res$dax_mod.residuals,    na.rm = TRUE)), na.rm = TRUE)
    specgarch <- ugarchspec(variance.model=list(model="sGARCH", external.regressors= dummy), mean.model=list(external.regressor=dummy), distribution="norm")
    garchfit <- ugarchfit(data=dax_ret, spec=specgarch)
4

0 に答える 0