Io e Jed siamo qui. Parleremo delle sospensioni per mountain bike e di alcuni degli strumenti interessanti che abbiamo trovato in JMP e che ci hanno aiutato a capire come le sospensioni e alcune delle recensioni che leggiamo su Internet siano correlate tra loro. Questo intervento è nato dal Discovery Summit dell'anno scorso. Io e Jed ci siamo incontrati e volevo davvero sapere: "Ok, cos'è Functional Data Explorer? Come posso usare Functional Data Explorer? E in che modo può essermi utile?". Jed, conoscendomi un po', ha iniziato a parlare di mountain bike. Per me è stato facile convincerlo. Mi ha entusiasmato. Questo ha portato a quella che poi è diventata questa presentazione.
Solo una piccola premessa su di noi e su questa presentazione. Non siamo affiliati ad aziende produttrici di biciclette. Non siamo in alcun modo esperti del settore. Abbiamo preso alcune recensioni da Bike Radar e analizzato il modo in cui recensiscono le bici. Poi abbiamo estratto alcune curve di sospensione dal software Linkage, disponibile online.
Non userei questa presentazione per decidere quale bici acquistare. Non è questo il nostro intento. Il nostro intento è mostrare alcuni degli strumenti davvero interessanti e potenti offerti da JMP per comprendere dati che potrebbero essere più difficili da comprendere in modo tradizionale.
Prima di iniziare, dobbiamo parlare un po' delle mountain bike e del loro funzionamento. Le mountain bike hanno in genere una sospensione anteriore e una posteriore. La sospensione anteriore è molto semplice. Si muove semplicemente su e giù lungo la forcella in modo lineare. La sospensione posteriore è molto più complessa. C'è la ruota posteriore che si muove su e giù, e in genere ha una sorta di collegamento che collega questo movimento a un ammortizzatore posizionato al centro del telaio della bici. Questo collegamento può avere diverse proprietà che esamineremo in dettaglio nelle cinque che abbiamo selezionato.
Ma il più facile da capire è probabilmente il rapporto di leva. Cioè, se la ruota si muove di un millimetro, di quanto si comprime l'ammortizzatore? Anche l'ammortizzatore si comprime di un millimetro? In questo caso, il rapporto di leva sarebbe pari a uno. Se l'ammortizzatore si comprime molto meno, il rapporto di leva sarà maggiore e quel valore cambierà lungo l'intera corsa della ruota. Man mano che la ruota si muove, quel valore cambia, e così si ottiene una curva o un dato funzionale che definisce il collegamento della bici.
Abbiamo individuato cinque di queste curve. La prima è l'anti-squat. Questo parametro riguarda il comportamento della bici in accelerazione. Mentre si pedala, la bici si inclina in avanti, si abbassa nell'escursione o si mantiene relativamente in piano? L'anti-squat riguarda il modo in cui le sospensioni reagiscono alla forza di accelerazione.
L'anti-rise è un'altra di quelle proprietà che, quando freni, quando rallenti, la bici si inclina in avanti? Si comprime nelle sospensioni? L'anti-rise è un'altra caratteristica messa a punto dai progettisti di bici per caratterizzare il comportamento della bici o migliorarne le prestazioni.
Abbiamo parlato un po' del rapporto di leva. Indica quanto si comprime l'ammortizzatore quando la ruota si muove. La cosa davvero interessante del rapporto di leva, e ne parleremo più approfonditamente verso la fine della presentazione, è che è tarato su un ammortizzatore specifico. Sulle bici, ci sono sospensioni ad aria e sospensioni a molla, e a seconda di quale si utilizza, si vedranno curve del rapporto di leva diverse. La cosa importante è che il rapporto di leva sia tarato, ma non lo è in modo isolato, bensì dipende fortemente anche dal tipo di ammortizzatore utilizzato.
Un altro aspetto da considerare è il percorso dell'asse. Mentre la ruota si muove verso l'alto, si sposta molto indietro, si muove in verticale su e giù, o si muove leggermente in avanti? In questo grafico, puoi vedere che l'asse Y rappresenta la distanza percorsa dalla ruota e l'asse X la sua posizione anteriore-posteriore. La ruota parte da zero. E poi, in questo grafico blu, puoi vedere che inizialmente si sposta leggermente indietro prima di muoversi in avanti. Puoi immaginare che, mentre stai percorrendo un sentiero, se ti stai muovendo in avanti, vorresti che la ruota si spostasse indietro e si allontanasse da un ostacolo piuttosto che in avanti e contro un ostacolo. Il percorso dell'asse è un aspetto piuttosto intuitivo da comprendere in termini di come potrebbe essere utile a una bici.
L'ultimo è il contraccolpo del pedale. Questo avviene quando la ruota è in movimento: a volte la distanza tra i pedali e la ruota aumenta leggermente, e questo fa sì che i pedali si muovano all'indietro sul ciclista. Generalmente non è una buona cosa. Può causare una sensazione di instabilità durante la guida.
Queste sono le curve che ci interessano. Questo è lo spazio che ci interessa, e possiamo estrapolarle tutte dal collegamento. La domanda ora è: come otteniamo le recensioni? Sono tornato al mondo pre-JMP 18, ma so scrivere uno script Python, e non entrerò nei dettagli sul suo funzionamento. Se qualcuno ha domande, non esitate a contattarmi. Sono felice di rispondere. Ma quello che fa è che ho uno script Python sul mio desktop che JMP eseguirà. Questo script Python contatterà Bike Radar, raccoglierà un po' di recensioni e poi genererà un paio di tabelle dati JMP che potremo esaminare.
La prima è questa tabella riassuntiva. Fornisce una serie di metadati sulla recensione della bici. Ci dice di che bici si tratta, e se si tratta di una recensione completa, a lungo termine o di una recensione di prima uscita, qual è la data di pubblicazione. Ci fornisce alcuni commenti a breve termine, qual è stato il punteggio complessivo, e poi l'URL, che tipo di bici è stata usata e chi ne è l'autore. Infine, ecco il nocciolo della recensione. Anche in questo caso, ci fornisce la bici, la sezione specifica e infine il testo della recensione.
Abbiamo raccolto qui tre componenti di ogni recensione. Abbiamo la sezione di salita, una di discesa e infine la sezione conclusiva. Per ogni bici, abbiamo ciascuna di queste sezioni, così possiamo chiederci: la bici sale bene? Sale bene in montagna? Discende bene? Discende bene? E poi, nel complesso, cosa ne pensa il recensore di quella bici?
Abbiamo parlato dei due componenti che utilizzeremo per la nostra analisi. Abbiamo le curve, che possiamo generare con questo software di collegamento, e abbiamo le recensioni.
Ma ora, come possiamo prendere tutto questo e trasformarlo in un formato comprensibile per JMP e con cui possiamo effettivamente effettuare delle analisi? Per farlo, quello che abbiamo ottenuto dal nostro sistema di collegamento è un'immagine. La domanda è: come possiamo trasformare quell'immagine in un formato comprensibile per JMP?
La cosa interessante di JMP, e che ho scoperto piuttosto di recente, è che apre effettivamente le immagini. Bisogna eseguire un po' di JSL per farlo. Ma se lo fai, puoi ottenere un'immagine e poi puoi ottenere una tabella che fornisce le posizioni X e Y. Cioè dove si trova il pixel nello spazio o nell'immagine, e poi ti fornirà i valori di rosso, verde e blu di ciascuno, di ogni pixel nell'immagine.
Fantastico. Non ci ha ancora dato esattamente quello che volevamo. Abbiamo bisogno di questa curva, ma possiamo avvicinarci molto. Se potessimo individuare tutti i valori blu, potremmo... Ok, possiamo ottenere tutti i valori blu e poi, se riusciamo a mapparli in questo spazio grafico, potremmo generare una curva.
Mi piace molto Workflow Builder. Mi semplifica molto la vita perché posso semplicemente fare le cose graficamente e ottenere risultati, quindi ho creato un flusso di lavoro rapido che esegue un clustering. Quest'immagine è bella perché contiene solo tre colori. Se generiamo tre gruppi e poi salviamo la formula per quei cluster nella tabella, ora possiamo ottenere un grafico che rappresenta le posizioni X e Y da questa tabella, e poi possiamo colorarli con la formula del cluster. Come potete vedere, abbiamo la formula del cluster uno, che rappresenta tutti i nostri pixel blu. Possiamo usarla per iniziare a dire: "Ok, ecco i pixel blu. Ora, quali sono quelle posizioni? Sappiamo qual è la loro posizione globale nell'immagine. Dobbiamo mapparle nella loro posizione su questo grafico".
Di nuovo, non entrerò nei dettagli perché è un argomento un po' spinoso, ma vi mostrerò come appare la sceneggiatura finale che abbiamo elaborato.
Mostra l'immagine e poi dice: "Ok, devi darmi Xmin, Xmax, Ymin e Ymax per quel grafico". Inserirò i valori da zero a 130 e poi da 0,45 a 1,35. Clicco su "Ok". Il risultato è... Devo trascinare tutto qui. Otteniamo una tabella dati con i nostri valori X, i nostri valori Y, e poi la proprietà e le bici che stiamo osservando. Questa è solo un'immagine di esempio. Ma potete vedere, ecco il grafico da cui siamo partiti. Ecco il grafico estratto. Lo abbiamo fatto inserendo questi valori, osservando i pixel blu e poi calcolando: "Ok, data la nostra posizione globale, ecco come si mappa in quello spazio da zero a 130 millimetri che abbiamo definito".
Inutile dire che non è un processo perfetto, ma è piuttosto efficace nel tracciare le curve per ciascuna di esse. Ci vuole un po' di tempo. Io e Jed abbiamo passato un paio d'ore una sera a digitare i numeri, ma dopo un po' avevamo tutte le curve che potevamo usare per osservarle.
Ora parleremo di: "Ok, cosa abbiamo fatto con il testo? Come abbiamo trasformato il testo in un formato che potessimo usare?"
Grazie, Landon. Come ha detto Landon, abbiamo il testo e i file salvati in tre file CSV separati: uno per la parte ascendente, uno per la conclusione e uno per la parte discendente. Li ho salvati sul desktop. Se non lo sai, c'è una funzione davvero utile chiamata "Importa file multipli". L'abbiamo usata. Ma, ripeto, per risparmiare tempo, barerò un po' e mi limiterò a eseguire lo script per farlo. In pratica, ho importato tutti e tre i file in un unico file JMP. Con un po' di magia di ricodifica con il tasto destro del mouse, posso cambiare il nome del file in "conclusione", "discendente" e "ascendente".
Ora i miei dati sono formattati e pronti per l'uso. Cosa intendo per "pronti per l'uso"? Dobbiamo convertire il testo in ciascuno di questi campi in numeri, qualcosa che possiamo manipolare e con cui possiamo fare statistiche. Una delle mie funzionalità preferite e meno utilizzate di JMP è l'Esplora Testo. In realtà è davvero, davvero semplice. Se c'è del testo in una colonna, allora, beh, è il testo. Possiamo semplicemente ignorare tutto il resto perché non useremo nient'altro. È un'operazione abbastanza semplice da eseguire.
A proposito, vorrei sottolineare che l'analisi del sentiment è una funzionalità di JMP Pro. Se avete JMP Pro, potete usare questa analisi del sentiment, che essenzialmente analizza tutto il testo e gli assegna un punteggio di sentiment o di emozione. Possiamo subito notare che i recensori sono generalmente positivi su queste biciclette.
Ma una cosa che voglio sottolineare è che esiste questa nozione di curatela del testo. Scorro verso il basso fino a questo "pedal bob", suona strano. Non è qualcuno che dice a Bob di pedalare. Nel mountain bike, questo "pedal bob" si verifica quando le sospensioni si alzano e si abbassano mentre si pedala, ed è una cosa negativa. JMP tiene conto di questa strana parola "pedal bob"? Non di default, ma è davvero facile da aggiungere. Lo farò con l'analisi del sentiment. Gestirò questi termini del sentiment. Posso entrare e se posso digitare, posso digitare "pedal bob". Posso dargli un punteggio di meno 50, posso aggiungerlo. Poi nota che quando clicco "ok" qui, quel punteggio cambierà solo di poco. Questa è una cosa semplice, ma richiede anche molto tempo.
Ho diversi termini. In realtà, Landon era un sabato, ha esaminato il documento, ha curato tutti i dettagli e ha salvato i termini per i sentimenti in un file di testo. L'ho fatto praticamente manualmente una volta. Poi JMP li mette negli appunti e posso usare V per incollarli. Quando clicco "Ok", otteniamo una modifica. Posso fare la stessa cosa con i termini di negazione e intensificazione con i file, solo file di testo. Ma invece di farmi guardare mentre copia e incolla, prenderò una piccola scorciatoia.
Ora, questo vale per tutti i documenti localizzati per questo corpus o per questo insieme di documenti. Abbiamo la lingua pronta, quindi inizieremo ad avere fiducia in questi punteggi. Ora che mi fido dei punteggi, voglio farci qualcosa. Per farcela, il modo più semplice è probabilmente andare sul triangolo rosso e cliccare su "Salva punteggi documento". Fatto ciò, vado alla tabella, questa tabella che prima conteneva solo il nostro testo ora ha alcune colonne extra che rappresentano i numeri dei pareri positivi e negativi, oltre al parere generale.
Ora sono quasi pronto. L'unica cosa che devo fare da questo punto in poi è forse usare la funzione tabulazione per separare un po' meglio i dati, in modo che per la salita ottenga un valore complessivo positivo e negativo. Lo stesso vale per la conclusione, un valore complessivo positivo e negativo e una discesa. Se trasformo tutto in una tabella dati, ora ho i dati pronti per essere utilizzati. Ho ogni bicicletta, e poi per la salita, la discesa e il totale. Ma questo significa che posso usare il Generatore di Grafici per confrontare la discesa complessiva con la salita. Potrei dire: "Bene, ecco le bici. Se dovessi trarre delle conclusioni, ecco le bici che sono valide in entrambi i casi". Per quanto breve, ora sono pronto a lavorarci su, e viene trattato come un dato con un valore che ne indica la validità. Detto questo, torniamo a Landon.
Ok. Grazie, Jed. Ho la stessa tabella che ha prodotto Jed, quindi possiamo vedere che abbiamo la bici, e poi abbiamo il nostro sentiment generale, il nostro sentiment positivo e quello negativo per ciascuna delle nostre categorie di salita, discesa e conclusione. Ce l'abbiamo. Poi l'altra cosa che abbiamo fatto è stata esaminare tutte le nostre immagini e generare questa tabella delle curve.
In questo momento questa tabella è per ogni bici, abbiamo le proprietà. Abbiamo l'anti-squat. Scorrendo, puoi vedere che ci sono l'anti-rise e il rear path e tutte le nostre diverse proprietà. Poi abbiamo... La nostra X è la distanza della bici nella corsa, e la nostra Y è il valore di quella proprietà in quel punto della corsa.
Una cosa che abbiamo fatto è stata notare che c'è molta variazione tra queste bici. Alcune di queste bici hanno 100 millimetri di escursione o la ruota può muoversi di 100 millimetri, e alcune bici hanno 180 millimetri di escursione. Questo ci stava causando alcuni problemi, quindi abbiamo normalizzato tutte le nostre escursioni da zero a uno. Quindi, invece di guardare di quanto si è spostata la ruota, stiamo guardando in quale percentuale dell'escursione si trova la bici. È al 50% della sua escursione completa o è al minimo?
Ora, per vedere questo in Functional Data Explorer, vorremmo formattarlo in modo leggermente diverso. Quello che faremo è rendere il nostro valore di viaggio un valore ordinale, e poi possiamo passare al nostro amico tabulato. Jed e io abbiamo usato molto la tabulazione in questo progetto. Ma possiamo prendere la bici e poi possiamo dire dove aggiungere il nostro viaggio, possiamo prendere la proprietà e poi possiamo ottenere, "Ok, qual è il valore Y qui?"
Lo trasformiamo in una tabella dati, e sembra un po' disordinato in quanto la posizione di spostamento per ciascuno dei nostri valori non è necessariamente allineata, quindi ci sono un sacco di valori mancanti qui, dove ho un valore per il contraccolpo del pedale, ma non per nient'altro. Poi ho un valore per il rapporto di leva, ma non per niente altro. A quanto pare non è un granché, ma in realtà non causa alcun problema. Quando lo inseriamo in Functional Data Explorer, gestirà quei valori mancanti molto bene. Non ci causerà alcun problema. E quindi va bene così.
L'altra cosa che possiamo fare è unire questa tabella qui. Dobbiamo unirla alla nostra tabella che contiene tutti i punteggi delle recensioni delle nostre bici. Il modo più semplice per farlo è un join virtuale. Puoi venire qui, chiamare l'ID del link, poi venire qui e creare un riferimento al link, così da avere un sistema pulito. Ora lo estrarrò.
Ecco tutti i nostri dati sulle curve. Abbiamo la bici, la sua escursione, i valori medi di anti-rise, anti-squat, rapporto di leva, kickback del pedale e traiettoria posteriore. Poi abbiamo anche tutti i nostri punteggi di sentiment.
Ora, vogliamo trasferire tutto questo in Functional Data Explorer e iniziare chiedendoci: in che modo queste percezioni si relazionano alla forma delle curve? Se accediamo a Specialized Modeling Functional Data Explorer, ne esamineremo solo una in questo momento. Osserveremo il percorso posteriore. Il nostro input X sarà la nostra escursione normalizzata, e poi prenderemo il nome della nostra bici come ID. La vera magia sta nel prendere tutti i nostri punteggi di percezioni e aggiungerli al nostro campo supplementare.
Ora, quando Functional Data Explorer è in esecuzione, queste curve sono davvero belle perché sono molto fluide e sono generate da collegamenti, quindi le B-Spline le adattano davvero bene. Possiamo adattare le B-Spline a tutte queste curve e vediamo che la maggior parte della variazione è nella funzione di forma uno. Se osserviamo qui in basso nel nostro grafico diagnostico, possiamo vedere che c'è molta variazione lungo il componente uno. Non c'è molta variazione lungo il componente due. Quindi possiamo passare il mouse qui e possiamo vedere: "Ok, questa è una bici che, se la guardiamo, ha un percorso dell'asse che si sposta molto in avanti. E qui, all'altra estremità, abbiamo un percorso dell'asse che si sposta molto indietro. Questi sono i nostri due estremi.
Fatto questo, possiamo passare alla nostra B-Spline con dati aggiuntivi. Avendo aggiunto questi Z fattori aggiuntivi, possiamo eseguire questa analisi DOE funzionale. Ciò che ne consegue è che ora si costruisce la relazione tra i punteggi di sentiment e l'aspetto del percorso posteriore. È un po' difficile da leggere perché questi termini sono molto lunghi. Ma questi primi tre rappresentano il nostro sentiment generale per la salita, questo è il nostro sentiment positivo e questo è il nostro sentiment negativo per la salita.
Se ci interessasse solo la salita e volessimo un feeling generale molto buono per la salita e un feeling molto buono o molto basso per la salita, ecco come appare la nostra bici, o ecco come appare il nostro percorso posteriore. Potete vedere che questo è un percorso posteriore piuttosto standard. Non si muove molto in avanti e non si muove molto indietro. Quindi potete farvi un'idea del percorso posteriore. Possiamo ripetere questo processo per ognuno dei nostri diversi percorsi. Questo è quello che abbiamo fatto, e abbiamo salvato queste formule di previsione.
Quindi l'ultima cosa che abbiamo fatto è stata prendere tutto questo, combinarlo insieme e creare un profiler che ci mostrerà, date tutte le nostre recensioni e tutte le curve che abbiamo messo insieme, come si collegano le recensioni e le curve?
Ecco la nostra sezione conclusiva, quindi conclusioni positive, negative e complessive, e poi ci sono i punteggi positivi, negativi e complessivi in salita, e positivi, negativi e complessivi in discesa. Quindi, diciamo: "Ok, vogliamo una bici che favorisca davvero la discesa". Quindi, ok, in generale, in discesa. Non vogliamo molti aspetti negativi in discesa, ma vogliamo alti valori positivi in discesa.
Cosa succede? Se confrontiamo questo percorso posteriore con i percorsi posteriori che abbiamo visto prima, questo si inarca molto di più. Ha senso. È qualcosa che corrisponde a una bici in cui la ruota posteriore si sposta indietro e si sposta quando si urta qualcosa sul sentiero. Quando si scende e si colpisce una roccia, la ruota posteriore si sposta.
L'altro aspetto che vorrei sottolineare è il rapporto di leva. Ne ho accennato prima. Abbiamo diversi tipi di ammortizzatori nelle mountain bike. Ci sono gli ammortizzatori a molla e gli ammortizzatori ad aria. Senza entrare nei dettagli, questo è il tipo di rapporto di leva che ci si aspetterebbe di vedere per un ammortizzatore a molla. Se si esaminano tutte le bici da discesa, si scopre che hanno tutte ammortizzatori a molla. La grande tendenza del settore in questo momento è quella di installare ammortizzatori a molla sulle bici da discesa perché offrono ottime prestazioni, e anche i nostri dati lo dimostrano.
Possiamo anche guardare l'inverso. Ora non ci interessa più tanto la discesa, ma vogliamo davvero fare bene in salita. Vogliamo portare una bici in Coppa del Mondo. Il nostro posteriore ora è un po' diverso, e anche il nostro anti-rise è un po' diverso. Il nostro rapporto di leva, un rapporto di leva molto più comune con una sospensione ad aria, che è quello che vedresti su una bici focalizzata sulla salita perché sarà molto più leggera. Avrà prestazioni molto migliori per quella categoria di bici.
L'idea qui è che, ancora una volta, non stiamo cercando di mostrare "Ok, questo è esattamente il modo in cui dovresti progettare una bici", ma stiamo mostrando "Ok, abbiamo dei dati davvero complessi". Abbiamo recensioni provenienti da recensori su un sito web. Abbiamo curve che arrivano sotto forma di grafici e, usando JMP, possiamo riunire tutto questo e sintetizzarlo in una dashboard che fa davvero un ottimo lavoro nell'aiutarci a capire: "Ok, ecco come le recensioni e questi indici di leva finanziaria si collegano", ed ecco alcune informazioni che ci aiutano a comprendere e ad essere un po' più rigorosi rispetto alla semplice visione "Beh, penso che dovrebbe essere così".
Ecco cosa volevamo condividere. Di nuovo, se qualcuno ha domande, non esiti a contattarci. Grazie per il tempo che ci ha dedicato.