我正在阅读一篇论文,其中说 LASSO 是渐近偏向的,而 SCAD 不是。当样本量趋于无穷时,我采用渐近(非)偏差来关注 LASSO 和 SCAD 的斜率估计量,但我不确定。我想知道这些陈述究竟意味着什么,它们是在哪些假设下进行的,以及这些假设是否现实。
据我了解,LASSO 在给定固定正则化强度的情况下是渐近偏向的。然而,实际上不会随着样本量的增长而保持固定,而是会减少(例如,如果使用 LOOCV 来选择,就会出现这种情况,这是相当常见的情况),从而相应地减少了偏差。考虑到这一点,LASSO 似乎不会有渐近偏差。
另一方面,如果我们看一些说明 LASSO 和 SCAD 估计器的典型图片,他们通常将它们视为斜率系数的函数。在那里,我们看到 LASSO 是渐近线的。SCAD 渐近时有偏。当斜率系数(而不是样本量)趋于无穷大时是无偏的。(见下文。)同样,我认为在这里是固定的。
所以我很困惑,因此我的问题。
更新 1:这是一个小型模拟,与 LASSO 渐近偏差的陈述兼容。是通过 8 倍 CV 选择的。
的模拟对于高达的样本量会产生类似的结果;更大的样本量在我的笔记本电脑上是不可行的。)
该图对应于安装号。代码中的 2:一个相关回归器,一个不相关回归器。上图是相关回归器上的系数偏差,下图是不相关回归器上系数的偏差。如您所见,相关回归量的偏差最初随着样本大小变得足够大后停止并保持非零。(从图中可能有点难以看出,但在之后,第一个回归量的偏差确实停止缩小。)
library(glmnet)
m=1e3 # number of simulation runs
ns=2^c(5:17) # sample sizes
k=length(ns)
bias1=rep(NA,k); names(bias1)=ns; bias2=bias1
for(j in 1:k){
n=ns[j]; print(paste0(Sys.time()," n = ",n))
beta1_hat=beta2_hat=rep(NA,m)
for(i in 1:m){
set.seed(i); data=matrix(rnorm(3*n),ncol=3); x1=data[,1]; x2=data[,2]; eps=data[,3]
# Choose one of the 3 lines below:
#beta1=0; beta2=0 # Setup no. 1: both regressors irrelevant
beta1=1; beta2=0 # Setup no. 2: only the first regressor relevant
#beta1=1; beta2=1 # Setup no. 3: both regressors relevant
y=beta1*x1+beta2*x2+eps # zero mean for simplicity
cvfit=cv.glmnet(x=cbind(x1,x2),y=y,nfolds=8)
coef=coef(cvfit,s="lambda.min")
beta1_hat[i]=coef[2]
beta2_hat[i]=coef[3]
}
bias1[j]=mean(beta1_hat)-beta1
bias2[j]=mean(beta2_hat)-beta2
}; print(paste0(Sys.time()," The end"))
par(mfrow=c(2,1),mar=c(4,4,2,0.5))
at=c(1:k); labels=paste0("2^",log(ns,2))
ylim=range(bias1,-bias1); plot(bias1,ylim=ylim,xaxt="n",xlab="sample size"); axis(side=1,at=at,labels=labels); abline(h=0)
ylim=range(bias2,-bias2); plot(bias2,ylim=ylim,xaxt="n",xlab="sample size"); axis(side=1,at=at,labels=labels); abline(h=0)
par(mfrow=c(1,1))
更新 2:在线搜索“渐近偏差”产生 Javanmard 和 Montanari “高维回归的置信区间和假设检验”(2014 年),该问题在文档的前 12 页中进行了讨论,尤其是定理 6-8 和一些2.2 节中的讨论。不幸的是,该材料技术含量很高,并且使用相当复杂的符号表示。自己解决是一个很大的挑战。

