2014-03-27 22 views
3

저는 GARCH (1,1) 모델을 두 개의 패키지 fGarch 및 rugarch와 함께 사용하여 매일 3980 로그 - 리턴.R (rugarch & fGarch 패키지)를 사용하는 GARCH 모델의 매개 변수 추정의 다른 중요성

fx_rates <- data.frame(read.csv("WMCOFixingsTimeSeries.csv", header=T, sep=";", stringsAsFactors=FALSE)) 
#data series 
EURUSD <- ts(diff(log(fx_rates$EURUSD), lag=1), frequency=1) 

#GARCH(1,1) 
library(timeSeries) 
library(fGarch) 
x <- EURUSD 
fit <- garchFit(~garch(1,1), data=x, cond.dist="std", trace=F, include.mean=F) 
[email protected]$matcoef 

library(rugarch) 
spec <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)), 
       mean.model=list(armaOrder=c(0,0), include.mean=F), distribution.model="std") 
gfit <- ugarchfit(spec, x, solver="hybrid", fit.control=list(stationarity=0)) 
[email protected]$matcoef 

두 모델은 다음과 같은 결과를 보여

fGarch :

[email protected]$matcoef 
     Estimate Std. Error t value  Pr(>|t|) 
omega 1.372270e-07 6.206406e-08 2.211054 2.703207e-02 
alpha1 2.695012e-02 3.681467e-03 7.320484 2.471356e-13 
beta1 9.697648e-01 3.961845e-03 244.776060 0.000000e+00 
shape 8.969562e+00 1.264957e+00 7.090804 1.333378e-12 

rugarch : 나는 추정이 동일하지 않은 이유에 스레드 http://r.789695.n4.nabble.com/Comparison-between-rugarch-and-fGarch-td4683770.html을 발견

[email protected]$matcoef 
      Estimate Std. Error  t value  Pr(>|t|) 
omega 1.346631e-07 3.664294e-07 0.3675008 7.132455e-01 
alpha1 2.638156e-02 2.364896e-03 11.1554837 0.000000e+00 
beta1 9.703710e-01 1.999087e-03 485.4070764 0.000000e+00 
shape 8.951322e+00 1.671404e+00 5.3555696 8.528729e-08 

, 그러나 표준 오류와 거기에 큰 차이를 알아낼 수 없습니다 오메가의 다른 의미를 통해 그 차이는 오메가가 중요하지 않기 때문에 연설 제한에 의해 야기 된 것은 아닙니다. 누구든지 추정 된 매개 변수 (오메가, 알파, 베타 및 뉴 (모양))의 표준 오차가 어떻게 계산되는지 알고 있습니까?

답변

1

H 경우 독일인이고 G 해당된다 H의 역변환 G 다시 H 역 배한이어서 G으로 전치 승산 행렬의 결과를 곱한 구배하게 C = H^-1 (G^T * G) H^-1이다. 표준 오차 계수는 대각선 입력의 제곱근 인 sqrt(diag(C))입니다. fGarch:::.garchFit 코드를 살펴보면 알 수 있습니다.

# Standard Errors and t-Values: 
if (DEBUG) print("Standard Errors and t-Values ...") 
fit$cvar <- 
    if (robust.cvar) 
     (solve(fit$hessian) %*% (t(fit$gradient) %*% fit$gradient) %*% 
     solve(fit$hessian)) 
    else 
     - solve(fit$hessian) 
fit$se.coef = sqrt(diag(fit$cvar)) 
fit$tval = fit$coef/fit$se.coef 
fit$matcoef = cbind(fit$coef, fit$se.coef,