私は観測値(N)よりも説明変数(J)が高い高次元設定で主共変量回帰を使用したいと考えています。私はR-パッケージ「PCovR」を見出しました(CRAN-RパッケージhereおよびJournal of Statistical Software記事hereを参照)。このパッケージは、低次元の設定で優れた仕事をします。高次元設定の主共変量回帰(PCovR)
ただし、高次元設定ではパッケージが失敗します。パラメータをチューニングするには
R> Error in Vminc[k] = which.min(A[, k]) : replacement has length zero
、R(の数を
# Load package
library(PCovR)
# Fix random number generator
set.seed(1)
# Generate X: random standard normal matrix with J=200 explanatory variables and N=100 observations
x <- matrix(nrom(n=20000, mean=0, sd=1), nrow=100, ncol=200); dim(x)
# Generate Y: random standard normal vector with N=100 observations
y <- rnorm(n=100, mean=0, sd=1)
# Run PCovR
pcovr.fit <- pcovr(X=x, Y=y, modsel="seq")
これは、次のエラーを与える:高次元で問題が発生するには、次の(最低限の生の例)のコードを実行することができます(modsel = seq)とグリッド検索のクロスバリデーション( "modsel = seq")に基づく計算的に要求の厳しい同時推定に基づく高速順モデル推定オプションが付属しています。シム ")。
より高次元での問題の原因は、errorRatio関数で線形回帰が実行されているため、ratio-argument(デフォルトでは "modsel = seq"の場合はErrorRatio関数で計算されます) 。可能しかし、サブ最適解は、比引数(これは同時手順で使用されないように)のプレ仕様と同時手順を使用することである
pcovr.fit <- pcovr(X=x, Y=y, modsel="sim", ratio=1)
しかし、これは計算上非常に過酷です。どのように私は高次元の設定でPCovRを実行することができる任意のアイデア、ヒントや提案?