In che modo JMP esegue le trasformazioni BoxCox?Di recente ho convertito le formule di JMP in Excel utilizzando l'opzione codice Python. Non sono riuscito a trasferire alcuna formula (MLR) che coinvolga una trasformazione BoxCox. Ho eseguito manualmente i calcoli seguendo la formula e ho ottenuto numeri nell'ordine dei milioni invece delle centinaia di migliaia, come dovrebbero essere. Se qualcuno sa se la formula è già stata convertita o se è necessario farlo e cosa devo fare per applicare la trasformazione BoxCox inversa per riportarla in termini normali, non so se mi sfugge qualcosa o se il codice Python tramite l'opzione di pubblicazione della formula manca qualcosa. Speravo che qualcuno potesse spiegare come JMP esegue la trasformazione BoxCox in modo da poterla comprendere meglio e potenzialmente risolverla. Ho provato ad allegare il codice della formula, ma non mi ha permesso di pubblicarlo. Qualsiasi aiuto sarebbe apprezzato.
Esplorazione e visualizzazione dei datiModellazione predittiva e apprendimento automaticoR: In che modo JMP esegue le trasformazioni BoxCox?La documentazione e la formula per la trasformazione Box-Cox sono disponibili qui: https://www.jmp.com/support/help/it/18.2/index.shtml#page/jmp/boxcox-y-transformation.shtml
R: In che modo JMP esegue le trasformazioni BoxCox?Ciao @DWS : anche questo potrebbe esserti utile.
https://community.jmp.com/t5/Discussions/How-to-understand-Lambda1-and-Lambda2-for-Box-Cox-transformation/mp/614578#M81444
R: In che modo JMP esegue le trasformazioni BoxCox?Grazie, questo mi ha aiutato a capire meglio le trasformazioni di BoxCox in generale, ma non come JMP le esegua necessariamente. Credo che la seguente domanda mi possa aiutare a capire: i numeri che JMP mostra nella sezione "Stime dei parametri", per una formula di BoxCox, sono semplicemente trasformati con BoxCox o sono già stati trasformati inversamente in unità comprensibili?
R: In che modo JMP esegue le trasformazioni BoxCox?@DWS Se tutto ciò che fai è selezionare "Trasformazione Box Cox" nel menu "Profilazione fattoriale", non viene applicata alcuna trasformazione e le stime dei parametri si basano su Y. Ma se esegui un ulteriore Refit con la trasformazione Box Cox (triangolo rosso nell'output "Trasformazioni Box Cox"), le stime dei parametri si basano sulla Y trasformata.
R: In che modo JMP esegue le trasformazioni BoxCox?OK, giusto per essere chiari, la formula che viene fornita dopo aver cliccato su "Riadatta con Trasformazione", in quel nuovo menu, quella formula e quelle stime dei parametri non vengono trasformate e poi ritrasformate in unità reali, ma rimangono in unità trasformate. Se così fosse, è possibile conoscere la formula che JMP usa per trasformarle in unità normali inverse, perché fornisce unità normali inverse nella formula di predizione della colonna di salvataggio? Oppure dovrei applicare una trasformazione normale inversa? Inoltre, lo sai per esperienza? O è scritto da qualche parte perché non sono riuscito a trovarlo. Scusate per le numerose domande.
R: In che modo JMP esegue le trasformazioni BoxCox?@DWS : Come puoi vedere, quando riadatti e salvi la formula di previsione, questa viene trasformata in modo che le previsioni siano nella scala originale di Y. E la formula in quella nuova colonna è la formula di trasformazione inversa che cerchi. Non sono sicuro se sia nella guida di JMP o meno (ma vedo cosa fa nel mio lavoro). Non capisco però cosa tu stia chiedendo riguardo alle stime dei parametri; non vengono trasformate in alcun modo; solo Y lo fa.
R: In che modo JMP esegue le trasformazioni BoxCox?Ok, lasciatemi fare un esempio con una sola variabile X e l'intercetta tra le due formule. Non BoxCox: Intercetta: 254.077 X1: -44.880. Stessa formula e variabile dopo BoxCox: Intercetta: 61.472.780 X1; -43.139. Vedete il mio problema. Questi numeri sono presi dalla stima dei parametri e verificati nell'editor di formule. Tutte le variabili x sono uguali, non sono troppo lontane dalle loro controparti non trasformate, ma l'intercetta è molto diversa. Non so perché questo accada e non riesco a pensare a come ciò possa essere possibile.
R: In che modo JMP esegue le trasformazioni BoxCox?@DWS Qual è il tuo lambda nella trasformazione BC? E quante X hai? Puoi fare una foto di entrambi i set di stime dei parametri?
R: In che modo JMP esegue le trasformazioni BoxCox?
R: In che modo JMP esegue le trasformazioni BoxCox?@DWS Oh cielo. Credo che la retrotrasformazione sia l'ultima delle tue preoccupazioni. Prima di pensare all'interpretazione dei coefficienti (soprattutto se superiori a 50), dovrai assicurarti che i termini presenti nel tuo modello possano essere stimati con i dati a tua disposizione. Alcune stime sono distorte, altre sono azzerate. Questo indica che stai cercando di stimare alcuni parametri relativi a X che sono altamente correlati e/o alcuni che non sono stimabili perché la struttura dei tuoi dati non supporta la stima dei termini che stai cercando di stimare. I VIF nella tabella delle stime dei parametri (se non sono visibili, fai clic con il pulsante destro del mouse sulla tabella delle stime dei parametri per selezionarli) ti aiuteranno a identificare la multicollinearità (correlazione). Ad esempio, se X1 e X2 si muovono insieme, includerli entrambi nel modello rende entrambi i loro coefficienti inaffidabili rispetto all'interpretazione... quindi uno di essi dovrebbe essere escluso come candidato nel modello.
Inoltre, se lambda = -0,002, potrebbe essere più semplice utilizzare la trasformazione LN; è più facile da interpretare e -0,002 è molto vicino a 0 (lambda=0 corrisponde alla trasformazione LN).
Modifica: maggiori informazioni qui.
https://community.jmp.com/t5/Discussions/Parameter-Estimates-being-zerod/mp/751701
R: In che modo JMP esegue le trasformazioni BoxCox?Apprezzo l'aiuto, sono pienamente consapevole di tutto ciò. Questo è solo un esempio che ho creato per mostrarti la differenza significativa tra le intercette delle formule BC e non BC. Sai perché le intercette sono così diverse?
R: In che modo JMP esegue le trasformazioni BoxCox?@DWS Beh... uno si basa su BoxCox(Y) e l'altro su Y; quindi perché le intercettazioni non dovrebbero essere diverse? E non voglio essere ottuso.
Tralasciamo per ora la questione delle stime dei parametri distorte e azzerate. Per entrambi i modelli, si utilizza il metodo dei minimi quadrati per stimare i parametri nei rispettivi modelli. E ognuno avrà un insieme diverso di stime dei parametri basate sulla procedura dei minimi quadrati. Sono diversi perché le risposte sono diverse (una è Y, l'altra è BoxCox[Y]).
E se ipotizziamo la trasformazione LN, BoxCox[Y] = LN[Y], quando effettuiamo la retrotrasformazione otteniamo Y = exp[int + combinazione lineare di X] = exp[int]*exp[combinazione lineare di X]. Quel modello è moltiplicativo, quindi l'intercetta in quel modello ha un effetto diverso su Y rispetto all'intercetta nel modello additivo non trasformato.
Spero che questo ti sia utile. Forse non ho capito la natura della tua domanda; perché è così preoccupante?
R: In che modo JMP esegue le trasformazioni BoxCox?Non so se riesci a leggere questa immagine, ma puoi vedere a sinistra i valori previsti a confronto. Non sono equi. Poi, a destra, puoi vedere le pagine per il Non BC e il BC e le relative stime dei parametri in basso. Posso ottenere il valore previsto dal foglio usando la formula Intercetta + Stima (X) fornita nelle stime dei parametri per il Non BC, ma non per il BC perché la stima del BC è 386 miliardi. Questo è lo stesso numero fornito dal codice Python, quindi non riesco a ottenere il numero preciso mostrato a sinistra in Excel. Vorrei sapere la formula effettiva che JMP sta usando per calcolare la Box Cox Predict mostrata nell'immagine a sinistra.

R: In che modo JMP esegue le trasformazioni BoxCox?@DWS Se ho capito bene, non puoi semplicemente salvare la formula di previsione tramite il menu con il triangolo rosso in cima all'output?
R: In che modo JMP esegue le trasformazioni BoxCox?@DWS Oppure in generale, vedere l'immagine (e g è la media geometrica di Y).
R: In che modo JMP esegue le trasformazioni BoxCox?Fornisce ancora 3.868e+11
R: In che modo JMP esegue le trasformazioni BoxCox?@DWS Stai sbagliando qualcosa e/o stai interpretando male qualcosa. Quale equazione stai usando in Excel per ottenere una previsione per Y?
R: In che modo JMP esegue le trasformazioni BoxCox?Python direttamente da JMP
def getModelMetadata():
restituisci {"creator": u"Adattamento minimi quadrati", "modelName": u"", "predicted": u"BoxCox(Prezzo di vendita aggiustato,-1,088)", "table": u"Esportazione nazione", "version": u"18.0.2", "timestamp": u"2025-07-02T17:34:44Z"}
definizione getInputMetadata():
ritorno {
u"Superficie abitabile approssimativa": "galleggiante",
u"YSB": "galleggiante"
}
definizione getOutputMetadata():
ritorno {
u"Pred Formula BoxCox(Prezzo di vendita rettificato, -1,088)": "float"
}
def punteggio(indata, outdata):
outdata[u"Pred Formula BoxCox(Prezzo di vendita rettificato,-1,088)"] = 386761700160,329 + 153,473460505384 * indata[u"Superficie abitabile approssimativa"] + -1519,63590642121 * indata[u"YSB"]
restituisci outdata[u"Pred Formula BoxCox(Prezzo di vendita aggiustato,-1,088)"]
R: In che modo JMP esegue le trasformazioni BoxCox?@DWS Mi sembra che tu stia restituendo la Y trasformata. Se vuoi Y devi effettuare la trasformazione inversa come mostrato in questa immagine (dove g è la media geometrica di Y).
R: In che modo JMP esegue le trasformazioni BoxCox?@DWS Cercherò di spiegarmi meglio. La tua equazione nella funzione outdata non è corretta. Se consideri quella funzione f(x) nell'immagine allegata e poni g = media geometrica di Y, otterrai quello che cerchi.
Ad esempio, sia f(x) = 386761700160,329 + 153,473460505384 * indata[u"Superficie abitabile approssimativa"] + -1519,63590642121 * indata[u"YSB"] nell'immagine allegata.
R: In che modo JMP esegue le trasformazioni BoxCox?Forse non sono molto bravo in matematica, ma non ci sono mai riuscito. Inoltre, devo riuscire a inserirlo in Excel e in una funzione. Non esattamente la stessa formula, ma una molto simile. Questo è l'editor di formule per farlo. Funzionerebbe? Quella è la notazione scientifica, giusto?

R: In che modo JMP esegue le trasformazioni BoxCox?@DWS Sembra ok, anche se non so qual è la media geometrica, quindi non posso verificarlo completamente.
Puoi comunque verificarlo. Come ho indicato più volte, dall'analisi della trasformata box-cox in JMP, salva la formula di previsione (triangolo rosso in alto nell'output). Verrà creata una nuova colonna di previsioni basata su quella retrotrasformazione. E la formula salvata in quella colonna dovrebbe corrispondere a quella che hai sopra.
R: In che modo JMP esegue le trasformazioni BoxCox?@DWS E per inciso, spesso arrotondiamo lambda allo 0,5 più vicino. È più facile da interpretare e spesso nel diagramma di Box-Cox si vede che la differenza è trascurabile. Nel tuo caso, potresti scegliere lambda = -1.