Oracle R Enterpriseには、データベース表内のデータを使用してRモデルを作成する、いくつかの関数が含まれています。
現時点で使用できる関数は、次のとおりです。
この方法には、「ore.lm()およびore.stepwise()のメリット」で説明するように、いくつかのメリットがあります。
ore.lm()は、ore.frameオブジェクトで表されたデータに対して最小二乗回帰を実行します。このモデルは、OREstatsパッケージからmodel.matrixメソッドを使用してモデル行列を作成します。モデル行列と応答変数はSQLで表されて、データベース内アルゴリズムに渡されます。データベース内アルゴリズムは、列のピボット演算によるブロック更新QR分解を伴うアルゴリズムを使用してモデルを推定します。データベース内アルゴリズムによって係数が推定されると、モデル水準統計の推定のためにデータの2番目の受渡しが行われます。最後に、モデルがore.lmオブジェクトとして返されます。
「ore.lm()およびore.stepwise()のメリット」で説明するように、ore.lm()およびore.stepwise()の実装にはいくつかのメリットがあります。
ore.lmは、一連の共線的な項に対する係数値を推定しません。
モデルが作成されたら、summaryを使用してモデルのサマリーを作成します。
例は、「線形回帰の例」を参照してください。
ore.lm()およびore.stepwise()を実装することには、次のような重要なメリットがあります。
これらのアルゴリズムはいずれも、Out-of-core QR Factorizationを使用した正確な解決方法を提供します。QR Factorizationは、行列を直交行列と三角行列に分解します。
多くの場合、QRベースの推定は代替方法よりもかなり正確です。
QRは、困難とされるランクのない適合モデルに使用されるアルゴリズムです。
マシンのメモリーに収まらないデータ、つまりOut-of-coreデータを処理できます。QRは行列を、メモリーに収める行列とディスクに保存する行列の、2つに分解します。
ore.lm()およびore.stepwise()は、10億行を超えるデータ・セットを解決できます。
ore.lm()およびore.stepwise()によって、変数増加法(フォワード)、変数減少法(バックワード)および変数増減法(ステップワイズ)によるモデル選択の手法を高速に実装できます。
ore.neuralにも、同様のメリットがあります。
この例では、表にlongleyをプッシュして回帰モデルを構築します。
# longley consiste of employment statistics:
head(longley)
GNP.deflator GNP Unemployed Armed.Forces Population Year Employed
1947 83.0 234.289 235.6 159.0 107.608 1947 60.323
1948 88.5 259.426 232.5 145.6 108.632 1948 61.122
1949 88.2 258.054 368.2 161.6 109.773 1949 60.171
1950 89.5 284.599 335.1 165.0 110.929 1950 61.187
1951 96.2 328.975 209.9 309.9 112.075 1951 63.221
1952 98.1 346.999 193.2 359.4 113.270 1952 63.639
#Push longley to a table
LONGLEY <- ore.push(longley)
# Fit full model
oreFit1 <- ore.lm(Employed ~ ., data = LONGLEY)
summary(oreFit1)
詳細は、help(ore.lm)で起動される、ore.lmに関するRのヘルプを参照してください。
ore.stepwise()は、ore.frameオブジェクトで表されたデータに対してステップワイズ最小二乗回帰を実行します。このモデルは、OREstatsパッケージからmodel.matrixメソッドを使用してモデル行列を作成します。モデル行列と応答変数はSQLで表されて、データベース内アルゴリズムに渡されます。データベース内アルゴリズムは、列のピボット演算によるブロック更新QR分解を伴うアルゴリズムを使用してモデルを推定します。データベース内アルゴリズムによって係数が推定されると、モデル水準統計の推定のためにデータの2番目の受渡しが行われます。最後に、モデルがore.stepwiseオブジェクトとして返されます。
ore.stepwise()は、計算全体から共線的な項を除外します。
モデルが作成されたら、summaryを使用してモデルのサマリーを表示します。
例は、「ステップワイズ回帰の例」を参照してください。
この例では、表にlongleyをプッシュしてステップワイズ・モデルを構築します。
LONGLEY <- ore.push(longley)
# Two stepwise alternatives
oreStep1 <-
ore.stepwise(Employed ~ .^2, data = LONGLEY, add.p = 0.1, drop.p = 0.1)
oreStep2 <-
step(ore.lm(Employed ~ 1, data = LONGLEY),
scope = terms(Employed ~ .^2, data = LONGLEY))
詳細は、help(ore.lm)で起動される、ore.lmに関するRのヘルプを参照してください。
ニューラル・ネットワーク・モデルを使用すると、入力と出力との間の複雑な非リニアの関係を取得すること、つまりデータのパターンを見つけることができます。
ore.neural()は、ore.frameで単一層のフィードフォワード型ニューラル・ネットワークを構築します。
ore.neural()はBroyden–Fletcher–Goldfarb–Shanno (BFGS)メソッドを使用して、ニューラル・ネットワークに適合した結果として発生する、下層の制約なし非リニア最適化問題を解決します。
ore.neural()の出力は、タイプore.neuralのオブジェクトになります。
パラメータおよび出力の詳細は、ore.neural()に関するRのヘルプを参照してください。例は、「ニューラル・ネットワークの例」を参照してください。
この例では、hiddensize 1などのデフォルト値でニューラル・ネットワークを構築します。
longleyデータ・セットは、雇用に関する統計情報で構成されます。この例では、表にlongleyをプッシュします。longleyのサブセットを使用するモデルを作成し、次にlongleyの別のサブセットの結果を予測していることに注意してください。
trainData <- ore.push(longley[1:11, ])
testData <- ore.push(longley[12:16, ])
fit <- ore.neural('Employed ~ GNP + Population + Year', data = trainData)
ans <- predict(fit, newdata = testData)