답변:
나는 때 폐쇄 된 형태의 올가미 솔루션의 추기경의 유도 @ 통과거야 발견 여기에 약간의 수정과 함께.
모든 대해 이라고 가정합니다 . 우리가 을 가지고 있다면 이것은 의 번째 열 이 모두 0 이라는 것을 알려주기 때문에 그런 경우를 제외하는 것이 합리적이라고 생각합니다. 하겠습니다 . 이것은 또한 가 전체 순위이고 OLS 솔루션 가 고유하게 정의 됨을 의미합니다 .
또한 내가 참조하고있는 답변에서 더 잘 일치하도록 표기법을 수정하려고합니다. 이를 위해
이것은 귀하의 문제와 동일하지만 원하는 경우 여기에 더 자세한 내용을 추가 할 수 있습니다.
의 파생에 이어, 우리는
OLS 솔루션은 이므로
각 개별적 으로 최적화 합계의 각 항을 개별적으로 해결할 수 있습니다. 이것은 우리가 를 최소화해야한다는 것을 의미합니다. 여기서
링크 된 답변에 대한 완전한 분석적 주장에 따르면, 우리는
또한, 그래서
따라서 예측 행렬 는 설계 행렬이 직교가 아닌 직교 정규형 일 때 정확히 0으로 표시됩니다. 따라서이 경우 인 경우 변수 선택은 인 경우와 다르지 않지만 실제 계수 는 예측 변수 분산에 따라 조정됩니다.
마지막으로이 솔루션을 여러분의 것과 유사한 솔루션으로 바꾸겠습니다. 이는 에 를 얻기 위해 무언가를 곱해야한다는 것을 의미합니다 . 경우 다음 우리가 그
이후 .
것을주의 정확하게
우리는 다르게 표현할 수있는 것을 알 등
그래서 이것은 당신이 가진 것과 매우 가깝지만 정확히 동일하지는 않습니다.
가능한 경우 잘 알려진 라이브러리에 대해 이와 같은 파생을 항상 확인하고 싶습니다. 그래서 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)))