Travolto da troppe variabili nella modellazione predittiva?Nei problemi di regressione, ci troviamo spesso di fronte alla scelta di un insieme di variabili predittive da quello che potrebbe essere un insieme molto ampio di predittori di candidati. Quando costruiamo il nostro modello, vogliamo trovare una serie significativa di predittori che produca previsioni accurate. I metodi classici come la selezione anticipata e la regressione di tutti i sottogruppi non sempre soddisfano questo obiettivo.
La regressione con angolo minimo (LARS) e i regimi di regressione penalizzati come l'operatore di ritiro e selezione minimo assoluto (LASSO) e l'elastico sono approcci più recenti e più promettenti alla selezione delle variabili. I pacchetti R "lars" e "elasticnet" forniscono strumenti per l'adattamento di molte di queste tecniche più recenti. La documentazione inclusa con i pacchetti è un buon punto di partenza per imparare di più sui metodi stessi. Utilizzando la nuova funzionalità di integrazione di R in JMP 9 per chiamare questi pacchetti, possiamo presentare i risultati e costruire grafici in JMP . Guarda il Add-in di regressione penalizzata (accesso SAS gratuito richiesto per l'accesso e il download), che fa proprio questo.
Quando si installa il componente aggiuntivo Regressione penalizzata, si ottengono tre diversi strumenti per l'adattamento di questi modelli. Appaiono sotto la voce "Componenti aggiuntivi R". Il "LASSO con convalida incrociata" utilizza la convalida incrociata per scegliere il parametro di sintonizzazione LASSO e consente di vedere come cambiano le stime dei parametri mentre si regola il parametro di sintonizzazione. Lo strumento "Confronto metodo di regressione penalizzata" ci consente di confrontare le soluzioni LASSO, LARS e Forward Stagewise. I risultati di questi tre metodi sono talvolta quasi identici. Ultimo ma non meno importante, "Elastic Net with cross-validation" traccia la soluzione Elastic Net e utilizza la convalida incrociata per scegliere la migliore combinazione di parametri di ottimizzazione. La rete elastica è complicata perché ha due parametri di ottimizzazione, ma ho scoperto che la capacità di vedere la soluzione cambiare in funzione dei parametri di ottimizzazione è molto utile.
Ora, diamo un'occhiata a un esempio di utilizzo di LASSO con convalida incrociata. Usando il set di dati sul diabete che è incluso nel pacchetto "lars", otteniamo i risultati nello screenshot qui sotto. Con questi dati stiamo provando a modellare la progressione del diabete usando età, sesso, indice di massa corporea, pressione sanguigna e diverse misurazioni del siero del sangue.

Il grafico sembra un po 'strano, ma contiene molte informazioni. Ci mostra come cambiano le stime dei parametri in funzione del parametro di sintonizzazione. Mentre spostiamo il cursore per aumentare il parametro di sintonizzazione, il rapporto di stima dei parametri sulla destra si aggiorna in modo che possiamo vedere quando ciascuna variabile entra nel modello.
L'indice di massa corporea è la prima variabile a entrare nel modello. Scopriamo anche che l'età è l'ultima variabile da inserire, il che suggerisce che l'età potrebbe non svolgere un ruolo importante nella progressione del diabete. Il componente aggiuntivo ci consente di esaminare i risultati della convalida incrociata, che potrebbero aiutarci a scegliere il parametro di ottimizzazione. Una volta soddisfatti del parametro di ottimizzazione, possiamo salvare i valori previsti nella nostra tabella di dati.
Clay Barker ha scritto: Benjamin e Anders: mi dispiace che tu ... Clay Barker ha scritto:
Benjamin e Anders: Mi dispiace che tu abbia problemi. Sfortunatamente, il problema sarà difficile da individuare. Poiché le chiamate add-in R, il problema potrebbe essere con l'installazione R, i pacchetti R che vengono chiamati o il componente aggiuntivo. Ecco alcuni suggerimenti che potrebbero aiutarti:
1. Assicurati che non ci siano valori mancanti nel tuo set di dati. Poiché il componente aggiuntivo non è pensato per essere una piattaforma pienamente funzionante, non sono stato in grado di supportare i valori mancanti. Quindi imputare eventuali valori mancanti prima di chiamare il componente aggiuntivo.
2. Per gli stessi motivi del numero 1, il componente aggiuntivo ignora gli stati delle righe (come le righe escluse).
3. Il componente aggiuntivo è progettato solo per fare i minimi quadrati. Se sei interessato ad adottare un approccio simile alla regressione logistica, è possibile costruire un'interfaccia simile a R per chiamare il pacchetto glmnet per il montaggio di modelli lineari generalizzati penalizzati.
Ci sono altri utenti JMP che hanno suggerimenti?
Anders ha scritto: ho lo stesso problema di Benjamin. Quasi... Anders ha scritto:
Ho lo stesso problema di Benjamin. Ho quasi buttato il mio computer fuori dalla finestra. Questo componente aggiuntivo non funziona per me. Per peggiorare le cose, non c'è una documentazione insanguinata su come far funzionare questo componente aggiuntivo! Molto frustrato perché devo fare una regressione logistica e avere un numero enorme di variabili e voglio evitare Stepwise.
Gabriel Andraos ha scritto: Cara Clay. Grazie per questo chiaro p ... Gabriel Andraos ha scritto:
Cara Clay. Grazie per questa chiara presentazione. In che modo queste tecniche sono migliori rispetto all'utilizzo della piattaforma di partizione in JMP 9.0 al fine di selezionare le variabili più predittive?
Migliore,
Clay Barker ha scritto: Ciao Gabriel, questo è un ottimo articolo ... Clay Barker ha scritto:
Ciao Gabriel, questa è un'ottima domanda. In generale, non possiamo davvero dire quale tecnica funzionerà meglio per un particolare set di dati. Quindi è probabilmente utile provare entrambe le tecniche e confrontare i risultati. Un potenziale vantaggio nell'usare qualcosa come LARS o LASSO per costruire il modello di previsione è che il modello lineare risultante è spesso più facile da interpretare.
Benjamin ha scritto: Clay, grazie per aver creato questo. Ho ist ... benzoino ha scritto:
Argilla,
Grazie per aver creato questo. Ho installato R e i pacchetti richiesti (lars ed elasticnet) e ho verificato che R riconosce il comando lars. Vedo anche il tuo componente aggiuntivo in JMP 9.0.0 e viene visualizzata la finestra di dialogo appropriata. Tuttavia, dopo aver selezionato i dati e avviato, non accade nulla: la finestra di dialogo si chiude e ho verificato che la CPU non è all'altezza di nulla. Ho provato con e senza R già aperto e dopo aver riavviato JMP. Qualche suggerimento?
Grazie!
benzoino