Solusi bentuk tertutup untuk masalah laso ketika data matriks diagonal

13

Kami memiliki masalah:

minwRd(1ni=1n(w,xiyi)2+2λ||w||1),
dengan asumsi bahwa:
i=1nxixiT=diag(σ12,...,σd2).

Apakah ada solusi bentuk tertutup dalam kasus ini?

Saya punya itu:

(XTX)1=diag(σ12,...,σd2),
jadi saya pikir jawabannya adalah :
wj=yjmax{0,1λn|yj|},
untuk yj=i=1nyixijσi2 , tapi saya tidak yakin.
Arthur D.
sumber

Jawaban:

9

Saya akan melalui turunan @ cardinal dari solusi laso bentuk tertutup ketika , ditemukan di sini , dengan sedikit modifikasi.XTX=I

Saya akan mengasumsikan bahwa untuk semua . Hal ini dibenarkan karena jika kita memiliki maka ini memberitahu kita bahwa th kolom adalah semua 0, dan saya pikir itu masuk akal untuk mengecualikan kasus seperti itu. Aku akan membiarkan . Perhatikan bahwa ini juga berarti bahwa adalah peringkat penuh dan solusi OLS didefinisikan secara unik.σi2>0iσi2=0iXXTX=DXβ^

Saya juga akan memodifikasi notasi Anda agar lebih cocok dengan yang ada di jawaban yang saya referensikan. Untuk itu, saya akan menyelesaikan

β^λ=argminβRp12||YXβ||22+λ||β||1.

Ini identik dengan masalah Anda, tetapi saya dapat menambahkan detail lebih lanjut di sini jika Anda mau.

Mengikuti derivasi @ cardinal, kita harus menyelesaikan

β^λ=argmin 12(YTY2YTXβ+βTXTXβ)+λ||β||1

=argmin YTXβ+12βTDβ+λ||β||1.

Memperhatikan bahwa solusi OLS adalah , kami memiliki β λ=argmin  - β TDβ+1β^=(XTX)1XTY=D1XTY

β^λ=argmin β^TDβ+12βTDβ+λ||β||1

=argmin j=1pβ^jβjσj2+σj22βj2+λ|βj|.

Kami mengoptimalkan setiap secara terpisah, sehingga kami dapat menyelesaikan setiap istilah dari jumlah ini secara terpisah. Ini berarti kita perlu meminimalkan mana L j L j = - β j β j σ 2 j + σ 2 jβjLj

Lj=β^jβjσj2+σj22βj2+λ|βj|.

Mengikuti argumen yang sepenuhnya analog dengan jawaban yang ditautkan, kami menemukan bahwa

(β^λ)j=sgn(β^j)(|β^j|λσj2)+.

Lebih lanjut, jadi kita memiliki (| ß j|-λβ^=D1XTYβ^j=XjTYσj2

(|β^j|λσj2)+=1σj2(|XjTY|λ)+

sehingga ternyata prediktor akan memusatkan perhatian tepat ketika akan jika matriks desain ortonormal, bukan hanya ortogonal. Jadi kita dapat melihat bahwa dalam kasus ini dengan , pemilihan variabel tidak berbeda dari jika , tetapi koefisien aktual diskalakan sesuai dengan varian prediktor.X T X = D I X T X = I ß λXjXTX=DIXTX=Iβ^λ

Sebagai catatan terakhir, saya akan mengubah solusi ini menjadi yang menyerupai milik Anda yang berarti kita perlu mengalikan dengan sesuatu untuk mendapatkan . Jika maka kita memilikinya β^β^λ(β^λ)j0

(β^λ)j=sgn(β^j)(|β^j|λσj2)=β^jsgn(β^j)λσj2

=β^j(1λσj2|β^j|)

karena .a|a|=sgn(a)

Memperhatikan itu tepat kapan (β^λ)j=0

|β^j|λσj20|β^j|λσj21λσj2|β^j|1λσj2|β^j|0,

kita melihat bahwa kita dapat secara alternatif mengekspresikan sebagai β^λ

(β^λ)j=β^j(1λσj2|β^j|)+.

Jadi ini sangat dekat dengan apa yang Anda miliki tetapi tidak persis sama.

Saya selalu ingin memeriksa derivasi seperti ini terhadap perpustakaan terkenal jika memungkinkan, jadi inilah contoh dalam 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)))
jld
sumber