2017-03-23 12 views
3

私は観測値(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を実行することができる任意のアイデア、ヒントや提案?

答えて

1

パッケージ(バージョン2.7)のアップデートが今週初めにCRANでリリースされました。この新しいバージョンでは、パラメータ "ratio"は高次元設定ではデフォルトで1になります。当然のことながら、他の比率も同様に要求することができるが、200個の予測子(J)と1つの基準(K)を有する標準化データの場合にのみ、得られるアルファ値の小さな変化につながり、最尤アルファは、(標準化されたデータのための)次の式で求められる:

alpha <- J/(J+K*ratio) 

行くためのもう一つの方法は、あなたのデータのエラー分散の別のプロキシを検索することができますが、この特定の状況では、おそらくしまいますとにかく.99の周りのアルファ値で。 しかし、興味深いことに、得られた解に対して別のアルファ値を選ぶことの影響を調べることができます。

関連する問題