2016-11-15 3 views
0

私はRで異なるGARCHモデルをモアにしようとしていて、AIC値(最低のものが最適です)で比較しようとしています。私はデータセットを使用し、2つの方法でAICを取り出しました。GARCHモデルをRに入れて

方法1:株価データを収集しました(2010年1月4日から2016年11月9日まで、& p cnx niftyのデータを閉じています)、ログを取って差し引いてからauto arimaログ値の差、のAとして設定されたデータを呼びましょう)がベストフィットがMA1であることが判明して、方法1で

Res2<- (MA1$residuals)^2 

を使用して残差の正方形を得て、私は構文に

garchoutput <- garch(Res2,order=c(1,1)) 
    CIC<-AIC(garchoutput) 
を使用していました

これは私に-23682.50のAIC値を与えます。パッケージ 'tseries'を同じものに使用しました。

方法2:私はここに

spec <- ugarchspec(variance.model = list(garchOrder = c(1, 1), 
            submodel = NULL, 
            external.regressors = NULL, 
            variance.targeting = FALSE), 

       mean.model  = list(armaOrder = c(0, 1), 
            external.regressors = NULL, 
            distribution.model = "norm", 
            start.pars = list(), 
            fixed.pars = list())) 

garch <- ugarchfit(spec = spec, data = A, solver.control = list(trace=0)) 
garch 
私はAでそれを入れて、モデル自体がARIMA90とGARCH(1,1)に収まるデータを

を、すなわち「rugarch」別のパッケージを使用して、以下の構文を使用、0,1)、すなわちMA1。

私が受け取る出力は、大量のデータを持っているが、それはまた

OUTPUT of Method 2

は、私が問い合わせしたいことは二つの値に差がある理由としてあるAIC値を持っています。また、誰かが私に、rugarchの代わりにパッケージfgarchをどのように使用できるのか、そしてその2つの違いを説明することができれば、それは非常に有益です。

データの可用性のため分析が難しい場合はお知らせください。 質問の枠が正しくない場合にはお詫び申し上げます。

答えて

0

これは少し遅れているかもしれませんが、これは以前にthis postまたはthis postのCross Validatedで尋ねられ、回答されています。 は、基本的には長さで割った「ノーマル」AICされているAICのバージョンをスケーリングし

いくつかのパッケージ(例えばfgarchrugarchまたはrmgarch)を使用:上記の答えを要約する

(通常、nまたはNと表示されます)。

rugarchパッケージの場合、AIC here on page 23の仕様を見ることができます。お使いの時系列の長さ

または

  • rugarchから AICを掛ける

    • を:あなたはどちらかで両者を比較することができ、あなたの具体的な例

      AICはあなたの長さでtseriesから分けます

      CIC = AIC(garchoutput)/length(Res2) 
      

    もう一つ:のようなrの時系列、。私が知る限り、データにgarch-modelを当てる前に、あなたのフィットしたauto.arimaオブジェクトから残差を平方にする必要はありません。 tseriesモデルで平方和剰余を使用し、rugarchモデルのログを返すと、2つの非常に異なるデータセットを比較できます。

  • 関連する問題