ヘッダーをスキップ
Oracle® R Enterpriseユーザーズ・ガイド
リリース1.3 for Windows, Linux, Solaris, and AIX
E48232-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

6 Oracle R EnterpriseのRモデルのバージョン

Oracle R Enterpriseには、データベース表内のデータを使用してRモデルを作成する、いくつかの関数が含まれています。

現時点で使用できる関数は、次のとおりです。

この方法には、「ore.lm()およびore.stepwise()のメリット」で説明するように、いくつかのメリットがあります。

ore.lm()

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()のメリット

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.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.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)