逐步算法变量选择方法趋向于选择对回归模型中的每个估计或多或少有偏见的模型( s及其SE,p值,F统计等),并且与排除真实预测变量的可能性差不多根据相当成熟的模拟文献,包括错误的预测变量。
LASSO用于选择变量时是否会遭受相同的特定方式折磨?
11.4.1 Variable-Selection Consistency for the Lasso
逐步算法变量选择方法趋向于选择对回归模型中的每个估计或多或少有偏见的模型( s及其SE,p值,F统计等),并且与排除真实预测变量的可能性差不多根据相当成熟的模拟文献,包括错误的预测变量。
LASSO用于选择变量时是否会遭受相同的特定方式折磨?
11.4.1 Variable-Selection Consistency for the Lasso
Answers:
对于LASSO模型,概率论的可能性表达,p值等的概率解释和逐步回归是不正确的。
这些表达式高估了概率。例如,某个参数的95%置信区间应该表示您有95%的概率该方法将导致一个区间,且该区间内包含真实的模型变量。
但是,拟合模型不是由典型的单个假设得出的,而是当我们进行逐步回归或LASSO回归时,我们选择了樱桃(从许多可能的替代模型中选择)。
评估模型参数的正确性几乎没有意义(尤其是当模型可能不正确时)。
在下面的示例(稍后说明)中,该模型适用于许多回归变量,并且受到多重共线性的影响。这使得很有可能在模型中选择了一个相邻的回归变量(具有很强的相关性),而不是在模型中真正选择了一个回归变量。较强的相关性导致系数具有较大的误差/方差(与矩阵)。
然而,这种高方差由于multicollionearity不是像p值或系数的标准误差诊断“看到”,因为这些都是基于一个较小的设计矩阵与较少回归量。(并且没有直接的方法来为LASSO计算这些类型的统计信息)
示例:下图显示了某些信号的玩具模型的结果,该信号是10条高斯曲线的线性和(例如,这类似于化学分析,其中光谱信号被认为是线性的和)。几个组件)。使用LASSO,将10条曲线的信号与100个分量的模型拟合(具有不同平均值的高斯曲线)。信号得到了很好的估计(比较红色和黑色曲线,它们相当接近)。但是,实际的底层系数不是很好估计,可能是完全错误的(与不是相同点比较红,黑条)。另请参阅最后10个系数:
91 91 92 93 94 95 96 97 98 99 100
true model 0 0 0 0 0 0 0 142.8 0 0 0
fitted 0 0 0 0 0 0 129.7 6.9 0 0 0
LASSO模型确实选择了非常近似的系数,但是从系数本身的角度来看,当应将非零系数估计为零而将邻域系数应估计为零时,这意味着较大的误差。非零。系数的任何置信区间都几乎没有意义。
LASSO配件
逐步拟合
作为比较,同一条曲线可以使用逐步算法进行拟合,得出下面的图像。(存在系数接近但不匹配的类似问题)
即使考虑曲线的精度(而不是参数,在上一点中已明确指出它没有意义),也必须处理过度拟合问题。当您使用LASSO进行拟合过程时,您将使用训练数据(以使用不同参数拟合模型)和测试/验证数据(以调整/查找最佳参数),但还应使用第三套单独的数据集测试/验证数据以找出数据的性能。
一个p值或类似的值将不起作用,因为您正在使用的是经过精挑细选且与常规线性拟合方法不同(更大的自由度)的调整模型。
遭受同样的问题逐步回归吗?
我认为使用LASSO代替逐步回归的主要原因是LASSO允许较少的贪婪参数选择,因此较少受到多共性的影响。(LASSO和逐步方法之间的更多差异:就模型的交叉验证预测误差而言,LASSO优于正向选择/反向消除)
示例图片的代码
# settings
library(glmnet)
n <- 10^2 # number of regressors/vectors
m <- 2 # multiplier for number of datapoints
nel <- 10 # number of elements in the model
set.seed(1)
sig <- 4
t <- seq(0,n,length.out=m*n)
# vectors
X <- sapply(1:n, FUN <- function(x) dnorm(t,x,sig))
# some random function with nel elements, with Poisson noise added
par <- sample(1:n,nel)
coef <- rep(0,n)
coef[par] <- rnorm(nel,10,5)^2
Y <- rpois(n*m,X %*% coef)
# LASSO cross validation
fit <- cv.glmnet(X,Y, lower.limits=0, intercept=FALSE,
alpha=1, nfolds=5, lambda=exp(seq(-4,4,0.1)))
plot(fit$lambda, fit$cvm,log="xy")
plot(fit)
Yfit <- (X %*% coef(fit)[-1])
# non negative least squares
# (uses a stepwise algorithm or should be equivalent to stepwise)
fit2<-nnls(X,Y)
# plotting
par(mgp=c(0.3,0.0,0), mar=c(2,4.1,0.2,2.1))
layout(matrix(1:2,2),heights=c(1,0.55))
plot(t,Y,pch=21,col=rgb(0,0,0,0.3),bg=rgb(0,0,0,0.3),cex=0.7,
xaxt = "n", yaxt = "n",
ylab="", xlab = "",bty="n")
#lines(t,Yfit,col=2,lwd=2) # fitted mean
lines(t,X %*% coef,lwd=2) # true mean
lines(t,X %*% coef(fit2), col=3,lwd=2) # 2nd fit
# add coefficients in the plot
for (i in 1:n) {
if (coef[i] > 0) {
lines(c(i,i),c(0,coef[i])*dnorm(0,0,sig))
points(i,coef[i]*dnorm(0,0,sig), pch=21, col=1,bg="white",cex=1)
}
if (coef(fit)[i+1] > 0) {
# lines(c(i,i),c(0,coef(fit)[i+1])*dnorm(0,0,sig),col=2)
# points(i,coef(fit)[i+1]*dnorm(0,0,sig), pch=21, col=2,bg="white",cex=1)
}
if (coef(fit2)[i+1] > 0) {
lines(c(i,i),c(0,coef(fit2)[i+1])*dnorm(0,0,sig),col=3)
points(i,coef(fit2)[i+1]*dnorm(0,0,sig), pch=21, col=3,bg="white",cex=1)
}
}
#Arrows(85,23,85-6,23+10,-0.2,col=1,cex=0.5,arr.length=0.1)
#Arrows(86.5,33,86.5-6,33+10,-0.2,col=2,cex=0.5,arr.length=0.1)
#text(85-6,23+10,"true coefficient", pos=2, cex=0.7,col=1)
#text(86.5-6,33+10, "fitted coefficient", pos=2, cex=0.7,col=2)
text(0,50, "signal versus position\n true mean (black), fitted with nnls (green)", cex=1,col=1,pos=4, font=2)
plot(-100,-100,pch=21,col=1,bg="white",cex=0.7,type="l",lwd=2,
xaxt = "n", yaxt = "n",
ylab="", xlab = "",
ylim=c(0,max(coef(fit)))*dnorm(0,0,sig),xlim=c(0,n),bty="n")
#lines(t,X %*% coef,lwd=2,col=2)
for (i in 1:n) {
if (coef[i] > 0) {
lines(t,X[,i]*coef[i],lty=1)
}
if (coef(fit)[i+1] > 0) {
# lines(t,X[,i]*coef(fit)[i+1],col=2,lty=1)
}
if (coef(fit2)[i+1] > 0) {
lines(t,X[,i]*coef(fit2)[i+1],col=3,lty=1)
}
}
text(0,33, "illustration of seperate components/curves", cex=1,col=1,pos=4, font=2)
我有一个新的演讲可以解决这个问题。底线:套索选择“正确”变量的可能性很小。幻灯片位于 http://fharrell.com/talk/stratos19
–弗兰克·哈雷尔
与“底线:套索选择“正确”变量的可能性低”相关:在具有稀疏性的统计学习(https://web.stanford.edu/~hastie/StatLearnSparsity_files/SLS_corrected_1。 4.16.pdf),
11.4.1 Variable-Selection Consistency for the Lasso
–阿德里安
也与“底线:套索选择'正确'变量的可能性很小”有关:请参见 https://statweb.stanford.edu/~candes/stats300c/Lectures/Lecture24.pdf 案例研究1和2
–阿德里安