|
Oratore
|
Trascrizione
|
| di Joshua W. Lambert |
Ciao. |
| ROBYN GODFREY |
Ciao, mi chiamo Robin e Josh. |
| |
SÌ. |
| ROBYN GODFREY |
Il neo. |
| di Joshua W. Lambert |
Sì, anche io sono felice di conoscerti. Scusa, sto solo aprendo la presentazione PowerPoint. |
| ROBYN GODFREY |
Va bene. |
| |
Ci sono altri presentatori? |
| di Joshua W. Lambert |
NO. |
| ROBYN GODFREY |
Bene, ora scorro l'elenco, quindi stiamo registrando, quindi mi dici verbalmente che sai che stai venendo registrato. |
| |
SÌ. |
| ROBYN GODFREY |
Le notifiche Internet dei telefoni cellulari sono disattivate. |
| di Joshua W. Lambert |
SÌ. |
| ROBYN GODFREY |
Sì, credo di essere come la barra delle applicazioni di Windows e tutto il resto, e certo è come se la tua posta elettronica si interrompesse nel mezzo. |
| di Joshua W. Lambert |
E non credo di aver disattivato tutto? Non hanno mai dovuto farlo prima, quindi. |
| ROBYN GODFREY |
Penso che sia nella barra delle applicazioni. |
| |
vediamo qui. |
| |
Chiudi la tua email e tutto andrà bene. |
| |
Va bene. |
| di Joshua W. Lambert |
ho preso i tacos. |
| ROBYN GODFREY |
Ok, ottimo, mi nasconderò qui. |
| |
Per fare questo, ogni volta che lo faccio, devo, devo tipo Ok, cosa ho fatto. |
| di Joshua W. Lambert |
E allora? |
| |
Per quanto riguarda la presentazione, immagino che taglierete da dove inizio. |
| |
Sì, e hai domande da fare o. |
| ROBYN GODFREY |
No, no, quindi farai la tua presentazione come faresti normalmente. |
| |
giusto, sai che devi solo caricare le tue diapositive e tutto il resto. |
| |
Se vuoi prima parlare e poi mostrare le tue diapositive, va bene, se devi ricominciare da capo o cose del genere fammelo sapere e possiamo farlo, non è un grosso problema. |
| |
Ok, sei un po' come se fossi la telecamera, c'è un modo per tornare indietro un po' visto che sei davvero vicino? |
| |
Non riesco nemmeno a vedere tutto il tuo viso, riesco a vedere. |
| di Joshua W. Lambert |
per sapere che avevo dimenticato. |
| ROBYN GODFREY |
sì, solo un pochino. |
| |
Oppure abbassa un po' la telecamera. |
| |
Va bene. |
| |
Va bene, sì, possiamo vedere meglio le tue spalle e tutto il resto, okay. |
| |
Quindi disattivo l'audio e dammi solo un paio di secondi, poi puoi. |
| |
inizia quando sei pronto, ok? |
| |
Grande. |
| di Joshua W. Lambert |
Ciao a tutti. Mi chiamo Josh Lambert. Sono professore associato presso l'Università di Cincinnati e sono un utente JMP da circa 10 anni. |
| |
E sono entusiasta di condividere con voi parte del lavoro che ho svolto esplorando le interazioni nei modelli di regressione utilizzando un componente aggiuntivo da me creato che sfrutta un algoritmo da me sviluppato, denominato algoritmo della soluzione fattibile. |
| |
COSÌ |
| |
alcuni contenuti di cui parleremo oggi. Quindi inizierò con un piccolo esempio, che motiverà la nostra discussione, così come quello su cui ho lavorato, una panoramica del problema. |
| |
Una possibile soluzione. |
| |
E poi parlerò di come ho implementato la soluzione in un pacchetto R e poi l'ho spostata in un componente aggiuntivo JMP e del processo che ho seguito per farlo. E poi parlerò di alcuni progetti futuri e di alcune cose che ho imparato lungo il cammino. |
| |
Quindi motiviamo la nostra discussione odierna con un piccolo esempio. Chiamerò questo Tom, il Data Scientist. Quindi, ecco Tom. È un data scientist e Tom svolge molte delle tipiche attività di data science, in particolare Tom crea modelli di regressione multivariabile in JMP. |
| |
Tom si occupa principalmente di dati tabulari con molte variabili e si rende conto che questi modelli di regressione multivariabile mancano di complessità, in particolare mancano di termini di interazione e termini quadratici. |
| |
E Tom... questo lo frustra, e Tom non vuole addentrarsi subito nel mondo dell'apprendimento automatico. |
| |
Pertanto vorrebbe avere un modo per esplorare gli effetti dell'interazione nei suoi modelli di regressione. |
| |
vorrebbe testare delle interazioni, ma dovrebbe inserirle manualmente nella piattaforma del modello di adattamento in JMP. |
| |
E sapete, dover eseguire tutto questo richiederà molto tempo. Quindi, per esempio, se Tom ha 200 variabili nel suo set di dati e deve cercare tutte le interazioni bidirezionali, ci sono 19.900 interazioni bidirezionali da controllare. Sono un po' troppe. |
| |
Tom si chiede quindi se esista un modo algoritmico e basato sui dati per esplorare gli effetti di interazione nei modelli di regressione senza doverli creare tutti a mano e senza dover controllare tutte queste possibili combinazioni. |
| |
Quindi, diamo un'occhiata a questo problema in modo un po' più rigoroso dal punto di vista matematico e statistico. Quindi, quello che abbiamo nel problema è un problema di volume e complessità. |
| |
Quindi volume e complessità |
| |
continuerà a crescere a un ritmo davvero veloce. Abbiamo sempre più dati a nostra disposizione in ogni momento, e anche la complessità di questi dati sta crescendo. |
| |
Il problema con le interazioni è che sono semplicemente troppe per poterle controllare. |
| |
Di solito, uno scienziato dei dati, uno statistico, uno scienziato dovrà entrare nell'analisi con una serie nota di interazioni da controllare |
| |
e poi procedere a controllarli. Questo è un problema per vari motivi... vari motivi, |
| |
che potresti non avere una buona idea di quali interazioni potrebbero o meno esistere e vorresti essere in grado di esplorarle nei tuoi dati |
| |
senza dover ricorrere a modelli, come random forest o anche analisi delle componenti principali per fare una sorta di riduzione dei dati, aggiungendo un po' più di complessità. Vorresti davvero essere in grado di fare cose lungo il percorso mentre costruisci un modello di regressione. |
| |
Quindi l'altro problema con la foresta casuale e le componenti principali, così come con altri tipi di attività di apprendimento automatico, è che queste cose sono spesso difficili da interpretare e vorremmo aggiungere...mantenere l'interpretabilità dei modelli di regressione mentre esploriamo le interazioni. |
| |
Quindi in genere il nostro flusso di lavoro nella regressione |
| |
quindi lo statistico passa molto tempo a costruire un modello di base parsimonioso, come lo chiamo io, con le variabili necessarie e senza effetti di interazione aggiunti. |
| |
Su questo modello di base, lo statistico spenderà molto... molto tempo, molte risorse, cure, tempo a pensare se sono interpretabili o meno e se avranno un senso contestuale. |
| |
Il problema con questi modelli di base che non includono la complessità è che presumono che gli effetti... che gli effetti che stanno stimando siano coerenti in tutti i possibili sottogruppi come sesso, razza, età, e questo solitamente non è vero. |
| |
Questa mancanza di complessità |
| |
impedisce davvero alle persone di poterlo usare, rispetto a un modello di apprendimento automatico, che fa davvero un buon lavoro nel modellare questa complessità. Quindi il problema può essere riassunto nel modo seguente. |
| |
Esiste un modo per non arrivare fino ai modelli tradizionali di regressione multivariabile e non fino ai modelli di apprendimento automatico, |
| |
ma trovare un bel punto debole nel mezzo, dove siamo in grado di prendere la bella interpretabilità dei nostri modelli di regressione che aggiungono una o due interazioni |
| |
che abbiamo trovato in questi big data, in modo da poter aggiungere interessanti sfumature ai nostri modelli e complessità, che, ancora una volta, aggiungono prestazioni predittive e un buon senso contestuale. |
| |
Quindi, se esiste un modo per farlo, ciò che vorremmo davvero fare è sviluppare uno strumento che consenta a statistici, data scientist e ricercatori di esplorare le interazioni dopo aver creato un modello di base. |
| |
di solito, prima si passa al modello di base e poi all'esplorazione della complessità. |
| |
Quindi abbiamo alcuni vincoli e preferenze se dovessimo sviluppare uno strumento come questo. Vorremmo che ci fosse, sulla base dei modelli statistici tradizionali, una regressione logistica lineare, |
| |
vorremmo che rimanessero interpretabili. Vogliamo controllare meno modelli, se possibile, e preferiremmo fattibile piuttosto che ottimale. Approfondirò un po' di più cosa significa più avanti, ma in sostanza, ciò che significa davvero è che |
| |
vorremmo che ci fosse una pletora di soluzioni, piuttosto che una sola, che siano valide e che potremmo definire fattibili. |
| |
E vorremmo anche che fosse flessibile. Potrebbe essere adattato per poter lavorare con la regressione lineare, la regressione logistica, la regressione proporzionale di Cox. Potremmo usarlo per la regressione di Poisson, qualsiasi tipo di regressione, questo framework o strumento potrebbe essere in grado di essere utilizzato per. |
| |
E ancora una volta sarà un ibrido tra metodi statistici tradizionali e apprendimento automatico. I risultati che ne usciranno non saranno necessariamente inferenziali, ma saranno esplorativi e motiveranno e influenzeranno ciò a cui dedicheremo il nostro tempo in futuro. |
| |
Parliamo ora di questa potenziale soluzione, l'algoritmo della soluzione fattibile. |
| |
L'algoritmo...l'algoritmo della soluzione fattibile a volte chiamato FSA, o almeno così mi piace chiamarlo, |
| |
è stato discusso per la prima volta in questo articolo...in realtà è stato discusso per la prima volta in dettaglio in questo articolo che ho scritto nel 2018. |
| |
E |
| |
Riassumerò qui cosa fa l'algoritmo. |
| |
Quindi l'obiettivo dell'algoritmo è identificare interazioni di ordine m (quindi se m fosse 2, si tratterebbe di un'interazione bidirezionale; se m fosse 3, si tratterebbe di un'interazione tridirezionale), |
| |
con un criterio fattibile, quindi questo è un criterio che non è necessariamente il migliore, ma è un |
| |
criterio che è |
| |
forse considerato in qualche modo semi-ottimale. |
| |
Quindi, per fare questo, seguiremo i seguenti passaggi. Quindi, la prima cosa che faremo è iniziare con un'interazione casuale di ordine m, quindi, per il nostro caso, supponiamo che sia un'interazione bidirezionale, quindi m è 2. |
| |
Considereremo tutti gli scambi di una delle variabili e l'interazione per tutte le altre variabili. Quindi, per esempio, diciamo di avviarlo in modo casuale. |
| |
Abbiamo cinque variabili, quindi questo è solo un piccolo esempio, giusto per motivare i passaggi qui, ma diciamo che abbiamo cinque variabili e iniziamo casualmente da X3, X5 e il nostro criterio, che è R quadrato per quel punto di partenza casuale, è 0,5. |
| |
E diciamo che il modo in cui funziona l'algoritmo è che prenderebbe in considerazione lo scambio di una delle variabili, X3 o X5, per una qualsiasi delle altre. Quindi le nostre scelte sono |
| |
X3 X1, X3 X2, X3 X4, X5 X1, X5 X2 e X5 X4. Quindi nota che di tutti i possibili, quelli che chiamerò, swap hanno almeno una delle variabili di posizione di partenza al loro interno, okay? |
| |
E poi, quello che faremo è di tutti questi, adatteremo quei modelli e scopriremo qual è il criterio per quei modelli. Quindi quello che possiamo vedere qui è che |
| |
per il modello X3 X5 abbiamo .5; per X3 X1 il criterio è .4. |
| |
E con R al quadrato, ovviamente non vogliamo andare in un posto peggiore, vogliamo andare in un posto migliore, con un R al quadrato più alto, quindi scopriremmo, tra tutte le possibili scelte, qual è il posto migliore dove andare. |
| |
In questo esempio, il posto migliore in cui andare è lo scambio numero tre, che è X3 X4. Quindi quello che faremmo è passare al passaggio tre e faremmo lo scambio migliore dal passaggio numero due. |
| |
In tal caso, passeremo al punto X3, X4 e poi torneremo al numero due e ripeteremo finché non sarà più possibile apportare miglioramenti. |
| |
Quindi ripeteremmo questo processo, spostandoci in vari posti, iniziando da lì, prendendo in considerazione tutti gli scambi, finché alla fine non riusciremmo più ad apportare alcun miglioramento. |
| |
E lo chiameremo...quel punto in cui troveremo una soluzione fattibile. |
| |
E ripeteremo i passaggi da uno a quattro per trovare altre soluzioni fattibili. Possiamo farlo più e più volte, e questo processo, questo algoritmo di soluzione fattibile, non garantisce di darti la soluzione ottimale, anche se può darti la soluzione ottimale, a volte. |
| |
Quindi parliamo di alcuni dei sottoprodotti dell'uso di questo algoritmo, l'algoritmo della soluzione fattibile. E questi sono delineati in un documento che |
| |
Elliott, una mia collega, ha scritto nel 2021 che, come ho appena detto prima, non è detto che le soluzioni fattibili siano ottimali per un criterio scelto. |
| |
E questo significa che tutte le soluzioni ottimali sono fattibili, ma non tutte le soluzioni fattibili sono ottimali. Quindi le soluzioni fattibili sono un tipo di soluzione semi-ottimale, ti danno un buon criterio, criteri fattibili, ma non necessariamente ottimali. |
| |
Questi criteri di soluzioni fattibili sono in genere molto vicini a quelli ottimali, quindi tendono a essere piuttosto buoni. Potrebbero semplicemente non essere buoni quanto il migliore. |
| |
Molti...se ripeti il processo, questo...questi quattro passaggi, otterrai potenzialmente molte soluzioni fattibili, quindi se esegui questo algoritmo 10 volte, potresti ottenere quattro soluzioni fattibili. |
| |
Potresti ottenere 10 soluzioni fattibili. Dipende dai dati che stai utilizzando, così come dalla varianza nella covarianza di quel set di dati, quindi è un po' |
| |
indeciso su quante soluzioni otterrai. |
| |
Ed è per questo che di solito incoraggiamo gli utenti a ripetere più volte l'algoritmo della soluzione fattibile, perché ciò aumenterà le possibilità di ottenere quelle ottimali, così come quelle fattibili, e assicurerà di aver |
| |
adeguatamente ricercato lo spazio. E abbiamo un altro documento che descrive (se qualcuno è interessato, è il benvenuto a contattarmi) quanti ordinamenti casuali dovrei fare per assicurarmi di avere una probabilità ragionevole di ottenere quello ottimale. Abbiamo un |
| |
anche un articolo teorico su questo argomento. |
| |
Ma, in sostanza, il modo in cui funziona è che alcune di queste interazioni sono più attraenti. Loro... lo spazio beta le attrae più di altre, e quindi quello che si finisce per ottenere a volte è che, anche se |
| |
un'interazione non è quella ottimale, a volte può portare...i dati possono spesso portarla |
| |
attraverso l'algoritmo della soluzione fattibile...fattibile può spesso condurti a quel punto più spesso di quello ottimale, e questo dipende semplicemente dal modo in cui i dati sono correlati e quant'altro. |
| |
Parliamo quindi del pacchetto R e di come l'ho spostato nel componente aggiuntivo JMP. |
| |
COSÌ |
| |
il pacchetto R si chiama rFSA, e so che potremmo avere alcune persone che hanno usato R in modo piuttosto esteso e altre che non lo hanno fatto. E |
| |
Quindi R è un linguaggio di programmazione davvero valido e spesso viene insegnato nei programmi di statistica, quindi è stato il primo posto in cui mi sono subito recato quando ho lavorato alla mia tesi. |
| |
per, sai, scrivere questo algoritmo e per fornire davvero uno strumento alla comunità affinché sia in grado di identificare ed esplorare le interazioni nei propri set di dati. |
| |
E quindi il pacchetto rFSA implementa questo algoritmo di soluzione fattibile di cui ho appena parlato |
| |
per interazioni in grandi set di dati, e questo pacchetto supporta l'ottimizzazione di molti criteri diversi come R quadrato, R quadrato aggiustato, AIC |
| |
interazione, valore P, e così via. E supporta anche diverse strategie di modellazione, come modelli lineari e modelli lineari generalizzati, e può essere facilmente adattato per funzionare con altri tipi di modellazione, come i modelli di rischio proporzionale di Cox. |
| |
E fornisce anche molteplici soluzioni poiché ripete l'algoritmo tutte le volte che specifichi. |
| |
Allora perché...Vorrei parlare un po' delle mie motivazioni nello spostare questo pacchetto su JMP, e spiegherò perché, quando e come ho intenzione di farlo. |
| |
Quindi la prima domanda è: perché farlo? La prima cosa è che è divertente. Mi piace scrivere in diversi linguaggi di programmazione. Non avevo molta esperienza di scrittura nel linguaggio di scripting JMP, che è la versione di JMP di |
| |
linguaggio di programmazione statistica, e quindi ho voluto impararlo e ho pensato che sarebbe stato divertente spostare questo pacchetto R su cui ho trascorso la maggior parte di quattro anni, e provare a spostarlo su JMP, perché |
| |
Mi piace molto JMP. Penso che JMP sia fantastico. È uno strumento davvero fantastico per me e per i miei dati. |
| |
pipeline di analisi. Di solito inizio tutti i miei progetti in JMP ed esploro i dati, li grafico, osservo le cose e poi questo mi dà un sacco di buone intuizioni su quei dati. E ho scoperto che molti dei miei |
| |
colleghi, in particolare uno dei miei consulenti, lavora principalmente in JMP e mi chiedeva sempre il pacchetto FSA in JMP. |
| |
E così ho pensato, sai, perché non darglielo? Sicuramente se lo merita, quindi ho deciso che sarebbe stato un buon strumento e che, si spera, altre persone lo avrebbero fatto. |
| |
trarne qualche utilità. E questo mi porta all'altro punto sul perché farlo, e ho ricevuto un sacco di feedback positivi su rFSA. |
| |
Nello specifico, ho monitorato quante persone hanno scaricato il mio pacchetto R: da quando lo abbiamo lanciato nel 2019, sono oltre 16.000 le persone che lo hanno scaricato. |
| |
Ho ricevuto innumerevoli e-mail da persone provenienti da tutto il mondo e desidero che la stessa cosa sia accessibile a tutti in JMP. Spero inoltre che, tramite questo componente aggiuntivo, le persone possano trovare interazioni davvero interessanti che cambino il modo in cui interpretano i dati e li comprendono. |
| |
E allora potresti chiederti, beh, quando avrei dovuto farlo? Non è esattamente qualcosa per cui qualcuno mi sta pagando. Sai, JMP non mi sta pagando per farlo. |
| |
La mia posizione attuale, anche se penso che lo troverebbero interessante, probabilmente non sono esattamente entusiasti all'idea che io dedichi un sacco di tempo extra a questa cosa. |
| |
Ma fortunatamente, una cosa che ho integrato nella mia posizione è un po' di tempo libero il venerdì. Cerco di lasciare i venerdì pomeriggio o i venerdì mattina liberi solo per divertirmi, |
| |
cose divertenti che hanno a che fare con il mio lavoro. E lo chiamo Fun Friday Free Time, ed è quello che ho deciso di fare negli ultimi mesi, prendere il mio Fun Friday Free Time e spenderlo creando un componente aggiuntivo JMP. |
| |
Potresti chiederti, beh, come avrei fatto? Sai, non conoscevo il linguaggio di scripting JMP. Come avrei fatto a farlo? Quindi |
| |
la prima cosa è che, sai, stavo per impararlo. Quindi ci sono un sacco di risorse davvero fantastiche là fuori su come imparare JSL. |
| |
Quindi c'è il supporto del codice JMP JSL che è all'interno del software JMP stesso. Basta andare su help, puoi...andare direttamente in |
| |
l'indice di scripting che c'è. Ci sono innumerevoli cose che sono online |
| |
su come comprendere il linguaggio di scripting JMP e da dove iniziare. E poi c'è community.jmp.com, |
| |
che è davvero fantastico per iniziare, dove puoi fare domande o vedere altre domande che le persone hanno fatto e prendere in prestito il codice che hanno pubblicato lì pubblicamente per poter...per far divertire le persone. E l'ho fatto un certo numero di volte qui, ed è stato davvero fantastico. |
| |
Quindi, esaminerò ognuno di questi aspetti un po' più in dettaglio, così se sei interessato a spostare un pacchetto R o a scrivere il tuo algoritmo o a scrivere il tuo codice JSL, |
| |
avrai un'idea di dove iniziare. E poi, quando avrò finito con questo, andrò nel mio componente aggiuntivo e nello specifico cosa fa e come usarlo. |
| |
Quindi come si impara JSL? Beh, puoi farlo di nuovo... |
| |
puoi impararlo tramite una serie di risorse JSL di JMP che hanno. Quindi hanno una guida di scripting di 864 pagine, che è linkata qui, |
| |
che puoi cercare su Google, o potresti riuscire a ottenere queste slide dopo che questo è finito, e riuscire a ottenere questi link. C'è un indice di scripting all'interno di JMP, che puoi semplicemente andare su help e poi su scripting index. L'ho messo qui per voi ragazzi, davvero facile da usare e per iniziare. |
| |
Puoi contattare JMP. Quindi la prima cosa che ho fatto è stata trovare un contatto a JMP. Il suo nome è Ruth Hummel e ho detto, hey, voglio fare questo, da dove inizio? |
| |
Mi ha dato supporto e incoraggiamento riguardo all'idea. Ha pensato che fosse grandiosa e poi mi ha messo in contatto con un esperto di codice JSL, |
| |
il cui nome è Mark Bailey. E Mark è stato formidabile durante tutto questo processo. Mark mi ha aiutato con un supporto generale sul linguaggio di scripting, revisionando il mio codice, aiutandomi a scriverne parti, |
| |
iniziare una parte di essa. E abbiamo preso... siamo andati avanti e indietro circa 22 volte diverse tramite e-mail negli ultimi mesi. E |
| |
le risorse che JMP mi ha fornito, per quanto riguarda i dipendenti diretti che erano disposti ad aiutarmi con il mio progetto |
| |
sono stati fantastici. Voglio dire, non avrei potuto chiedere di meglio. Voglio dire, non ho mai ricevuto questo tipo di supporto quando cercavo di creare qualcosa per un'altra piattaforma prima. Quindi complimenti a JMP per |
| |
fornendo questo, e sono la ragione principale per cui questo esiste; perché hanno fornito risorse fantastiche. |
| |
Quindi community.jmp.com, puoi fare domande lì, puoi ottenere risposte, puoi prendere in prestito codice, puoi ottenere la certificazione lì |
| |
Linguaggio di scripting JMP. Puoi cercare nella Community qualsiasi cosa tu voglia, puoi... è come un Google, ma è solo per JMP. |
| |
E puoi cercare qualsiasi cosa tu voglia, quindi puoi digitare JSL e JSL qualsiasi cosa tu voglia fare, e probabilmente c'è qualcuno là fuori che ha già postato su questo. Se non c'è, puoi aggiungerlo alla bacheca di discussione. |
| |
E poi c'è il prestito del codice, e questa è una delle cose che Mark mi ha passato, ehi, prendi in prestito il codice. C'è un sacco di codice là fuori sul sito web della Community, |
| |
e le persone lo hanno condiviso per un motivo. Quindi io...qui a destra c'è in realtà qualcosa che ho preso in prestito per il mio componente aggiuntivo che ho sviluppato. Volevo che gli utenti sapessero dove si trovavano |
| |
in termini di esecuzione dell'algoritmo e di quanto tempo ancora ci sarebbe voluto o quanti progressi erano già stati compiuti. |
| |
Quindi non volevo scrivere la mia barra di avanzamento in JMP, quindi ne ho presa in prestito una dalla bacheca della community e l'ho aggiunta direttamente al mio componente aggiuntivo, quindi sì. |
| |
Questa persona, Craige Hales, che è un membro in pensione dello staff di JMP, ha scritto questo codice e io l'ho preso in prestito. Quindi grazie, Craige; Grazie, Mark per aver consigliato di prendere in prestito il codice. Mi ha fatto risparmiare un sacco di tempo, quindi lo apprezzo molto e ha reso l'add-in molto migliore. |
| |
Quindi ora parliamo finalmente dell'add-in. Quindi vi ho parlato del perché questo add-in è necessario, giusto? Altri hanno tratto vantaggio dal pacchetto R e perché penso che gli utenti JMP ne trarranno beneficio e vi ho parlato di come l'ho fatto. |
| |
E ora voglio mostrarvi come funziona, che è la parte più divertente di tutta questa faccenda. Quindi ho spostato l'intero pacchetto, il pacchetto R, su JMP in pochi mesi nel mio Fun Friday Free Time che ho, quindi sono solo poche ore di venerdì. E il componente aggiuntivo JMP |
| |
attualmente funziona solo per modelli di regressione lineare e logistica. Spero di poterlo espandere ad altri modelli in seguito, ma al momento funziona per modelli di regressione lineare e logistica. L'altra cosa è che il componente aggiuntivo, |
| |
non ha molti dei fronzoli e dei fronzoli di fantasia che hanno tutti gli altri moduli JMP integrati, sai. Ad esempio, quando inserisci una variabile categoriale nella variabile di risposta, il tipo di personalità non passa automaticamente alla regressione logistica. |
| |
Non ci sono ancora riuscito. Ci sono molte altre cose che non ho ancora fatto e che spero di migliorare con questo pacchetto man mano che le persone lo usano e lo apprezzano e mi danno feedback in merito. |
| |
Quindi manca di qualche funzionalità. E la cosa bella del gestore dei componenti aggiuntivi è che puoi semplicemente prendere il tuo codice JSL e c'è un componente aggiuntivo... un gestore dei componenti aggiuntivi, un componente aggiuntivo JMP, |
| |
che ti consente di creare il tuo componente aggiuntivo dal tuo codice JSL, quindi con un semplice clic puoi prendere il tuo codice JSL e trasformarlo in un componente aggiuntivo che puoi condividere con l'intera community JMP. |
| |
E l'ho pubblicato sul sito web community.jmp.com affinché tutti possano andare là fuori e accedere a quel componente aggiuntivo che sto per mostrarvi. |
| |
e per accedere anche al set di dati che userò. Ma questo funzionerà con tutti i set di dati che hai, non solo con il mio esempio. |
| |
Quindi vi darò un tutorial dal vivo molto veloce di questo componente aggiuntivo, chiamato... il componente aggiuntivo, l'ho appena chiamato esplorazione delle interazioni e |
| |
tutto questo verrà fatto tramite l'algoritmo di soluzione fattibile di cui ho parlato prima. L'esempio è un modello lineare |
| |
dove ho intenzione di fissare due variabili, quindi questo sarebbe il mio modello base. Il mio modello base avrà una variabile di risposta continua e due covarianti per cui voglio essere in grado di effettuare aggiustamenti. |
| |
E poi, quello che vorrei fare è prendere in considerazione le interazioni di secondo ordine da aggiungere a quel modello tra una qualsiasi delle 10 variabili presenti nel mio set di dati. |
| |
E vorrei fare cinque partenze casuali e voglio assicurarmi che il mio criterio, e questo attualmente è l'unico criterio che è integrato nel |
| |
JMP add-in, è che vogliamo minimizzare il valore P dell'interazione. Quindi ciascuna di queste interazioni che controlliamo |
| |
produrre un valore P e quello che voglio fare è che le mie soluzioni siano quelle che hanno |
| |
valori P molto piccoli. Quindi cercherà nello spazio, in base a quale sia il valore P dell'interazione e andrà a quelli che hanno il migliore. Quindi i nostri risultati avranno molte interazioni che hanno valori P piccoli. E |
| |
di solito quello che ti consiglio dopo aver eseguito questo tipo di procedura, è l'algoritmo di soluzione fattibile, |
| |
si prosegue tracciando i dati, osservando quelle interazioni nel modello e riflettendo su di esse in modo critico in senso contestuale, perché in fin dei conti, stiamo esplorando i dati. |
| |
Questo non è in alcun modo inferenziale. Stiamo solo usando il segnale dei dati per stabilire quali interazioni potrebbero esistere in questi dati. |
| |
Ancora una volta, i dati e il componente aggiuntivo vengono pubblicati sul sito web della Community. |
| |
Bene, quindi mi fermo, esco da qui molto velocemente e tiro fuori il |
| |
Il set di dati JMP che ho. Spero che voi ragazzi possiate vederlo. |
| |
E come potete vedere, solo una rapida panoramica, questo è in realtà un mucchio di dati casuali che ho generato. Non c'è una vera struttura in tutto questo. C'è... questi non sono dati reali, solo dati generati casualmente in JMP. |
| |
Ha 20 osservazioni qui. Ho 10 variabili continue, variabili esplicative. |
| |
Ho una variabile di risposta continua e ho anche categorizzato la variabile di risposta come maggiore di zero o minore di zero. |
| |
Quindi, se vuoi poter osservare i risultati della regressione logistica, potresti anche fare un esempio di regressione logistica con i dati. |
| |
Quindi, una volta ottenuto il componente aggiuntivo, vai sul sito Web, scarichi il componente aggiuntivo, fai semplicemente doppio clic su di esso e si installa direttamente su JMP. È davvero facile. |
| |
E poi puoi semplicemente andare qui, quindi andare su "Componente aggiuntivo", andare...una volta aperto il set di dati, andare su "Componente aggiuntivo" per esplorare le interazioni. |
| |
E questo apparirà qui. Quindi abbiamo un paio di cose. Quindi vedremo tutte le nostre variabili qui a sinistra, proprio come fareste con qualsiasi altro modulo in JMP. |
| |
E quindi sceglierò la mia variabile di risposta, che sarà Y, e poi la sistemerò, quindi è qui che sto costruendo il mio modello di base. Quindi questi sono tutti gli effetti principali lineari che sto aggiungendo al mio modello. Quindi in questo, ho due variabili, |
| |
X1 e X2, che aggiungerò qui. Ora una delle cose che devi fare è specificare il tipo di modellazione, quindi ci sono due tipi nel mio |
| |
add-in tra cui puoi scegliere. Uno è il tipo di modellazione standard dei minimi quadrati e uno è quello della regressione logistica. |
| |
E questo non sceglierà automaticamente, come ho detto prima, in base a ciò che hai inserito qui, quindi puoi tranquillamente inserire una variabile di risposta categoriale e non cambierà. Devi cambiarla tu stesso. Questa è una di quelle belle campane e fischietti, spero di arrivarci più avanti. |
| |
Sbarazzatene. Rimettetelo qui. |
| |
Bene, questa è la nostra configurazione, e quindi questo si adatterà al modello y uguale a beta zero più beta uno X uno più beta due X due. E ora qui sotto è dove inserirò le variabili che sono disposto a |
| |
...oppure, voglio cercare interazioni tra, quindi selezionerò tutti gli elementi da X1 a X10. Li aggiungerò. |
| |
E poi gli dico ok, quante volte voglio eseguire l'algoritmo? Quindi qui lo farò cinque volte, per una questione di tempo, |
| |
e l'ordine delle interazioni da considerare, quindi ne farò solo due. |
| |
Consiglio di restare a tre o meno, di solito diventa molto più difficile interpretare le interazioni che sono interazioni a quattro vie, a cinque vie, ma |
| |
l'algoritmo...o il modo in cui l'ho impostato è che potresti andare così in alto se volessi. In realtà non ho messo un limite, ma sappi solo che più in alto vai qui, più tempo ci vorrà per eseguirlo. |
| |
Quindi premerò "Okay". Ci vorrà un secondo. |
| |
Quindi puoi vedere il codice che ho preso in prestito. |
| |
Come puoi vedere, è apparso qui e mi dice che ho completato il 20%, il 40%. |
| |
Quindi queste sono soluzioni. Quindi ogni volta che il controllo va avanti, viene trovata una soluzione fattibile, e poi ciò che salta fuori alla fine è una tabella di dati, quindi |
| |
sai, di nuovo, questa non è una di quelle caratteristiche...mi piacerebbe che ci fosse una casella di selezione, dove potresti selezionare l'interazione e poi premere |
| |
crea modello, e farebbe tutto questo per te, proprio come fa JMP per un sacco di cose diverse, ma non ci sono ancora arrivato. Questo ti dice solo quali erano le soluzioni. |
| |
Quindi ti dà una specie di riassunto di cosa ha fatto. Quindi ha fatto cinque partenze casuali. Ti dice qual era la variabile di risposta, le variabili fisse, |
| |
le variabili di interazione che ha trovato, okay, e l'R quadrato, l'R quadrato aggiustato per quel modello, l'errore quadratico medio e poi il valore P dell'interazione. Okay, quindi quello che possiamo vedere qui è che |
| |
(se clicco qui mi verrà mostrato) ci sono solo due soluzioni, quindi... X2 X3 era un'interazione e X10 X7 un'altra. |
| |
E quindi ora, quello che posso fare, non lo farò ora, è andare a costruire questo modello e riprodurre questi risultati e guardare i risultati per vedere, okay, questa è una buona statistica |
| |
algoritmo...o una buona interazione statistica che ho trovato qui? Sai, come sono i miei grafici di leva? Quali sono tutti i miei diversi criteri |
| |
i grafici? E come sono i miei grafici diagnostici? Quel genere di cose. E poi posso iniziare a fare domande, come questa interazione ha senso in termini di stime dei parametri e quant'altro? |
| |
È esplorativo, quindi ti fornirà delle possibili soluzioni, ma devi seguire questa strada con la dovuta diligenza e pensare effettivamente ai risultati che hai ottenuto. |
| |
e porre domande a coloro che sono esperti di contesto...contestuali in questo campo. Di solito è così che lo usiamo nelle scienze della salute. Lo usiamo con i dati sanitari, produciamo interazioni, poi andiamo dai medici per dire se questo ha senso che questo effetto, |
| |
sai, non sarebbe coerente per età o sesso o altro. E di solito ce ne parlano, sai, ci pensano. L'idea generale è che questo influenzerà, si spera, studi futuri, dove possiamo alimentare gli studi per cercare questi effetti di interazione in modo più |
| |
modo ben alimentato. |
| |
Bene, ora torno al mio PowerPoint. Questo era il tutorial. Puoi vedere che è piuttosto facile da usare. Questo era un esempio davvero piccolo. Puoi aumentare la velocità, |
| |
sappi solo, sai, più grandi sono i set di dati che hai, più lungo sarà l'intero processo che ho appena fatto. Non durerà 10 secondi; sarà, |
| |
sai, potenzialmente, sai, 5-10 minuti di lunghezza, a seconda di quanto grande era il tuo set di dati. Ho fatto...usato l'algoritmo, usato il componente aggiuntivo per fare set di dati con 100 variabili, |
| |
variabili esplicative, e ci è voluto più o meno lo stesso lasso di tempo, circa sette minuti, per eseguirlo e fare circa cinque o dieci partenze casuali. |
| |
Le cose sono più veloci nel pacchetto R che nel componente aggiuntivo JMP, ma questo perché, ripeto, questo è il mio primo tentativo e, spero, attraverso le iterazioni diventerà ancora più veloce e migliore. |
| |
Quindi parliamo di miglioramenti futuri. Quindi voglio consentire agli utenti di essere in grado di ottimizzare o |
| |
trovare soluzioni fattibili basate su qualsiasi, sai, qualsiasi criterio desiderino. Quindi se vogliono trovare soluzioni fattibili basate sull'ottimizzazione di R quadrato o sull'ottimizzazione di AIC o sull'ottimizzazione del tasso di classificazione errata, |
| |
sai, nei modelli di regressione logistica, voglio consentire loro di essere in grado di farlo. E non è poi così difficile da fare, devo solo entrare e farlo. |
| |
Salvare o selezionare automaticamente le personalità di modellazione in base alle selezioni variabili. È semplicissimo. Inserisci un |
| |
variabile logistica binaria, sai, selezionerà automaticamente la regressione logistica per te. Non credo che sia molto difficile, potrei farlo abbastanza velocemente. Mi sento sicuro di farlo dopo aver completato questo processo di spostamento del mio pacchetto R. |
| |
Voglio migliorare un po' la velocità. Ci sono molte cose che potrei fare per migliorare la velocità di questo. |
| |
Quindi, vorrei poterlo fare. Un pulsante di richiamo sarebbe bello. Ora non ce l'ho. Una delle mie funzionalità preferite in JMP è poter cliccare su quel pulsante di richiamo. |
| |
E poi vorrei essere in grado di semplificare il passaggio dai risultati ottenuti da FSA alla creazione di un modello. Quindi |
| |
Puoi già farlo, come quando esegui una selezione in avanti in JMP o Lasso o una qualsiasi di queste cose, puoi semplicemente cliccare su "Crea modello" e tutte le variabili vengono importate con estrema facilità. |
| |
Vorrei essere in grado di farlo con questo algoritmo di soluzione fattibile, basta ottenere quel tipo di risultati e cliccare sul modello di creazione e automaticamente fa tutto per te |
| |
in modo che tu possa esplorarli e, ancora una volta, sperare che tu riesca a dare un senso alle interazioni che hai trovato. |
| |
Ecco alcuni ringraziamenti che vorrei passare in rassegna. Quindi, il primo è Mark Bailey. Non avrei potuto farcela senza di te. Grazie mille per il tuo supporto con il codice JSL. Grazie a Ruth |
| |
per avermi messo in contatto con Mark, oltre ad essere stato un generale, sai, |
| |
persona di supporto per questo progetto e che fornisce solo un buon feedback. Anne e Larry, apprezzo |
| |
il tuo aiuto per tutto ciò che aveva a che fare con JMP e con le nostre relazioni passate e per avermi incoraggiato a fare questo Discovery Summit. È stato davvero fantastico e sono emozionato di incontrare più persone nella comunità JMP |
| |
attraverso di essa, quindi grazie per questo. Puoi contattarmi in vari modi. Puoi inviarmi un'e-mail alla mia e-mail universitaria, puoi contattarmi su Twitter se è questo il modo in cui ti piace fare le cose. |
| |
Ho intenzione di pubblicare questo componente aggiuntivo JMP anche su github e sul sito Web della community, quindi sentitevi liberi di controllare entrambi questi posti per futuri aggiornamenti del componente aggiuntivo. |
| |
Quindi sì, grazie per avermi invitato e non vedo l'ora di rispondere alle vostre domande nel tempo a nostra disposizione, grazie. |