2017-07-05 1 views
1

rのtbats()関数を使用して予測モデルを作成しています。rのtbats()でpとqを手動で設定するには?

誰かが手動でARMA(p、q)をtbats()関数に直接渡す方法を知っていたのでしょうか?

編集:質問が曖昧だった場合はお詫び申し上げます。

"エラーのARMA(p、q)モデルを選択すると、auto.arimaに渡される追加の引数(xregは無視されますが、 "

ARMA(p、q)を手動で制御することは引数を渡して行うことができることが明確に記載されています直接tbats()関数に渡します。誰もこれを行う方法を知っていますか?

https://www.rdocumentation.org/packages/forecast/versions/7.3/topics/tbats

+0

あなたは[再現可能な例](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)を提供する場合、あなたを助けるために容易になるだろうサンプルデータとコードを使用して、何をしようとしているのかを明確にしようとしています。 – MrFlick

答えて

0

まもなく、あなたがすることはできません。

tbatsはハイブリッドアルゴリズムなので、ARMAモデルを構築することは考えないでください。関数tbatsは、booleanパラメータuse.arma.errors=TRUE/FALSEによってarmaエラー項を自動的に適用します。これは、残差をより良くモデリングしようとします。

ARIMAモデルを構築する場合は、予測パッケージからauto.arimaを使用できます。 tbats

omega<-USJudgeRatings[,1];p<-10; q<-2; phi<-3; 
tbats(omega, p,q, phi,use.arma.errors=TRUE) 
BATS(0, {0,0}, 0.979, -) 

Call: tbats(y = omega, use.box.cox = p, use.trend = q, use.damped.trend = phi, 
    use.arma.errors = TRUE) 

Parameters 
    Lambda: 0 
    Alpha: -0.04239053 
    Beta: 0.04362955 
    Damping Parameter: 0.978616 

Seed States: 
     [,1] 
[1,] 1.917976 
[2,] 0.017468 

Sigma: 0.1206409 
AIC: 163.774 

use.box.coxのための私のパラメータp、qおよびファイスタンド、use.trendについてauto.arima

auto.arima(USJudgeRatings[,1], ic='aicc', stepwise=FALSE, start.p=3, start.q=1, max.p=3, max.q=3) 

例について

例とuse.damped.trend。

さらに情報


  1. 予報パッケージhereの異なるモデルを使用する方法について優れたデモンストレーションがあります。 Tbatsの

  2. 定義は、以下である:

[Tbats】時系列分解モデルは、季節周期的傾向、及び不規則な成分に時系列 を分解から成ります。その後、各成分が明示的に推定され、統計的に測定される。 。 最終的なモデル を推定し、今後の予測を計算するために、各推定成分が再結合されます。Aバットモデル は、追加の自己回帰と モデルの残差に提示より良いモデルに平均 成分(P、Q)を移動させる任意の残りのパターンを組み込みます。Source

+1

私は参照してください。ご説明ありがとうございます。私は混乱していたと思います。ドキュメントの中で、関数のARMA(p、q)要素を手動で制御できるように見えます。 "ARMA(p、q)を選択するときにauto.arimaに渡される追加の引数は、 (xregは無視され、季節性や差分についての引数は**であるが、pとqの値を制御する引数は**が使用されることに注意してください**)。 – TrevUsesR

0

tbats...引数は、ドキュメント(?tbats)私たちは、引数があることがわかりauto.arimaのドキュメントを見てみると

...: Additional arguments to be passed to ‘auto.arima’ when 
     choose an ARMA(p, q) model for the errors. (Note that 
     xreg will be ignored, as will any arguments concerning 
     seasonality and differencing, but arguments controlling 
     the values of p and q will be used.) 

から、auto.arimaに渡されますpqの値を設定します。だから、

auto.arima(y, d = NA, D = NA, max.p = 5, max.q = 5, max.P = 2, 
    max.Q = 2, max.order = 5, max.d = 2, max.D = 1, start.p = 2, 
    start.q = 2, start.P = 1, start.Q = 1, stationary = FALSE, 
    seasonal = TRUE, ic = c("aicc", "aic", "bic"), stepwise = TRUE, 
    trace = FALSE, approximation = (length(x) > 150 | frequency(x) > 12), 
    truncate = NULL, xreg = NULL, test = c("kpss", "adf", "pp"), 
    seasonal.test = c("ocsb", "ch"), allowdrift = TRUE, allowmean = TRUE, 
    lambda = NULL, biasadj = FALSE, parallel = FALSE, num.cores = 2, 
    x = y, ...) 

、あなたがやっている仕事のために、初期値を制御し、検索を参照するにはtbats呼び出しに引数start.pstart.q、およびtraceを追加しました。

この例では、最高のモデルはARIMA(0, 0, 0) with zero meanです。 BATS(0, {0,0}, 0.979, -)は、{p, q} = {0, 0}の値が選択されたことを示します。

library(forecast) 

omega <- USJudgeRatings[,1] 

tbats(y    = omega, 
     use.box.cox  = TRUE, 
     use.trend  = TRUE, 
     use.damped.trend = TRUE, 
     use.arma.errors = TRUE, 
     start.p = 3, 
     start.q = 2, 
     trace = TRUE) 
# 
# ARIMA(3,0,2) with non-zero mean : Inf 
# ARIMA(0,0,0) with non-zero mean : -55.63664 
# ARIMA(1,0,0) with non-zero mean : -53.50348 
# ARIMA(0,0,1) with non-zero mean : -53.47905 
# ARIMA(0,0,0) with zero mean  : -57.75828 
# ARIMA(1,0,1) with non-zero mean : -51.19495 
# 
# Best model: ARIMA(0,0,0) with zero mean  
# 
# BATS(0, {0,0}, 0.979, -) 
# 
# Call: tbats(y = omega, use.box.cox = TRUE, use.trend = TRUE, use.damped.trend = TRUE, 
#  use.arma.errors = TRUE, start.p = 3, start.q = 2, trace = TRUE) 
# 
# Parameters 
# Lambda: 0 
# Alpha: -0.04239053 
# Beta: 0.04362955 
# Damping Parameter: 0.978616 
# 
# Seed States: 
#   [,1] 
# [1,] 1.917976 
# [2,] 0.017468 
# 
# Sigma: 0.1206409 
# AIC: 163.774 
+0

Fantastic!どうもありがとうございました。これはまさに私が探していたものでした。私は 'trace = T'引数を含んでいませんでした。私はupvotedとあなたにチェックマークを付けました。しかし、私のアカウントは新しいです。 – TrevUsesR

関連する問題