Answers:
当,我将对@cardinal进行封闭形式套索解决方案的推导,此处进行了少量修改。
我假设所有。这是有道理的,因为如果我们有一个那么这告诉我们第列全为0,我认为排除这种情况是合理的。我会让。请注意,这也意味着是完整等级,并且OLS解决方案是唯一定义的。
我还将修改您的表示法,使其与我所引用的答案更好地匹配。为此,我将解决
这与您的问题相同,但是如果您愿意,我可以在此处添加更多详细信息。
按照@cardinal的推导,我们需要求解
注意到OLS解决方案是,我们有
我们正在分别优化每个,因此我们可以分别求解该总和的每个项。这意味着我们需要最小化,其中
在对链接的答案进行完全相似的论证之后,我们发现
此外,因此我们得到了
因此事实证明,如果设计矩阵是正交的,而不仅仅是正交的,则预测变量准确地归零。因此,我们可以看到,在这种情况下,如果,变量选择与,但是实际系数会根据预测变量进行缩放。
最后一点,我将把这个解决方案变成与您的解决方案类似的解决方案,这意味着我们需要将乘以某个值,以获得。如果那么我们有
由于。
注意恰好在
我们看到我们可以将为
因此,这与您拥有的非常接近,但并不完全相同。
我总是喜欢在可能的情况下对照知名库检查此类推导,因此这是R中的示例:
## generating `x`
set.seed(1)
n = 1000
p = 5
sigma2s = 1:p
x = svd(matrix(rnorm(n * p), n, p))$u %*% diag(sqrt(sigma2s))
## check this
# t(x) %*% x
## generating `y`
betas = 1:p
y = x %*% betas + rnorm(nrow(x), 0, .5)
lambda = 2
## using a well-known library to fit lasso
library(penalized)
penalized(y, x, lambda1 = lambda)@penalized
## using closed form solution
betahat = lm(y ~ x - 1)$coef
ifelse(betahat > 0, 1, -1) * sapply(abs(betahat) - lambda / sigma2s, function(v) max(c(0, v)))