Sto cercando di creare un modello di regressione predittiva per prevedere il valore di una variabile continua. Non che la multicollinearità sia così importante per me, dal momento che sto cercando puramente una previsione, ma ho un gran numero di variabili categoriali (oltre 20) registrate (insieme a oltre 20 variabili continue) e sto cercando di fare una selezione delle caratteristiche/riduzione delle variabili in modo da non sovra-adattare i dati, e mi chiedevo se c'è un buon modo per fare una riduzione delle variabili in JMP per le variabili categoriali o trovare quelle che potrebbero essere correlate? Non ho in mente alcun modello particolare e userò JMP PRO.
Ciao @mjz5448 ,
Vedo due punti nelle tue domande:
- Come valutare la multicollinearità quando si modellano variabili categoriali?
Puoi valutare la multicollinearità di variabili continue e categoriali nel tuo modello visualizzando i valori VIF nelle Stime dei parametri per i predittori originali (fai clic con il pulsante destro del mouse sulla tabella, quindi su "Colonne" e "VIF"). Valori VIF elevati indicano un problema di collinearità tra i termini nel modello. Avrai anche informazioni sulla singolarità nella colonna Dettagli singolarità se alcuni termini sono linearmente dipendenti l'uno dall'altro, così come l'indicazione "Biased" e/o "Zeroed" prima delle stime dei parametri:

Per saperne di più: Modelli con dipendenze lineari tra i termini del modello
- Come selezionare le caratteristiche/ridurre le variabili?
Se si desidera effettuare la selezione delle funzionalità/riduzione delle variabili, potrebbero esserci diverse opzioni a seconda dei tipi di modello utilizzati:- Per i modelli di regressione lineare generalizzata multivariata, potresti usare la selezione Pruned Forward, oppure se la multicollinearità è importante, prova le opzioni di metodo di stima penalizzate come Lasso che eseguiranno la selezione delle variabili applicando stime a 0 per le variabili correlate. Un approccio meno "aggressivo" sarebbe la stima Elastic Net, che combina le penalizzazioni Lasso e Ridge.
- Foresta casuale potrebbe essere interessante anche da solo o se utilizzato come opzione di Predictor Screening , utilizzando l'importanza delle feature (contributo delle colonne) per identificare le feature più importanti/attive.
- Puoi anche provare a utilizzare il componente aggiuntivo Assistente alla selezione dei predittori che aiuta a selezionare le variabili in base a una versione aggiornata di Predictor Screening che utilizza il metodo di selezione delle funzionalità Boruta e Rendom Forest:

- È anche possibile combinare i diversi approcci di modellazione sopra descritti (e altri ancora) e confrontare i modelli ottenuti per vedere quali termini sono inclusi e quanto sono simili/diversi i modelli.
Spero che questa risposta possa aiutarti,
Grazie Victor! È esattamente quello che cercavo.
Ci sono idee sui passaggi per ridurre un modello:
- Dovresti rimuovere le variabili correlate/effettuare prima la riduzione delle dimensioni prima di procedere con LASSO/Ridge?
- Oppure dovremmo fare entrambe le cose: ridurre le variabili e poi passare a LASSO/Ridge, oppure usare tutte le funzionalità ed eseguire LASSO/Ridge e confrontare quale ha il miglior RASE sui dati di convalida?
Ciao @mjz5448 ,
Vorrei solo dare qualche spiegazione sulle differenze tra LASSO e Ridge (Elastic Net è un mix delle penalizzazioni LASSO e Ridge):
- LASSO ha la capacità di impostare i coefficienti per le feature che non considera "interessanti" a zero. Ciò significa che il modello esegue una "selezione automatica delle feature" per decidere quali feature dovrebbero e non dovrebbero essere incluse da sole. Questa proprietà ha il vantaggio di ridurre la complessità del modello (quindi aiuta a evitare l'overfitting). Tuttavia, i coefficienti sono distorti da questa penalizzazione (riduzione dei coefficienti) e la regressione LASSO può essere "instabile" quando addestrata su dati con feature correlate: una delle feature viene selezionata in modo piuttosto arbitrario e tutte le altre feature che sono altamente correlate con quella feature vengono effettivamente eliminate dal modello. Ciò può portare qualcuno a concludere erroneamente che solo la feature che è stata selezionata per rimanere nel modello è importante, quando in realtà alcune delle altre feature potrebbero essere altrettanto importanti o persino più importanti.
LASSO è robusto rispetto ai valori anomali e tende a essere più efficace quando è presente un piccolo sottoinsieme di variabili con un forte effetto sulla risposta tra molte altre variabili con effetti piccoli o nulli.
- Ridge ha la capacità di minimizzare i coefficienti per le feature correlate (vicini a 0 ma non 0). Questa proprietà consente di utilizzare la regressione di Ridge su set di dati con molte feature correlate, poiché l'impatto negativo delle feature correlate è ridotto al minimo e consente di ridurre l'overfitting. Quando viene introdotta una penalizzazione, otterrai anche stime di coefficienti distorte.
Ridge consente di considerare tutte le caratteristiche e tende a essere più efficace quando sono presenti numerose variabili con effetti grandi e comparabili.
- Elastic Net combina entrambi i metodi di penalizzazione, riducendo alcuni coefficienti a 0 e riducendone al minimo altri, per cui può rappresentare un buon compromesso per effettuare la selezione delle caratteristiche e gestire le caratteristiche correlate con importanza simile sulla risposta.
Puoi saperne di più sui modelli di regressione generalizzati (e penalizzati) in questo Mastering: Utilizzo della regressione generalizzata in JMP® Pro per creare modelli lineari robusti
Per la selezione delle feature, consiglierei vivamente di esaminare l'importanza delle feature da una Random Forest, poiché questo modello non richiede una messa a punto approfondita, è in grado di gestire feature correlate e non è sensibile al sovradattamento, quindi può fornire un buon confronto di riferimento.
Non sono del tutto sicuro di quale sia il tuo obiettivo con questo modello, dal momento che hai menzionato dati di convalida: comprensione del sistema (obiettivo esplicativo) o obiettivo predittivo?
Si tratta di dati di convalida (utilizzati per l'ottimizzazione del modello (regolazione fine degli iperparametri, selezione delle caratteristiche/soglie, ...) e selezione del modello) o dati di test (utilizzati per la generalizzazione e la valutazione delle prestazioni predittive del modello selezionato su dati nuovi/non visti)?
- Nel primo caso (dati di convalida), puoi provare a utilizzare questi dati di convalida come metodo di convalida nel pannello di avvio della regressione generalizzata, per assicurarti che la penalizzazione sia impostata e corretta sul tuo set di dati e confrontare i diversi modelli su questi dati di convalida: metodi di regressione penalizzata, Random Forest, ...
- Nel secondo caso (dati di test), consiglierei di non usare questo set di dati finché non hai confrontato i modelli e selezionato quello più promettente. A seconda del tuo obiettivo principale (comprensione del sistema o previsione) e del metodo per convalidare il tuo modello (criterio informativo come AICc o BIC, o convalida K-folds/Holdback/Leave-One-Out se sei interessato alle prestazioni predittive), puoi scegliere un metodo di convalida appropriato e confrontare i risultati dei modelli sui tuoi dati di training/validazione per selezionare il modello più interessante. Una volta scelto, puoi confermare la sua generalizzazione e le prestazioni predittive sul set di test (dati non visti).
Spero che questa risposta ti aiuti,