Altoparlante
|
Trascrizione
|
| Joshua W Lambert |
Ciao. |
| ROBYN GODFREY |
ciao sono Robin me josh. |
| |
Sì. |
| ROBYN GODFREY |
Il neo. |
| Joshua W Lambert |
sì piacere di conoscerti anche io scusami sto solo aprendo il PowerPoint qui. |
| ROBYN GODFREY |
Va bene. |
| |
Hai dei co-presentatori. |
| Joshua W Lambert |
No. |
| ROBYN GODFREY |
Va bene, scendo solo in fondo alla lista qui, quindi stiamo registrando questo così solo così mi dia verbalmente un'affermazione verbale che sai che stai per essere registrato. |
| |
Sì. |
| ROBYN GODFREY |
telefoni cellulari Le notifiche Internet sono silenziate. |
| Joshua W Lambert |
Sì. |
| ROBYN GODFREY |
sì, penso di essere come la barra delle applicazioni di Windows e tutto il resto e sicuramente è come se la tua email si spegnesse nel mezzo. |
| Joshua W Lambert |
E non penso di aver spento tutto, non hanno mai dovuto farlo prima, quindi. |
| ROBYN GODFREY |
Penso che sia nella barra delle applicazioni um. |
| |
vediamo qui. |
| |
Chiudi la tua email e roba che andrà bene. |
| |
Va bene. |
| Joshua W Lambert |
preso i tacos. |
| ROBYN GODFREY |
Ok, fantastico, mi nasconderò qui. |
| |
Per farlo, ogni volta che lo faccio, devo, devo piacere Okay, cosa ho fatto. |
| Joshua W Lambert |
Allora. |
| |
Per quanto riguarda la presentazione, immagino che voi ragazzi taglierete da quando comincio. |
| |
sì e quello che hai domande che hai intenzione di chiedere o. |
| ROBYN GODFREY |
No, no, quindi farai la tua presentazione come faresti normalmente. |
| |
giusto e solo tu sai che fai apparire le tue diapositive e tutto il resto. |
| |
Se vuoi prima parlare e poi tirare fuori le tue diapositive, va bene se hai bisogno di ricominciare da capo o qualcosa del genere fammi sapere e possiamo farlo, non è un grosso problema. |
| |
Ok, sei un piccolo clip come se fossi la telecamera, c'è un modo per fare un backup solo un po' perché sei molto vicino. |
| |
Non riesco nemmeno a vedere tutta la tua faccia, posso vedere come. |
| Joshua W Lambert |
sapere che ho dimenticato. |
| ROBYN GODFREY |
si solo un po'. |
| |
O forse abbassala un po' la tua fotocamera. |
| |
va bene. |
| |
va bene sì, possiamo vedere più delle tue spalle e cose a posto. |
| |
Quindi rimarrò muto e quindi dammi solo un paio di secondi, e poi puoi. |
| |
inizia quando sei pronto va bene. |
| |
Grande. |
| Joshua W Lambert |
Ciao a tutti. Mi chiamo Josh Lambert. Sono un assistente professore all'Università di Cincinnati e sono un utente JMP da circa 10 anni. |
| |
E sono entusiasta di condividere con voi alcuni lavori che ho svolto sull'esplorazione delle 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 come ho implementato la soluzione in un pacchetto R e poi spostato su un add-in JMP e il processo che ho seguito per farlo. E poi parlerò di alcuni impegni futuri e di alcune cose che ho imparato lungo la strada. |
| |
Quindi motiviamo la nostra discussione di oggi con un piccolo esempio. Lo chiamerò Tom il Data Scientist. Quindi incontra Tom. È un data scientist e Tom svolge molte attività tipiche di data science, 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 entrare direttamente nell'apprendimento automatico. |
| |
Quindi vorrebbe avere un modo per esplorare gli effetti di interazione nei suoi modelli di regressione. |
| |
ha interazioni che vorrebbe testare, ma dovrebbe crearle manualmente nella piattaforma del modello di adattamento in JMP. |
| |
E sai, dover eseguire tutte queste operazioni richiederà molto tempo. Quindi, per esempio, se Tom ha 200 variabili nel suo set di dati e ha bisogno di cercare tutte le interazioni bidirezionali, sono 19.900 interazioni bidirezionali da controllare. Sono un po' 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 crearli tutti a mano e la necessità di verificare tutte queste possibili combinazioni? |
| |
Quindi esaminiamo questo problema in modo un po' più rigoroso dal punto di vista matematico e statistico. Quindi quello che abbiamo nel 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 complessità di questi dati sta crescendo. |
| |
Il problema con le interazioni è che ce ne sono troppe da controllare. |
| |
Di solito, un data scientist, uno statistico, uno scienziato dovrà entrare nell'analisi con un insieme noto di interazioni da controllare |
| |
e poi procedere alla loro verifica. Questo è un problema per diversi motivi... per diversi motivi, |
| |
che significa che potresti non avere una buona idea di quali interazioni potrebbero o non potrebbero esistere e ti piacerebbe essere in grado di esplorarle nei tuoi dati |
| |
senza dover andare a modelli, come la foresta casuale o anche l'analisi dei componenti principali per fare una sorta di riduzione dei dati, facendo un po' più di complessità lì. Ti piacerebbe davvero essere in grado di fare le cose lungo la strada mentre costruisci un modello di regressione. |
| |
Quindi l'altro problema con la foresta casuale e i componenti principali, così come 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 siamo esplorare le interazioni |
| |
Quindi in genere il nostro flusso di lavoro in regressione |
| |
quindi lo statistico passa molto tempo a costruire un modello base parsimonioso, quello che chiamerò, con le variabili necessarie e senza effetti di interazione aggiunti. |
| |
Questo modello di base, lo statistico trascorrerà molto... molto tempo su questo modello di base, molte risorse, si prenderà cura, passerà del tempo a pensare se sono interpretabili o meno e se avranno un buon 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 che in genere non lo è vero. |
| |
Questa mancanza di complessità |
| |
impedisce davvero alle persone di essere in grado di usarlo, rispetto ad un modello di apprendimento automatico, che fa un ottimo lavoro nel modellare questa complessità. Quindi il problema può davvero essere riassunto nel modo seguente. |
| |
C'è un modo in cui non possiamo essere fino ai tradizionali modelli di regressione multivariabile e non fino ai modelli di apprendimento automatico, |
| |
ma trova un bel punto debole nel mezzo, dove siamo in grado di prendere la bella interpretabilità dei nostri modelli di regressione che si aggiungono in una o due interazioni |
| |
che abbiamo trovato in questi big data, in modo da poter aggiungere sfumature interessanti ai nostri modelli e complessità, che, ancora una volta, aggiungono prestazioni predittive e un buon senso contestuale. |
| |
Quindi, se c'è un modo per farlo, ciò che vorremmo davvero fare è sviluppare uno strumento per statistici, scienziati dei dati e investigatori per essere in grado di esplorare le interazioni dopo aver costruito un modello di base. |
| |
il modello di 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 di modelli statistici tradizionali di regressione logistica lineare, |
| |
vorremmo che rimanessero interpretabili. Vogliamo controllare meno modelli, se possibile, e preferiremmo fattibile su ottimale. Approfondirò un po' più avanti cosa significa, ma in sostanza, ciò che significa davvero è che |
| |
vorremmo che ci fosse una pletora di soluzioni piuttosto che una sola che siano buone e che chiameremo fattibili. |
| |
E vorremmo anche che fosse flessibile. Potrebbe essere adattato per poter lavorare con regressione lineare, regressione logistica, regressione proporzionale di Cox. Potremmo usarlo per la regressione di Poisson, qualsiasi tipo di regressione, questo framework o strumento potrebbe essere utilizzato per. |
| |
E di nuovo 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 in futuro passeremo il nostro tempo a fare. |
| |
Quindi parliamo ora di questa potenziale soluzione, l'algoritmo della soluzione fattibile. |
| |
L'algoritmo... l'algoritmo della soluzione fattibile a volte chiamato FSA, o è così che mi piace chiamarlo, |
| |
è stato discusso per la prima volta in questo documento ... davvero discusso per la prima volta in dettaglio in questo documento che ho scritto nel 2018. |
| |
e |
| |
Ho intenzione di riassumere ciò che fa l'algoritmo qui. |
| |
Quindi l'obiettivo dell'algoritmo è identificare le interazioni di ordine m (quindi sarebbe se m fosse 2, sarebbe un'interazione a due vie; se m fosse 3, sarebbe un'interazione a tre vie), |
| |
con un criterio fattibile, quindi questo è un criterio che non è necessariamente il miglior criterio, ma è un |
| |
criterio che è |
| |
forse considerato semi-ottimale in qualche modo. |
| |
Quindi, per fare ciò, seguiremmo 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 a due vie, 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 casualmente. |
| |
Abbiamo cinque variabili, quindi questo è solo un piccolo esempio, solo per motivare i passaggi qui, ma diciamo che abbiamo cinque variabili e iniziamo casualmente da X3, X5 e i nostri criteri, che è R al quadrato per quel punto di partenza casuale , è 0,5. |
| |
E diciamo che il modo in cui funziona l'algoritmo è considerare lo scambio di una delle variabili, X3 o X5, con una qualsiasi delle altre. Quindi le nostre scelte, allora, sono |
| |
X3 X1, X3 X2, X3 X4, X5 X1, X5 X2 e X5 X4. Quindi nota che di tutti i possibili, quelli che chiamerò, gli swap hanno almeno una delle variabili del luogo di partenza, ok? |
| |
E poi, quello che faremo è di tutti questi, adatteremo quei modelli e scopriremo quali sono i criteri per quei modelli. Quindi quello che possiamo vedere qui è che |
| |
per il modello X3 X5, abbiamo 0,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, un R al quadrato più alto, così troveremo tra tutte le possibili scelte, qual è il posto migliore dove andare . |
| |
In questo esempio, il posto migliore dove andare è scambiare il numero tre, che è X3 X4. Quindi quello che faremmo è passare al passaggio tre e faremmo il miglior scambio dal passaggio numero due. |
| |
In tal caso, ci sposteremmo a posizionare X3, X4 e poi torneremo al numero due e ripeteremo fino a quando non sarà possibile apportare miglioramenti. |
| |
Quindi ripetiamo questo processo, spostandoci in un posto, iniziando da lì, considerando tutti gli scambi, fino a quando alla fine non possiamo apportare miglioramenti. |
| |
E lo chiameremo in... quel posto in cui finiremo per essere 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 è garantito per darti la soluzione ottimale, sebbene possa darti la soluzione ottimale, alcune volte. |
| |
Quindi parliamo di alcuni dei sottoprodotti 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, dove descrive che le soluzioni fattibili non sono garantite, come ho appena detto prima, per essere ottimali per un criterio scelto. |
| |
E questo vuol dire che tutte le soluzioni ottime sono fattibili, ma non tutte le soluzioni possibili sono ottime. 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 ad essere abbastanza buoni. Potrebbero non essere all'altezza del 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 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 tue possibilità di ottenere quelli ottimali, oltre a quelli fattibili, e assicurati di aver |
| |
perquisito adeguatamente lo spazio. E abbiamo un altro documento che descrive che (se qualcuno è interessato, puoi contattarmi) su quanti tipi casuali dovrei fare per assicurarmi di avere una ragionevole probabilità di ottenere quello ottimale. Noi abbiamo un |
| |
documento 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 finisci per ottenere alcune volte è che, anche se |
| |
un'interazione non è quella ottimale, a volte può portare... i dati spesso possono guidarla |
| |
attraverso l'algoritmo di soluzione fattibile ... fattibile spesso può portarti in quel luogo più spesso di quello ottimale, e questo ha solo a che fare con il modo in cui i dati sono correlati e quant'altro. |
| |
Quindi parliamo del pacchetto R e poi 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 abbastanza ampiamente e altre no. e |
| |
Quindi R è un linguaggio di programmazione davvero carino ed è spesso insegnato nei programmi di statistica, quindi è stato il primo posto in cui sono andato immediatamente quando stavo lavorando alla mia tesi |
| |
per, sai, scrivere questo algoritmo e fornire davvero uno strumento alla comunità per poter identificare ed esplorare le interazioni nei propri set di dati. |
| |
E così il pacchetto rFSA implementa questo algoritmo di soluzione fattibile di cui ho appena parlato |
| |
per le interazioni in grandi insiemi di dati e questo pacchetto supporta l'ottimizzazione di molti criteri diversi come R al quadrato, R al 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 per altri tipi di modellazione, cose come i modelli di rischio proporzionale di Cox. |
| |
E fornisce anche più soluzioni poiché ripete l'algoritmo tutte le volte che specifichi. |
| |
Allora perché... Voglio parlare un po' della mia motivazione a spostare 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 di scrittura nel linguaggio di scripting JMP, che è la versione di JMP di |
| |
linguaggio di programmazione statistica, quindi volevo impararlo e ho pensato che sarebbe stato divertente spostare questo pacchetto R su cui ho trascorso la maggior parte dei 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 |
| |
condotto di analisi. Di solito inizio tutti i miei progetti in JMP ed esploro i dati, li tracciamo, guardo le cose e poi questo mi dà molte buone intuizioni su quei dati. E ho scoperto che molto del 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 dargliela? Se lo merita sicuramente, quindi ho deciso che sarebbe stato un buon strumento e che, si spera, altre persone lo avrebbero fatto |
| |
trarne un po' di utilità. E questo mi porta al mio altro punto sul perché farlo, e ho ricevuto molti ottimi feedback su rFSA. |
| |
In particolare, ho monitorato quante persone hanno scaricato il mio pacchetto R e ci sono oltre 16.000 persone che lo hanno scaricato da quando l'abbiamo pubblicato nel 2019. |
| |
Ho ricevuto innumerevoli e-mail da persone di tutto il mondo e voglio che la stessa cosa sia accessibile per le persone in JMP e spero che attraverso questo componente aggiuntivo le persone siano in grado di trovare interazioni davvero interessanti che cambino il modo in cui interpretano dati e come li capiscono. |
| |
E poi potresti chiedere, beh, quando l'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 passi un po' di tempo in più a farlo. |
| |
Ma fortunatamente, una cosa che ho costruito nella mia posizione è un po' di 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 è stato prendere il mio Fun Friday Free Time e spenderlo per creare un componente aggiuntivo JMP. |
| |
Potresti chiedere, beh, come avrei fatto? Sai, non conoscevo il linguaggio di scripting JMP. Come avrei fatto a farlo? Così |
| |
la prima cosa è che, sai, stavo per impararlo. Quindi ci sono un sacco di ottime risorse là fuori su come imparare JSL. |
| |
Quindi c'è il supporto per il codice JMP JSL che si trova all'interno del software JMP stesso. Vai ad aiutare, puoi proprio... 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'è la community.jmp.com, |
| |
che è davvero ottimo 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... che le persone possano divertirsi. E l'ho fatto un certo numero di volte qui, ed è stato davvero fantastico. |
| |
Quindi esaminerò ognuno di questi un po' più in profondità, solo così se sei interessato a spostare un pacchetto R o scrivere il tuo algoritmo o scrivere il tuo codice JSL, |
| |
avrai un'idea di dove iniziare. E poi, quando avrò finito con questo, andrò nel mio componente aggiuntivo e in particolare cosa fa e come usarlo. |
| |
Quindi come si impara JSL? Bene, puoi di nuovo... |
| |
puoi impararlo attraverso una serie di risorse JSL di JMP che hanno. Quindi hanno una guida allo scripting di 864 pagine, che è collegata qui, |
| |
che puoi Google o potresti essere in grado di ottenere queste diapositive dopo che è finito ed essere in grado di ottenere questi collegamenti. C'è un indice di scripting all'interno di JMP, che puoi semplicemente andare in aiuto e quindi indicizzare gli script. Ho messo qui per voi ragazzi, davvero facile da usare e iniziare. |
| |
Puoi contattare JMP. Quindi, per prima cosa, ho avuto un contatto con 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 straordinario durante l'intero processo. Mark mi ha aiutato solo con un supporto generale sul linguaggio di scripting, rivedendo il mio codice, aiutandomi a scriverne parti, |
| |
iniziare su 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, per quanto riguarda i dipendenti diretti che erano disposti ad aiutarmi con il mio progetto |
| |
erano tremendi. Voglio dire, non avrei potuto chiedere di meglio. Voglio dire, non ho mai ricevuto questo tipo di supporto quando stavo cercando di creare qualcosa per qualsiasi altra piattaforma prima. Quindi complimenti a JMP per |
| |
fornendo questo, e sono la ragione principale per cui esiste; è perché hanno fornito risorse fantastiche. |
| |
Quindi community.jmp.com, puoi fare domande lì, 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 un Google, ma è solo per JMP. |
| |
E puoi cercare tutto quello che vuoi, quindi puoi digitare JSL e JSL qualunque cosa tu voglia fare, ed è probabilmente qualcuno là fuori che ha già pubblicato un post a riguardo. In caso contrario, puoi aggiungerlo al forum di discussione. |
| |
E poi c'è il codice in prestito, e questa è una delle cose che Mark mi ha passato è stata, ehi, codice in prestito. 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 quanto tempo ci sarebbe voluto o quanti progressi erano già stati fatti. |
| |
E quindi non volevo scrivere la mia barra di avanzamento in JMP, quindi ne ho preso in prestito una che era nella Community Board e l'ho aggiunta direttamente al mio componente aggiuntivo, quindi sì. |
| |
Questa persona, Craige Hales, che è uno 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 molto 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 utilizzato il pacchetto R e perché penso che gli utenti di JMP ne trarranno beneficio e ti ho parlato di come l'ho fatto. |
| |
E ora voglio mostrarti come funziona, che spero sia la parte più divertente di tutta questa faccenda. Quindi ho spostato l'intero pacchetto, il pacchetto R, su JMP in pochi mesi durante il mio Fun Friday Free Time che ho, quindi sono solo poche ore 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 in questo momento funziona per modelli di regressione lineare e logistica. L'altra cosa è che il componente aggiuntivo, |
| |
non ha molti fantasiosi campanelli e fischietti che hanno tutti gli altri moduli JMP incorporati, lo sai. Ad esempio, quando inserisci una variabile categoriale nella variabile di risposta, il tipo di personalità non passa automaticamente alla regressione logistica. |
| |
Non sono arrivato a questo. Ci sono un sacco di altre cose che non ho capito e che spero di migliorare con questo pacchetto poiché le persone lo usano e mi piacciono e mi danno feedback su di esso. |
| |
Quindi mancano alcune funzionalità. E la cosa bella del gestore add-in è che puoi semplicemente prendere il tuo codice JSL e c'è un add-in... un gestore add-in, add-in JMP, |
| |
che ti consente di creare il tuo componente aggiuntivo dal tuo codice JSL, quindi è davvero solo un semplice paio di clic del pulsante, puoi prendere il tuo codice JSL e trasformarlo in un componente aggiuntivo che puoi condividere con l'intera comunità JMP. |
| |
E ho pubblicato questo sul sito web community.jmp.com affinché tutti possano uscire e accedere a quel componente aggiuntivo che sto per mostrarti |
| |
e per accedere al set di dati che utilizzerò anch'io. Ma funzionerà con qualsiasi set di dati che hai, non solo con il mio esempio. |
| |
Quindi ti darò un tutorial dal vivo molto veloce di questo componente aggiuntivo, chiamato... il componente aggiuntivo, l'ho appena chiamato esplorare le interazioni e |
| |
tutto questo verrà fatto tramite l'algoritmo di 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 base avrà una variabile di risposta continua e due covarianti per cui voglio essere in grado di adeguarmi. |
| |
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 vorrei fare cinque partenze casuali, e voglio assicurarmi che il mio criterio, e questo attualmente è l'unico criterio incorporato nel |
| |
JMP add-in, è che vogliamo ridurre al minimo il valore P dell'interazione. Quindi ognuna di queste interazioni che controlliamo |
| |
produrre un valore P e quello che voglio fare è che le mie soluzioni siano quelle che hanno |
| |
valori di P molto piccoli. Quindi cercherà nello spazio, in base a qual è il valore P dell'interazione e andrà a quelli che hanno il migliore. Quindi i nostri risultati avranno molte interazioni con piccoli valori di P. e |
| |
di solito quello che ti consiglierò dopo aver eseguito questo tipo di procedura, l'algoritmo della soluzione fattibile, |
| |
lo segui con il tracciamento dei dati, guardando quelle interazioni nel tuo modello e pensando in modo critico su di esse in senso contestuale, perché alla fine della giornata, stiamo esplorando i dati qui. |
| |
Questo non è in alcun modo inferenziale. Stiamo solo usando il segnale dei dati per indicare quali interazioni possono esistere in questi dati. |
| |
E ancora, i dati e il componente aggiuntivo sono pubblicati sul sito Web 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 possiate vederlo. |
| |
E come puoi vedere, solo una rapida panoramica, questo è in realtà tutto un mucchio di dati casuali che ho generato. Non c'è una 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, scarica il componente aggiuntivo, fai doppio clic su di esso e si installa 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 sto costruendo 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 ci sono due tipi in my |
| |
componente aggiuntivo tra cui scegliere. Uno è il tipo di modellazione dei minimi quadrati standard e uno è quello di 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 categorica e non cambierà. Devi cambiarlo da solo. Questo è uno di quei fantasiosi campanelli e fischietti, spero di arrivarci più tardi. |
| |
Sbarazzati di quello. Rimetti questo qui dentro. |
| |
Bene, 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 quaggiù è dove inserirò le variabili che sono disposto a fare |
| |
...oppure, voglio cercare interazioni tra, quindi selezionerò tutto da X1 a X10. Ho intenzione di aggiungere quelli sopra. |
| |
E poi dico bene, quante volte voglio eseguire l'algoritmo? Quindi qui ho intenzione di fare cinque volte, per motivi di tempo, |
| |
e l'ordine in cui considerare le interazioni, quindi ne farò solo due. |
| |
Consiglio di rimanere 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 lo volessi. In realtà non ho messo un limite, ma sappi che più in alto vai qui, più tempo ci vorrà per eseguirlo. |
| |
Quindi premo 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 il 20%, il 40%. |
| |
Quindi queste sono soluzioni. Quindi ogni volta che il controllo va avanti, viene trovata una soluzione fattibile, e poi quello 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 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 riassunto di ciò che 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 R al quadrato, l'R al quadrato corretto per quel modello, l'errore quadratico medio della radice e quindi il valore P di interazione. Ok, quindi quello che possiamo vedere qui è che |
| |
(se clicco su questo mi mostrerà) 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, è andare a costruire questo modello e riprodurre questi risultati e guardare nei risultati per vedere, ok, è una buona statistica |
| |
algoritmo... o buona interazione statistica che ho trovato qui? Sai, come sono le mie trame della leva finanziaria? Quali sono tutti i miei diversi criteri? |
| |
le trame assomigliano? E come sono i miei grafici diagnostici? Quel tipo di cose. E poi posso iniziare a fare domande, come ha senso questa interazione in termini di stime dei parametri e quant'altro? |
| |
È esplorativo, quindi ti darà una potenziale soluzione, ma devi seguirla con la dovuta diligenza e pensare effettivamente ai risultati che hai ottenuto |
| |
e fai 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 sulla salute, produciamo interazioni, quindi 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 ci parlano di questo, sai, pensaci. L'idea è che questo influenzerà gli studi futuri, dove possiamo potenziare gli studi per cercare questi effetti di interazione in un modo più |
| |
modo ben potenziato. |
| |
Va bene, quindi ora torno al mio PowerPoint. Quindi questo era questo tutorial. Puoi vedere che è abbastanza facile da usare. Quello era davvero un piccolo esempio. Puoi aumentare questo, |
| |
sappi, sai, più grandi set di dati hai, più lungo sarà l'intero processo che ho appena fatto. Non durerà 10 secondi; esso sarà, |
| |
sai, potenzialmente, sai, 5-10 minuti, a seconda di quanto fosse grande il tuo set di dati. Ho fatto... ho usato l'algoritmo, ho usato il componente aggiuntivo per fare set di dati con 100 variabili, |
| |
variabili esplicative, e ci sono voluti circa quella quantità di tempo, circa sette minuti, per eseguirlo per fare circa cinque o 10 avviamenti casuali. |
| |
Le cose sono più veloci nel pacchetto R di quanto non lo siano nell'add-in JMP, ma questo perché, ancora una volta, questo è il mio primo tentativo e, si spera, attraverso iterazioni che diventeranno ancora più veloci e migliori. |
| |
Quindi parliamo di miglioramenti futuri. Quindi voglio consentire agli utenti di essere in grado di ottimizzare o di |
| |
trovare soluzioni fattibili basate su qualsiasi, sai, criterio che desiderano. Quindi, se vogliono trovare soluzioni fattibili basate sull'ottimizzazione di R al quadrato o sull'ottimizzazione dell'AIC o sull'ottimizzazione del tasso di classificazione errata, |
| |
sai, nei modelli di regressione logistica, voglio permettere loro di farlo. E non è poi così difficile da fare, ho solo bisogno di entrare e farlo. |
| |
Salva o seleziona automaticamente le personalità di modellazione in base a selezioni variabili. È semplice. Hai messo in un |
| |
variabile logistica binaria, lo sai, selezionerà automaticamente la regressione logistica per te. Non penso che sia probabilmente super difficile, probabilmente potrei farlo abbastanza velocemente. Mi sento sicuro di 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 migliorare la velocità. |
| |
Quindi, mi piacerebbe essere in grado di farlo. Un pulsante di richiamo sarebbe carino. Non ce l'ho adesso. Questa è una delle mie funzioni preferite in JMP è la possibilità di fare clic su quel pulsante di richiamo. |
| |
E poi mi piacerebbe essere in grado di semplificare il passaggio dai risultati ottenuti dalla FSA alla creazione di un modello. Così |
| |
puoi già farlo, come quando fai la selezione in avanti in JMP o Lasso o una qualsiasi di queste cose, puoi semplicemente fare clic su crea modello e porta tutte le variabili in modo super facile. |
| |
Mi piacerebbe essere in grado di farlo con questo algoritmo di soluzione fattibile, basta ottenere quei tipi di risultati e fare clic sul modello di creazione e fa automaticamente tutto per te |
| |
in modo che tu possa esplorarli e, di nuovo, si spera, dare un buon senso a quelle interazioni che hai trovato. |
| |
Quindi alcuni riconoscimenti che mi piacerebbe passare. Quindi il primo è Mark Bailey. Non ce l'avrei fatta senza di te. Grazie mille per il tuo supporto con il codice JSL. Grazie a Ruth |
| |
solo per avermi messo in contatto con Mark, oltre ad essere solo un generale, sai, |
| |
persona di supporto per questo progetto e fornendo solo un buon feedback. Anne e Larry, apprezzo solo |
| |
il tuo aiuto per tutto ciò che ha 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 entusiasta di incontrare più persone nella comunità JMP |
| |
attraverso di essa, quindi grazie per questo. Puoi metterti in contatto con me in diversi modi. Puoi inviarmi un'e-mail all'indirizzo e-mail della mia università, puoi contattarmi su Twitter se è così che ti piace fare le cose. |
| |
E sto anche pianificando di pubblicare questo componente aggiuntivo JMP su github, così come il sito Web della community, quindi non esitare 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. |