Altoparlante
|
Trascrizione
|
| Joshua W. Lambert |
Ciao. |
| ROBYN GODFREY |
ciao, sono Robin, io Josh. |
| |
SÌ. |
| ROBYN GODFREY |
Il neo. |
| Joshua W. Lambert |
sì, piacere di conoscerti, scusa, sto solo aprendo PowerPoint qui. |
| ROBYN GODFREY |
Va bene. |
| |
Hai qualche co-presentatore? |
| Joshua W. Lambert |
NO. |
| ROBYN GODFREY |
Va bene, andrò avanti nell'elenco qui, quindi lo stiamo registrando, così solo così potrai darmi verbalmente un'affermazione verbale che sai che stai per essere registrato. |
| |
SÌ. |
| ROBYN GODFREY |
le notifiche Internet dei cellulari vengono silenziate. |
| Joshua W. Lambert |
SÌ. |
| ROBYN GODFREY |
sì, penso di essere come la barra delle applicazioni di Windows e tutto il resto e sicuramente è tutto come se la tua email si spegnesse nel mezzo. |
| Joshua W. Lambert |
E non credo di aver spento tutto, non hanno mai dovuto farlo prima, quindi. |
| ROBYN GODFREY |
Penso che sia nella barra delle applicazioni, um. |
| |
vediamo qui. |
| |
Chiudi semplicemente la tua email e tutto andrà bene. |
| |
Va bene. |
| Joshua W. Lambert |
ho preso i tacos. |
| ROBYN GODFREY |
Ok, fantastico, mi nasconderò qui. |
| |
Per farlo, ogni volta che lo faccio, devo, devo apprezzare Okay, cosa ho fatto. |
| Joshua W. Lambert |
Allora. |
| |
Per quanto riguarda la presentazione, immagino che voi ragazzi taglierete da quando inizierò. |
| |
sì e quali domande hai da porre o. |
| ROBYN GODFREY |
No, no, quindi farai la presentazione come faresti normalmente. |
| |
giusto e solo tu sai di far apparire le tue diapositive e tutto il resto. |
| |
Se vuoi prima parlare e poi visualizzare le diapositive, va bene, se hai bisogno di ricominciare da capo o qualcosa del genere, fammelo sapere e possiamo farlo, non è un grosso problema. |
| |
Ok, sei una piccola clip come se fossi la telecamera, c'è un modo per fare un passo indietro perché sei davvero vicino. |
| |
Non riesco nemmeno a vedere tutta la tua faccia, riesco a vederti. |
| Joshua W. Lambert |
per sapere che ho dimenticato. |
| ROBYN GODFREY |
sì, solo un po'. |
| |
O magari abbassa leggermente la fotocamera. |
| |
Va bene. |
| |
va bene sì, possiamo vedere meglio le tue spalle e cose del genere, okay. |
| |
Quindi disattiverò l'audio e dammi solo un paio di secondi, e poi potrai. |
| |
inizia quando sei pronto, okay. |
| |
Grande. |
| Joshua W. Lambert |
Ciao a tutti. Il mio nome è Josh Lambert. Sono un professore assistente presso l'Università di Cincinnati e utilizzo JMP da circa 10 anni. |
| |
E sono entusiasta di condividere con te parte del lavoro che ho svolto esplorando le interazioni nei modelli di regressione utilizzando un componente aggiuntivo che ho creato che utilizza un algoritmo che ho sviluppato chiamato algoritmo della soluzione fattibile. |
| |
COSÌ |
| |
alcuni contenuti di cui parleremo oggi. Quindi inizierò con un piccolo esempio, che motiverà la nostra discussione, oltre a ciò su cui ho lavorato, una panoramica del problema. |
| |
Una potenziale soluzione. |
| |
E poi discutere di come ho implementato la soluzione in un pacchetto R e poi di averlo spostato in un componente aggiuntivo JMP e del processo che ho seguito per farlo. E poi parlerò di alcuni impegni futuri e di alcune cose che ho imparato lungo il percorso. |
| |
Motiviamo quindi la nostra discussione di oggi con un piccolo esempio. Lo chiamerò Tom il Data Scientist. Allora ti presento Tom. È uno scienziato dei dati e Tom svolge molte attività tipiche della scienza dei dati, in particolare Tom crea modelli di regressione multivariabile in JMP. |
| |
Si occupa principalmente di dati tabulari che hanno molte variabili e Tom si rende conto che questi modelli di regressione multivariabile mancano di complessità, in particolare mancano termini di interazione e termini quadratici. |
| |
E Tom... questo frustra Tom, e Tom non vuole dedicarsi direttamente all'apprendimento automatico. |
| |
Quindi vorrebbe avere un modo per esplorare gli effetti di interazione nei suoi modelli di regressione. |
| |
ha delle interazioni che vorrebbe testare, ma dovrebbe inserirle manualmente nella piattaforma del modello di adattamento in JMP. |
| |
E sai, dover gestire tutto questo richiederà molto tempo. Quindi, ad 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 troppi. |
| |
Quindi Tom si chiede, esiste un modo algoritmico e basato sui dati per esplorare gli effetti di interazione nei modelli di regressione senza la necessità di realizzarli tutti manualmente e senza la necessità di controllare tutte queste possibili combinazioni? |
| |
Quindi esaminiamo questo problema in modo un po' più rigoroso dal punto di vista matematico e statistico. Quindi il problema è che abbiamo 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 loro complessità sta crescendo. |
| |
Il problema con le interazioni è che ce ne sono troppe da controllare. |
| |
Di solito, un data scientist, uno statistico o uno scienziato dovrà entrare nell'analisi con una serie nota di interazioni per verificare |
| |
e poi procedere a controllarli. Questo è un problema per diversi motivi... per diverse ragioni, |
| |
ovvero che potresti non avere una buona idea di quali interazioni possano o meno esistere e ti piacerebbe poterle esplorare nei tuoi dati |
| |
senza dover ricorrere a modelli, come la foresta casuale o anche l'analisi delle componenti principali, per eseguire una sorta di riduzione dei dati, aggiungendo lì un po' più di complessità. Ti piacerebbe 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 i componenti principali, così come con altri tipi di attività di machine learning, è che queste cose sono spesso difficili da interpretare e vorremmo aggiungere...mantenere l'interpretabilità dei modelli di regressione mentre siamo esplorare le interazioni. |
| |
Quindi in genere il nostro flusso di lavoro è in regressione |
| |
quindi lo statistico trascorre molto tempo a costruire un modello base parsimonioso, quello che chiamerò, con le variabili necessarie e senza effetti di interazione aggiunti. |
| |
Su questo modello base, lo statistico spenderà molto... molto tempo su questo modello base, molte risorse, cure, passerà tempo a pensare se sono interpretabili o meno e se avranno un buon senso contestuale. |
| |
Il problema con questi modelli base che non includono la complessità è che presuppongono che gli effetti... che gli effetti che stanno stimando siano coerenti in tutti i possibili sottogruppi come sesso, razza, età e questo in genere non è VERO. |
| |
Questa mancanza di complessità |
| |
impedisce davvero alle persone di poterlo utilizzare, rispetto, ad esempio, a un modello di apprendimento automatico, che fa davvero un ottimo lavoro nel modellare questa complessità. Quindi il problema può in realtà essere riassunto nel modo seguente. |
| |
Esiste un modo in cui non possiamo arrivare fino ai tradizionali modelli di regressione multivariabile e non fino ai modelli di apprendimento automatico, |
| |
ma troviamo un bel punto debole nel mezzo, dove siamo in grado di sfruttare la buona interpretabilità dei nostri modelli di regressione che aggiungono una o due interazioni |
| |
che abbiamo trovato in questi big data, in modo da poter aggiungere sfumature interessanti ai nostri modelli e alla complessità, che, ancora una volta, aggiungono prestazioni predittive e 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 costruito un modello di base. |
| |
il modello base avviene per primo, quindi l'esplorazione della complessità di solito avviene per seconda. |
| |
Quindi abbiamo alcuni vincoli e preferenze se dovessimo sviluppare uno strumento come questo. Vorremmo che ci fosse, sulla base dei modelli statistici tradizionali, la regressione logistica lineare, |
| |
vorremmo che rimanessero interpretabili. Vogliamo controllare meno modelli, se possibile, e preferiamo il fattibile all'ottimale. Approfondirò un po' più avanti cosa significa, ma in sostanza, ciò che significa davvero è questo |
| |
vorremmo che ci fossero molteplici soluzioni e non una sola, valida e che chiameremo fattibile. |
| |
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 per cui questo framework o strumento potrebbe essere utilizzato. |
| |
E ancora una volta sarà un ibrido tra i metodi statistici tradizionali e l’apprendimento automatico. I risultati che verranno fuori non saranno necessariamente inferenziali, ma saranno esplorativi e motiveranno e influenzeranno ciò che faremo in futuro. |
| |
Parliamo ora di questa potenziale soluzione, l'algoritmo della soluzione ammissibile. |
| |
L'algoritmo... l'algoritmo della soluzione fattibile a volte chiamato FSA, o è come mi piace chiamarlo, |
| |
è stato discusso per la prima volta in questo articolo... in realtà è stato discusso in dettaglio per la prima volta in questo articolo che ho scritto nel 2018. |
| |
E |
| |
Riassumerò qui cosa fa l'algoritmo. |
| |
Quindi l'obiettivo dell'algoritmo è identificare le interazioni di ordine m (quindi se m fosse 2, sarebbe un'interazione a due vie; se m fosse 3, sarebbe un'interazione a tre), |
| |
con un criterio fattibile, quindi questo è un criterio che non è necessariamente il migliore, ma è a |
| |
criterio cioè |
| |
forse considerato semi-ottimale in qualche modo. |
| |
Quindi, per fare ciò, 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, ad 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 in modo casuale da X3, X5 e dai nostri criteri, che è R al quadrato per quel punto di partenza casuale , è 0,5. |
| |
E diciamo che il modo in cui funziona l'algoritmo è che prenderebbe in considerazione la possibilità di scambiare una delle variabili, X3 o X5, con 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 tra tutti i possibili, quelli che chiamerò, gli scambi contengono almeno una delle variabili del punto di partenza, ok? |
| |
E poi, quello che faremo è, tra tutti questi, adattare quei modelli e capire quali sono i criteri per quei modelli. Quindi quello che possiamo vedere qui è questo |
| |
per il modello X3 X5 abbiamo .5; 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 scopriremo tra tutte le scelte possibili, qual è il posto migliore dove andare . |
| |
In questo esempio, il posto migliore dove andare è lo swap numero tre, che è X3 X4. Quindi quello che faremmo è passare al passaggio tre e realizzare lo scambio migliore dal passaggio numero due. |
| |
In tal caso, ci sposteremmo al posto X3, X4 e poi torneremmo al numero due e ripeteremo finché non sarà più possibile apportare miglioramenti. |
| |
Quindi ripeteremmo questo processo, spostandoci di posto, iniziando da lì, considerando tutti gli scambi, finché alla fine non saremo più in grado di apportare miglioramenti. |
| |
E lo chiameremo in quel punto in cui arriviamo ad una soluzione fattibile. |
| |
E ripeteremo i passaggi da uno a quattro per trovare altre soluzioni fattibili. Possiamo farlo ancora e ancora, e questo processo, questo algoritmo di soluzione fattibile, non è garantito che ti dia la soluzione ottimale, anche se può darti la soluzione ottimale, alcune volte. |
| |
Parliamo quindi di alcuni degli effetti collaterali dell'utilizzo di questo algoritmo, l'algoritmo della soluzione fattibile. E questi sono delineati in un documento che |
| |
Elliott, una mia collega, ha scritto nel 2021, descrivendo che non è garantito che le soluzioni fattibili, come ho appena detto prima, siano ottimali per un criterio scelto. |
| |
E questo vuol dire 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 buoni criteri, criteri fattibili, ma non necessariamente ottimali. |
| |
Tuttavia, questi criteri di soluzioni fattibili sono in genere molto vicini a quelli ottimali, quindi tendono ad essere piuttosto buoni. Potrebbero semplicemente non essere buoni come 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, nonché dalla varianza nella covarianza di quel set di dati, quindi è un po' |
| |
indeterminato riguardo a 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, oltre a quelle fattibili, e assicurarti di aver |
| |
perquisito adeguatamente lo spazio. E abbiamo un altro documento che descrive (se qualcuno è interessato, può contattarmi) quanti ordinamenti casuali dovrei fare per assicurarmi di avere una ragionevole probabilità di ottenere quello ottimale. Noi abbiamo un |
| |
articolo teorico anche su questo. |
| |
Ma, in sostanza, il modo in cui funziona è che alcune di queste interazioni sono più attraenti. Loro... lo spazio beta li attrae più di altri, e quindi quello che ottieni alcune volte è che, anche se |
| |
un'interazione non è quella ottimale, a volte può guidare... i dati spesso possono guidarla |
| |
attraverso la soluzione fattibile...l'algoritmo della soluzione fattibile può spesso portarti in quel posto più spesso di quello ottimale, e questo ha solo a che fare con il 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 utilizzato R in modo piuttosto estensivo e altre che non lo hanno fatto. E |
| |
Quindi R è un linguaggio di programmazione davvero carino e viene spesso insegnato nei programmi di statistica, quindi è stato il primo posto in cui sono andato immediatamente mentre lavoravo alla mia tesi |
| |
per scrivere questo algoritmo e fornire davvero uno strumento alla comunità per poter 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 le interazioni in set di dati di grandi dimensioni e questo pacchetto supporta l'ottimizzazione di molti criteri diversi come R quadrato, R quadrato rettificato, AIC |
| |
interazione, valore P, ecc. Inoltre supporta 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 più soluzioni poiché ripete l'algoritmo tutte le volte specificate. |
| |
Allora perché... voglio parlare un po' della mia motivazione nel trasferire questo pacchetto su JMP e parlerò del perché, del quando e del come lo avrei fatto. |
| |
Quindi la prima domanda è: perché farlo? La prima cosa è che è divertente da fare. Mi piace scrivere in diversi linguaggi di programmazione. Non avevo molta esperienza nella scrittura nel linguaggio di scripting JMP, che è la versione di JMP |
| |
linguaggio di programmazione statistica, quindi volevo impararlo e ho pensato che sarebbe stato divertente spostare questo pacchetto R su cui ho trascorso gran parte di quattro anni, e provare a spostarlo su JMP, perché |
| |
Mi piace molto JMP. Penso che JMP sia fantastico. È davvero un ottimo strumento per me e i miei dati |
| |
pipeline di analisi. Di solito inizio tutti i miei progetti in JMP ed esploro i dati, li traccio, guardo le cose e questo mi dà molte buone intuizioni su quei dati. E l'ho trovato molto mio |
| |
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, anche altre persone lo avrebbero fatto |
| |
trarne qualche utilità. E questo mi porta all'altro punto sul perché farlo, e ho ricevuto molti ottimi feedback su rFSA. |
| |
Nello specifico, ho monitorato quante persone hanno scaricato il mio pacchetto R e ci sono oltre 16.000 persone che lo hanno scaricato da quando lo abbiamo pubblicato nel 2019. |
| |
Ho ricevuto innumerevoli e-mail da persone di tutto il mondo e desidero che la stessa cosa sia accessibile per le persone in JMP. Spero che, attraverso questo componente aggiuntivo, le persone riescano a trovare interazioni davvero interessanti che cambino il modo in cui interpretano dati e come li interpretano. |
| |
E poi potresti chiederti, beh, quando lo avrei fatto? Non è esattamente qualcosa per cui qualcuno mi paga. Sai, JMP non mi paga per farlo. |
| |
La mia posizione attuale, anche se penso che la troverebbero interessante, probabilmente non sono esattamente entusiasti del fatto che io trascorra un sacco di tempo extra a farlo. |
| |
Ma fortunatamente, una cosa che ho incorporato nella mia posizione è il tempo libero il venerdì. Cerco di lasciare il venerdì pomeriggio o il venerdì mattina aperti solo al divertimento, |
| |
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 costruendo un componente aggiuntivo JMP. |
| |
Potresti chiederti, beh, come avrei fatto questo? Sai, non conoscevo il linguaggio di scripting JMP. Come avrei fatto a farlo? COSÌ |
| |
la prima cosa è che, sai, lo avrei imparato. Quindi ci sono molte ottime risorse là fuori su come imparare JSL. |
| |
Quindi c'è il supporto del codice JMP JSL che è all'interno del software JMP stesso. Vai semplicemente ad aiutare, puoi proprio... entrare direttamente |
| |
l'indice di scripting che c'è. Ci sono innumerevoli cose online |
| |
su come comprendere il linguaggio di scripting JMP e da dove iniziare. E poi c'è community.jmp.com, |
| |
il che è davvero fantastico per iniziare, dove puoi porre domande o visualizzare altre domande che le persone hanno posto e prendere in prestito il codice che hanno pubblicato lì pubblicamente per poter... affinché le persone possano divertirsi. E l'ho fatto diverse volte qui, ed è stato davvero fantastico. |
| |
Quindi esaminerò ognuno di questi un po' più in profondità, quindi se sei interessato a spostare un pacchetto R o scrivere il tuo algoritmo o scrivere il tuo codice JSL, |
| |
avrai un'idea su dove iniziare. E poi, quando avrò finito, andrò nel mio componente aggiuntivo e nello specifico cosa fa e come usarlo. |
| |
Allora come impari JSL? Bene, puoi di nuovo... |
| |
puoi impararlo attraverso una serie di risorse JSL di JMP di cui dispongono. Hanno una guida allo scripting di 864 pagine, linkata qui, |
| |
che puoi cercare su Google, oppure potresti riuscire a ottenere queste diapositive una volta terminato questo, e riuscire a ottenere questi collegamenti. C'è un indice di scripting all'interno di JMP, a cui puoi semplicemente andare per aiutare e poi indicizzare gli script. 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 contattare JMP. Il suo nome è Ruth Hummel e ho detto, ehi, voglio farlo, da dove comincio? |
| |
Mi ha dato sostegno e incoraggiamento riguardo all’idea. Ha pensato che fosse fantastico e poi mi ha messo in contatto con un esperto di codice JSL, |
| |
il cui nome è Mark Bailey. E Mark è stato eccezionale durante l'intero processo. Mark mi ha aiutato con un supporto generale sul linguaggio di scripting, rivedendo il mio codice, aiutandomi a scriverne parti, |
| |
iniziare con una parte di esso. 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, nonché i dipendenti diretti disposti ad aiutarmi con il mio progetto |
| |
erano enormi. Insomma, non avrei potuto chiedere di meglio. Voglio dire, non ho mai ricevuto questo tipo di supporto mentre 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, lì puoi porre domande, puoi ottenere risposte, puoi prendere in prestito il codice, puoi ottenere la certificazione lì in |
| |
Linguaggio di scripting JMP. Puoi cercare nella Community tutto quello che vuoi, puoi... è proprio come Google, ma è solo per JMP. |
| |
E puoi cercare tutto quello che vuoi, quindi puoi digitare JSL e JSL qualunque cosa tu voglia fare, e probabilmente c'è qualcuno là fuori che ha già scritto un post a riguardo. Se non c'è, puoi aggiungerlo al forum di discussione. |
| |
E poi c'è il codice in prestito, e questa è una delle cose che Mark mi ha trasmesso è stata, ehi, codice in prestito. C'è molto codice 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 ci sarebbe voluto o di quanti progressi fossero già stati compiuti. |
| |
E quindi non volevo scrivere la mia barra di avanzamento in JMP, quindi ne ho semplicemente preso in prestito una che era nella scheda Community e l'ho aggiunta direttamente nel mio componente aggiuntivo, quindi sì. |
| |
Questa persona, Craige Hales, che fa parte dello staff in pensione di JMP, ha scritto questo codice e 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 davvero e ha reso il componente aggiuntivo molto migliore. |
| |
Quindi ora parliamo finalmente del componente aggiuntivo. Quindi ti ho parlato del motivo per cui è necessario questo componente aggiuntivo, giusto. Altri hanno sfruttato il pacchetto R e perché penso che gli utenti JMP ne trarranno beneficio e ti ho parlato di come l'ho fatto. |
| |
E ora voglio mostrarvi davvero come funziona, che si spera sia 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 il 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 per ora funziona con modelli di regressione lineare e logistica. L'altra cosa è che il componente aggiuntivo, |
| |
non ha molte delle fantasiose sorprese che hanno tutti gli altri moduli JMP integrati, lo 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 riuscito. Ci sono molte altre cose che non sono riuscito a risolvere e che spero di migliorare con questo pacchetto man mano che le persone lo usano e gli piacciono e mi danno feedback al riguardo. |
| |
Quindi manca qualche funzionalità. E la cosa interessante 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 bastano solo un paio di semplici clic sul pulsante, puoi prendere il tuo codice JSL e trasformarlo in un componente aggiuntivo che puoi condividere con l'intera comunità JMP. |
| |
E l'ho pubblicato sul sito web community.jmp.com affinché tutti possano uscire e accedere al componente aggiuntivo che sono quasi pronto a mostrarti |
| |
e per accedere anche al set di dati che utilizzerò. Ma funzionerà con qualsiasi set di dati in tuo possesso, non solo con il mio esempio. |
| |
Quindi ti fornirò un tutorial dal vivo molto veloce di questo componente aggiuntivo, chiamato... il componente aggiuntivo, l'ho chiamato semplicemente esplorare le interazioni e |
| |
tutto questo verrà fatto tramite l'algoritmo della soluzione fattibile di cui ho parlato prima. L'esempio è un modello lineare |
| |
dove correggerò due variabili, quindi quello sarebbe il mio modello base. Il mio modello di base avrà una variabile di risposta continua e due covarianti per le quali voglio essere in grado di adattarmi. |
| |
E poi, quello che vorrei fare è considerare le interazioni di secondo ordine da aggiungere a quel modello tra una qualsiasi delle 10 variabili che ho nel mio set di dati. |
| |
E mi piacerebbe fare cinque avviamenti casuali, e voglio assicurarmi che il mio criterio, e questo attualmente è l'unico criterio integrato nel |
| |
Il componente aggiuntivo JMP è che vogliamo ridurre al minimo il valore P dell'interazione. Quindi controlliamo ciascuna di queste interazioni |
| |
produrre un valore P e quello che voglio fare è che le mie soluzioni siano quelle che lo hanno |
| |
valori P molto piccoli. Quindi cercherà nello spazio, in base al valore P dell'interazione e andrà a quelli che hanno quello migliore. Quindi i nostri risultati avranno molte interazioni con valori P piccoli. E |
| |
di solito quello che ti consiglierò dopo aver eseguito questo tipo di procedura, l'algoritmo della soluzione fattibile, |
| |
puoi proseguire tracciando i dati, osservando quelle interazioni nel tuo modello e pensando criticamente ad esse in senso contestuale, perché alla fine, stiamo esplorando i dati qui. |
| |
Ciò non è in alcun modo inferenziale. Stiamo semplicemente usando il segnale dei dati per indirizzare quali interazioni possono esistere in questi dati. |
| |
E ancora, i dati e il componente aggiuntivo vengono pubblicati sul sito della Community. |
| |
Va bene, quindi mi fermerò, uscirò da questa situazione molto velocemente e tirerò su il |
| |
Set di dati JMP che ho. Spero che voi ragazzi possiate vederlo. |
| |
E come puoi vedere, solo una rapida panoramica, in realtà è tutto un mucchio di dati casuali che ho generato. Non c'è alcuna vera struttura in tutto questo. Ci sono...questi non sono dati reali, ma 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 classificato la variabile di risposta come maggiore di zero o minore di zero. |
| |
Quindi, se vuoi essere in grado di guardare...guarda i risultati della regressione logistica, potresti fare un esempio di regressione logistica anche con i dati. |
| |
Quindi, una volta ottenuto il componente aggiuntivo, vai al sito Web, scarichi il componente aggiuntivo, fai semplicemente doppio clic su di esso e si installerà direttamente su JMP. È davvero facile. |
| |
E poi puoi semplicemente andare qui, quindi vai al componente aggiuntivo, vai... una volta aperto il set di dati, vai al 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 faresti con qualsiasi altro modulo in JMP. |
| |
E quindi sceglierò la mia variabile di risposta, che sarà Y, e poi correggerò, quindi è qui che costruirò il mio modello 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 ce ne sono due tipi in my |
| |
componente aggiuntivo tra cui puoi scegliere. Uno è il tipo di modellazione dei minimi quadrati standard e l'altro è quello della regressione logistica. |
| |
E questo non sceglierà automaticamente, come ho detto prima, in base a ciò che hai inserito qui, quindi puoi inserire totalmente una variabile di risposta categoriale e non cambierà. Devi cambiarlo tu stesso. Questo è uno di quei fantasiosi campanelli e fischietti, spero di arrivarci più tardi. |
| |
Sbarazzati di quello. Rimetti questo qui. |
| |
Va bene, quindi questa è la nostra configurazione, e quindi si adatterà al modello y è uguale a beta zero più beta uno X uno più beta due X due. E ora qui è dove inserirò le variabili che desidero |
| |
...oppure voglio cercare le interazioni tra di loro, quindi selezionerò tutti gli elementi da X1 a X10. Li aggiungerò. |
| |
E poi dico okay, quante volte voglio eseguire l'algoritmo? Quindi qui lo farò cinque volte, per motivi di tempo, |
| |
e l'ordine delle interazioni da considerare, quindi ne farò solo due. |
| |
Raccomando di restare 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 arrivare così in alto se lo 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ò OK. Ci vorrà un secondo. |
| |
Così puoi vedere il codice che ho preso in prestito. |
| |
Puoi vedere che è arrivato qui e mi dice che ho finito al 20%, al 40%. |
| |
Quindi queste sono soluzioni. Quindi ogni volta che il controllo va avanti, viene trovata una soluzione fattibile, e quello che salta fuori alla fine è una tabella di dati, quindi |
| |
sai, ancora una volta, questa non è una di quelle funzionalità... mi piacerebbe che ci fosse una casella di selezione, dove puoi selezionare l'interazione e poi premere |
| |
create model e farebbe tutto questo per te, proprio come fa già JMP per molte cose diverse, ma non ci sono ancora arrivato. Questo ti dice solo quali erano le soluzioni. |
| |
Quindi ti dà una sorta di riepilogo di ciò che ha fatto. Quindi ha fatto cinque avviamenti casuali. Ti dice qual era la variabile di risposta, le variabili fisse, |
| |
le variabili di interazione che ha trovato, ok, e R al quadrato, R al quadrato aggiustato per quel modello, l'errore medio quadrato e quindi il valore P dell'interazione. Ok, quindi quello che possiamo vedere qui è quello |
| |
(se clicco su questo mi verrà mostrato) ci sono solo due soluzioni, quindi c'è...X2 X3 era un'interazione e X10 X7 era un'altra. |
| |
E quindi ora, quello che posso fare, non lo farò ora, è costruire questo modello e riprodurre questi risultati ed esaminare i risultati per vedere, okay, è una buona statistica |
| |
algoritmo...o una buona interazione statistica che ho trovato qui? Sai, come sono i miei grafici sulla leva finanziaria? Quali sono tutti i miei criteri diversi? |
| |
le trame assomigliano? E come sono i miei grafici diagnostici? Quel genere di cose. E poi posso iniziare a porre domande, ad esempio se questa interazione ha senso in termini di stime dei parametri e quant'altro? |
| |
È esplorativo, quindi ti fornirà potenziali soluzioni, ma devi seguirle con la due diligence e pensare realmente ai risultati che hai ottenuto |
| |
e porre domande a coloro che sono esperti 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 ha senso che questo effetto, |
| |
sai, non sarebbe coerente per età, sesso o altro. E di solito ce ne parlano, sai, pensaci. L'idea generale è che si spera che ciò influenzi gli studi futuri, in cui possiamo potenziare gli studi per cercare questi effetti di interazione in un modo più |
| |
modo ben alimentato. |
| |
Va bene, quindi torno ora al mio PowerPoint. Quindi questo era questo tutorial. Puoi vedere che è abbastanza facile da usare. Questo era un esempio davvero piccolo. Puoi accelerarlo, |
| |
sappi solo che più grandi sono i set di dati che hai, più tempo richiederà l'intero processo che ho appena fatto. Non durerà 10 secondi; esso sarà, |
| |
sai, potenzialmente, sai, dura 5-10 minuti, a seconda di quanto era grande il tuo set di dati. Ho fatto...usato l'algoritmo, usato il componente aggiuntivo per creare set di dati con 100 variabili, |
| |
variabili esplicative, e ci è voluto circa quel tempo, circa sette minuti, per eseguirlo e fare circa cinque o dieci avviamenti casuali. |
| |
Le cose sono più veloci nel pacchetto R che nel componente aggiuntivo JMP, ma questo perché, sapete, ancora una volta, questo è il mio primo tentativo e, si spera, attraverso le iterazioni che diventerà ancora più veloce e migliore. |
| |
Parliamo quindi di miglioramenti futuri. Quindi voglio consentire agli utenti di essere in grado di ottimizzare o di |
| |
trovare soluzioni fattibili basate su qualsiasi criterio desiderino. Quindi, se vogliono trovare soluzioni fattibili basate sull'ottimizzazione di R quadrato o sull'ottimizzazione dell'AIC o sull'ottimizzazione del tasso di classificazione errata, |
| |
sai, nei modelli di regressione logistica, voglio consentire loro di poterlo fare. E non è poi così difficile da fare, devo solo entrare e farlo. |
| |
Salva o seleziona automaticamente le personalità di modella in base a selezioni variabili. È semplicemente semplice. Hai inserito a |
| |
variabile logistica binaria, sai, selezionerà automaticamente la regressione logistica per te. Non penso che sia molto difficile, probabilmente potrei farlo abbastanza velocemente. Mi sento fiducioso nel farlo dopo aver attraversato questo processo di spostamento del mio pacchetto R. |
| |
Voglio migliorare un po' la velocità. Ci sono molte cose che potrei fare per velocizzare tutto questo. |
| |
Quindi, mi piacerebbe essere in grado di farlo. Un pulsante di richiamo sarebbe carino. Non ce l'ho adesso. Una delle mie funzionalità preferite di JMP è la possibilità di fare clic sul pulsante di richiamo. |
| |
E poi mi piacerebbe essere in grado di semplificare il passaggio dai risultati ottenuti dalla FSA alla costruzione di un modello. COSÌ |
| |
puoi già farlo, come quando esegui la selezione in avanti in JMP o Lasso o una qualsiasi di queste cose, puoi semplicemente fare clic su Crea modello e tutte le variabili vengono trasferite molto facilmente. |
| |
Mi piacerebbe poterlo fare con questo algoritmo di soluzione fattibile, basta ottenere questo tipo di risultati e fare clic sul modello make e automaticamente farà tutto per te |
| |
in modo che tu possa esplorarli e, ancora una volta, si spera, dare un senso a quelle interazioni che hai trovato. |
| |
Quindi alcuni riconoscimenti che vorrei passare. Quindi il primo è Mark Bailey. Non avrei potuto farlo senza di te. Grazie mille per il vostro supporto con il codice JSL. Grazie a Ruth |
| |
solo per avermi messo in contatto con Mark, oltre ad essere un generale, sai, |
| |
persona di supporto per questo progetto e fornendo solo un buon feedback. Anne e Larry, apprezzo davvero |
| |
il tuo aiuto per tutto ciò che aveva a che fare con JMP e con le nostre relazioni passate e per avermi incoraggiato a organizzare questo Discovery Summit. È stato davvero fantastico e sono entusiasta di incontrare più persone nella comunità JMP |
| |
attraverso di esso, quindi grazie per questo. Puoi metterti in contatto con me in diversi modi. Puoi mandarmi un'email alla mia email universitaria, puoi contattarmi su Twitter se è questo il modo in cui ti piace fare le cose. |
| |
E ho anche intenzione di pubblicare questo componente aggiuntivo JMP su github, nonché sul sito Web della community, quindi non esitate a controllare uno di questi posti per futuri aggiornamenti del componente aggiuntivo. |
| |
Quindi sì, grazie per avermi ospitato e sono entusiasta di rispondere alle tue domande durante il tempo a nostra disposizione, grazie. |