LASSO soffre degli stessi problemi della regressione graduale?


18

I metodi di selezione delle variabili algoritmiche graduali tendono a selezionare per i modelli che influenzano più o meno ogni stima nei modelli di regressione ( e loro SE, valori p , statistiche F , ecc.) E hanno la probabilità di escludere predittori reali quanto includere falsi predittori secondo una letteratura di simulazione ragionevolmente matura.β

LASSO soffre negli stessi modi specifici quando viene usato per selezionare le variabili?


3
Penso di si. Frank Harrell ha alcuni post su questo, penso, e potrebbe esserci materiale rilevante nel suo libro "Strategie di modellizzazione della regressione".
Richard Hardy,

2
@RichardHardy +1 Sarei felice se FrankHarrell passasse e commentasse o rispondesse. :)
Alexis,

5
Ho un nuovo discorso che affronta questo. In conclusione: il lazo ha una bassa probabilità di selezionare le variabili "corrette". Le diapositive sono su fharrell.com/talk/stratos19
Frank Harrell il

4
Relativo a "Bottom line: lasso ha una bassa probabilità di selezionare le variabili" corrette ": c'è una sezione sullo stesso argomento in Statistical Learning with Sparsity ( web.stanford.edu/~hastie/StatLearnSparsity_files/… ),11.4.1 Variable-Selection Consistency for the Lasso
Adrian

2
Relativo anche a "Bottom line: lasso ha una bassa probabilità di selezionare le variabili 'corrette'": vedi statweb.stanford.edu/~candes/stats300c/Lectures/Lecture24.pdf case study 1 e 2
Adrian

Risposte:


3

L'interpretazione di probabilità delle espressioni frequentistiche di probabilità, valori p eccetera, per un modello LASSO e regressione graduale, non sono corrette.

Quelle espressioni sopravvalutano la probabilità. Ad esempio, si presume che un intervallo di confidenza al 95% per alcuni parametri abbia una probabilità del 95% che il metodo comporti un intervallo con la vera variabile del modello all'interno di tale intervallo.

Tuttavia, i modelli montati non derivano da una singola ipotesi tipica, e invece stiamo raccogliendo ciliegia (selezioniamo da molti possibili modelli alternativi) quando facciamo regressione graduale o regressione LASSO.


  1. Non ha molto senso valutare la correttezza dei parametri del modello (specialmente quando è probabile che il modello non sia corretto).

    Nell'esempio seguente, spiegato più avanti, il modello è adattato a molti regressori e "soffre" di multicollinearità. Ciò rende probabile che un regressore adiacente (che è fortemente correlato) sia selezionato nel modello invece di quello che è veramente nel modello. La forte correlazione fa sì che i coefficienti abbiano un grande errore / varianza (rispetto alla matrice ).(XTX)1

    Tuttavia, questa elevata varianza dovuta alla multicollionearità non viene "vista" nella diagnostica come valori p o errore standard dei coefficienti, poiché questi sono basati su una matrice di progettazione più piccola con meno regressori. (e non esiste un metodo semplice per calcolare quel tipo di statistiche per LASSO)X

    Esempio: il grafico in basso che mostra i risultati di un modello giocattolo per un segnale che è una somma lineare di 10 curve gaussiane (ciò può ad esempio assomigliare ad un'analisi in chimica in cui un segnale per uno spettro è considerato una somma lineare di diversi componenti). Il segnale delle 10 curve è dotato di un modello di 100 componenti (curve gaussiane con media diversa) utilizzando LASSO. Il segnale è ben stimato (confronta la curva rossa e nera che sono ragionevolmente vicine). Tuttavia, i coefficienti sottostanti effettivi non sono ben stimati e potrebbero essere completamente errati (confrontare le barre rosse e nere con punti che non sono gli stessi). Vedi anche gli ultimi 10 coefficienti:

                  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
    

    Il modello LASSO seleziona coefficienti molto approssimativi, ma dal punto di vista dei coefficienti stessi significa un grande errore quando si stima che un coefficiente che dovrebbe essere diverso da zero sia zero e che un coefficiente adiacente che dovrebbe essere zero sia stimato non zero. Qualsiasi intervallo di confidenza per i coefficienti avrebbe poco senso.

    Raccordo LASSO

    esempio lasso / glmnet

    Montaggio graduale

    A titolo di confronto, la stessa curva può essere dotata di un algoritmo graduale che porta all'immagine seguente. (con problemi simili che i coefficienti sono vicini ma non corrispondono)

    esempio nnls

  2. Anche quando si considera l'accuratezza della curva (piuttosto che i parametri, che nel punto precedente è chiarito che non ha senso), allora si deve affrontare il sovradimensionamento. Quando si esegue una procedura di adattamento con LASSO, si utilizzano i dati di allenamento (per adattare i modelli con parametri diversi) e i dati di test / convalida (per ottimizzare / trovare qual è il parametro migliore), ma è necessario utilizzare anche un terzo set separato dei dati di test / validazione per scoprire le prestazioni dei dati.

    Un valore p o qualcosa di simile non funzionerà perché stai lavorando su un modello sintonizzato che è il picking ciliegia e diverso (gradi di libertà molto più grandi) dal normale metodo di adattamento lineare.


soffre degli stessi problemi della regressione graduale?

Sembri riferirti a problemi come la distorsione in valori come , valori p, punteggi F o errori standard. Credo che LASSO non sia usato per risolvere questi problemi.R2

Ho pensato che il motivo principale per usare LASSO al posto della regressione graduale è che LASSO consente una selezione dei parametri meno avida, che è meno influenzata dalla multicollinarità. (più differenze tra LASSO e graduale: superiorità di LASSO sulla selezione in avanti / eliminazione all'indietro in termini di errore di previsione della convalida incrociata del modello )


Codice per l'immagine di esempio

# 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)

+1 Grazie Martjin Wterings. Puoi amplificare un po 'il grafico? Cosa viene mostrato sugli assi, quale colore rappresenta, ecc.?
Alexis,

In realtà, il grafico non è un caso di LASSO. Tuttavia, è un esempio di come un modello possa essere una somma di più componenti, ad esempio una curva gaussiana (dove le curve con una media leggermente diversa sono molto correlate) e uno spostamento della media di tali componenti significa un grande cambiamento per il coefficiente ma non tanto per la curva.
Sesto Empirico

1
Le barre sono i valori dei coefficienti per il modello vero e per quello montato. Questa è l'immagine per cui ricordo questo principio. Farò un esempio da solo, che potrebbe mostrarlo più chiaramente (sospetto che LASSO, essendo meno avido, potrebbe comportare un po 'meglio nel rappresentare i veri coefficienti).
Sesto Empirico

0

Ho un nuovo discorso che affronta questo. In conclusione: il lazo ha una bassa probabilità di selezionare le variabili "corrette". Le diapositive sono disponibili su http://fharrell.com/talk/stratos19

- Frank Harrell

Relativo a "Bottom line: lasso ha una bassa probabilità di selezionare le variabili" corrette ": c'è una sezione sullo stesso argomento in Statistical Learning with Sparsity ( https://web.stanford.edu/~hastie/StatLearnSparsity_files/SLS_corrected_1. 4.16.pdf ), 11.4.1 Variable-Selection Consistency for the Lasso

- Adrian

Relativo anche a "Bottom line: lasso ha una bassa probabilità di selezionare le variabili 'corrette'": vedi https://statweb.stanford.edu/~candes/stats300c/Lectures/Lecture24.pdf case study 1 e 2

- Adrian


1
Ho copiato questi commenti come risposta wiki della comunità perché sono, più o meno, risposte a questa domanda. Abbiamo un divario drammatico tra risposte e domande. Almeno una parte del problema è che ad alcune domande viene data risposta nei commenti: se invece i commenti che hanno risposto alla domanda fossero risposte, avremmo meno domande senza risposta.
mkt - Ripristina Monica l'

1
Questi sono commenti e non forniscono, neppure in forma aggregata, una risposta secondo gli standard del CV (ad esempio, i collegamenti non sono risposte). Inoltre: non sono assolutamente d'accordo nel fare una domanda perfettamente valida in un wiki della comunità a causa della tua insoddisfazione per la velocità con cui le domande ricevono risposta.
Alexis,

1
Inoltre: sono stato istruito sul wiki della comunità e sulle risposte del wiki della comunità, e lì ritiro il mio disaccordo (anche se non credo ancora che questa sia una risposta :).
Alexis,

1
@Alexis Abbastanza giusto - Ho pensato che fosse una zona grigia, ma avrei potuto giudicare male.
mkt - Ripristina Monica l'

1
Stiamo tutti imparando. :)
Alexis,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.