7.9 指数平滑法モデル
ore.odmESM
クラスは、データベース内の指数平滑法モデル(ESM)アルゴリズムを使用してクラスタリング・モデルを作成します。
指数平滑法は、半世紀以上にわたって予測に広く使用されています。戦略的、戦術的および運用レベルで応用できます。たとえば、戦略的レベルでは、投資利益率、成長率、イノベーションの効果などを推定するために予測が使用されます。戦術的レベルでは、原価、在庫要件、顧客満足などを推定するために予測が使用されます。運用レベルでは、ターゲットの設定や品質および標準への適合性を予想するために予測が使用されます。
最も単純な形式の指数平滑法は単一パラメータを使用した移動平均法であり、この手法では、将来の値に対する過去のレベルの影響の指数関数的な減少をモデル化します。指数平滑法は、様々な拡張によって、Box-Jenkins自己回帰和分移動平均(ARIMA)法などの、他のよく知られた方法よりも幅広いクラスのモデルを扱います。データベース内の指数平滑法アルゴリズムは、理論上およびパフォーマンス上の利点を提供する単一の誤差原因(SSOE)の仮定を組み込んだ最先端の状態空間法を使用します。
複数の時系列を操作できると、時系列回帰への入力を作成するのに便利です。複数の時系列で、時系列回帰への入力として使用する、共通の時間間隔が設定された複数の時系列モデルを作成します。時系列モデルの1つを、関心があるターゲット時系列として指定します。複数時系列モデルの詳細は、Oracle Machine Learning for SQLコンセプト・ガイドを参照してください。
指数平滑化の動作は、許容可能な時系列モデルを自動的に検索するように変更されています。モデル・タイプ(EXSM_MODEL)
を指定しなかった場合、アルゴリズムはデフォルトでモデル・タイプを自動的に決定します。詳細は、Oracle Machine Learning for SQLコンセプト・ガイドを参照してください。
ESMモデルの設定
次の表に、ESMモデルに適用される設定を示します。
表7-8 ESMモデルの設定
設定名 | 設定値 | 説明 |
---|---|---|
EXSM_MODEL |
{EXSM_SIMPLE、EXSM_SIMPLE_MULT、EXSM_HOLT、EXSM_HOLT_DMP、EXSM_MUL_TRND、EXSM_MULTRD_DMP、EXSM_SEAS_ADD、EXSM_SEAS_MUL、EXSM_HW、EXSM_HW_DMP、EXSM_HW_ADDSEA、EXSM_DHW_ADDSEA、EXSM_HWMT、EXSM_HWMT_DMP}のいずれか |
この設定により、モデルが指定されます。
デフォルト値は |
|
|
この設定により、季節性循環の長さとして正の整数値が指定されます。指定する値は、 この設定は、季節性を持つモデルにのみ適用可能であり、指定する必要があります。それ以外の場合、モデルによりエラーがスローされます。
|
|
{EXSM_INTERVAL_YEAR、EXSM_INTERVAL_QTR、EXSM_INTERVAL_MONTH、EXSM_INTERVAL_WEEK、EXSM_INTERVAL_DAY、EXSM_INTERVAL_HOUR、EXSM_INTERVAL_MIN、EXSM_INTERVAL_SEC}のいずれか |
この設定は、時間列( 入力表の時間列が日時型の場合、 入力表の時間列がOracle数値型の場合、 |
|
{EXSM_ACCU_TOTAL、EXSM_ACCU_STD、EXSM_ACCU_MAX、EXSM_ACCU_MIN、EXSM_ACCU_AVG、EXSM_ACCU_MEDIAN、EXSM_ACCU_COUNT}のいずれか |
この設定は、時間列が日時タイプである場合にのみ適用され、指定する必要があります。この設定により、入力時系列から累積された時系列の値を生成する方法が指定されます。 |
|
{EXSM_MISS_MIN、EXSM_MISS_MAX、EXSM_MISS_AVG、EXSM_MISS_MEDIAN、EXSM_MISS_LAST、EXSM_MISS_FIRST、EXSM_MISS_PREV、EXSM_MISS_NEXT、EXSM_MISS_AUTO}のいずれか。 |
この設定では、欠損値の処理方法を指定します。欠損値は、入力データや時系列の累積処理で発生することがあります。数値またはオプションのどちらかを指定できます。数値が指定された場合は、すべての欠損値がその数値に設定されます。
この設定が指定されていない場合、 |
|
デフォルト値: 1。 |
この設定では、何ステップ先の予測を行うかを指定します。 設定されていない場合、デフォルト値は |
|
|
この設定では、予測に対して目的とする信頼水準を指定します。 指定した信頼区間の上限と下限が報告されます。この設定が指定されていない場合、デフォルトの信頼水準は0.95です。 |
EXSM_OPT_CRITERION |
{EXSM_OPT_CRIT_LIK、EXSM_OPT_CRIT_MSE、EXSM_OPT_CRIT_AMSE、EXSM_OPT_CRIT_SIG、EXSM_OPT_CRIT_MAE}のいずれか。 |
この設定では、目的とする最適化基準を指定します。最適化基準は、同じデータへのモデルの適合性を比較するための診断として役立ちます。
デフォルト値は、 |
|
|
この設定により、誤差メトリックの平均二乗誤差の平均(AMSE)を計算するときに使用されるウィンドウの長さが指定されます。 |
ノート: Oracle Database 23aiでのみ使用できます。 |
時系列列のカンマ区切りリスト |
この設定を使用すると、ターゲット系列に加えて最大20個の予測子系列を予測できます。
接頭辞 |
ノート: Oracle Database 23aiでのみ使用できます。 |
|
設定EXSM_INITVL_OPTIMIZE によって、モデルの作成中に初期値が最適化されるかどうかが決まります。デフォルト値はEXSM_INITVL_OPTIMIZE_ENABLE です。
ノート: EXSM_INITVL_OPTIMIZE をEXSM_INITVL_OPTIMIZE_DISABLE に設定できるのは、ユーザーがEXSM_MODEL をEXSM_HW またはEXSM_HW_ADDSEA に設定した場合のみです。EXSM_MODEL が別のモデル・タイプに設定されているか、指定されていない場合、エラー40213 (競合する設定)がスローされ、モデルは作成されません。
|
例7-8 ore.odmESM関数の使用方法
この例では、データ・フレームIRIS: を一時データベース表IRISにプッシュし、指数平滑法モデルを作成します。
# Turn off row ordering warnings.
options(ore.warn.order=FALSE)
# Data setup
set.seed(7654)
N <- 100
dat <- data.frame(ID=1:N, VAL=runif(N))
# Create the a temporary OML4R proxy object DAT.
DAT <- ore.push(dat)
# Create an ESM regression model object. Fit the ESM model according to the data and setting parameters.
esm.mod <- ore.odmESM(VAL ~ ., DAT,
odm.settings = list(case_id_column_name = "ID",
exsm_prediction_step = 4))
esm.mod
summary(esm.mod)
この例のリスト
Call: ore.odmESM(formula = VAL ~ ., data = DAT, odm.settings = list(case_id_column_name = "ID", exsm_prediction_step = 4))
Settings:
value
confidence.level .95
model imple
nmse 3
optimization.crit opt.crit.lik
prediction.step 4
setmissing miss.auto
odms.details odms.enable
odms.missing.value.treatment odms.missing.value.auto
odms.sampling odms.sampling.disable
prep.auto ON
Call: ore.odmESM(formula = VAL ~ ., data = DAT, odm.settings = list(case_id_column_name = "ID", exsm_prediction_step = 4))
Settings:
value
confidence.level .95
model simple
nmse 3
optimization.crit opt.crit.lik
prediction.step 4
setmissing miss.auto
odms.details odms.enable
odms.missing.value.treatment odms.missing.value.auto
odms.sampling odms.sampling.disable
prep.auto ON
Predictions:
CASE_ID VALUE PREDICTION LOWER UPPER
1 1 0.68847989 0.5414108 NA NA
2 2 0.63346191 0.5414255 NA NA
3 3 0.34073466 0.5414347 NA NA
4 4 0.41106593 0.5414146 NA NA
5 5 0.17601063 0.5414016 NA NA
6 6 0.82879446 0.5413650 NA NA
7 7 0.23504359 0.5413938 NA NA
8 8 0.14222260 0.5413631 NA NA
9 9 0.76561760 0.5413232 NA NA
10 10 0.90813842 0.5413457 NA NA
11 11 0.59706210 0.5413823 NA NA
12 12 0.44463468 0.5413879 NA NA
13 13 0.95294541 0.5413782 NA NA
14 14 0.58209937 0.5414194 NA NA
15 15 0.62295773 0.5414235 NA NA
16 16 0.59711650 0.5414316 NA NA
17 17 0.41131782 0.5414372 NA NA
18 18 0.79952871 0.5414242 NA NA
19 19 0.12635680 0.5414500 NA NA
20 20 0.04773946 0.5414085 NA NA