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)