高维设置中的主协变量回归(PCovR)

时间:2017-03-23 10:11:13

标签: r machine-learning

我想在高维设置中使用主协变量回归,其中我有比解释(N)更多的解释变量(J)。我遇到了R-package“PCovR”(参见CRAN-R包here和Journal of Statistical Software文章here)。这个软件包在低维设置中表现非常出色。

但是,程序包在高维设置中失败。要在高维度中遇到问题,您可以运行以下(最不可行的示例)代码:

# 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")

这会出现以下错误,

R> Error in Vminc[k] = which.min(A[, k]) : replacement has length zero 

为了调整参数 R (组件数量)和 alpha (加权参数),该软件包带有基于最大似然的快速顺序模型估计选项(“ modsel = seq“)和基于网格搜索交叉验证的计算要求高的同时估计(”modsel = sim“)。

更高维度的问题来源是,在ErrorRatio函数中执行线性回归时,可以明确地不再确定比率参数(默认情况下使用ErrorRatio函数计算,如果“modsel = seq”)。一个可行但次优的解决方案是使用带有比例参数预先规范的同步程序(因为它不会在同时程序中使用),

pcovr.fit <- pcovr(X=x, Y=y, modsel="sim", ratio=1)

但这在计算上要求极高。我可以在高维设置中运行PCovR的任何想法,提示或建议吗?

1 个答案:

答案 0 :(得分:1)

本周早些时候,CRAN已经发布了软件包更新(版本2.7)。在这个较新的版本中,参数&#34;比率&#34;在高维设置中默认等于1。当然,也可以请求其他比率,但只有在标准化数据具有200个预测变量( J )且仅有1个标准的情况下,才会导致获得的α值发生微小变化( K ),因为使用以下公式获得最大似然α(对于标准化数据):

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

另一种方法可能是搜索数据错误差异的另一个代理,但在这种特定情况下,您最终可能会得到大约0.99的alpha值。 但是,调查在获得的解决方案中选择另一个alpha值的影响可能会很有趣。