CIAO. Ho scritto script per automatizzare la visualizzazione delle distribuzioni, adattare le distribuzioni e riportare cpk. Ne ho appena terminato uno lungo e ho riscontrato davvero molte disparità nel modo in cui devono essere utilizzati i nomi di alcune distribuzioni. Ciò ha richiesto una notevole quantità di debug. La mia domanda non è piccola, ma mi piacerebbe se JSL potesse rendere più coerente l'uso dei nomi di distribuzione per rendere la scrittura degli script più efficiente e meno confusa. Fornirò esempi di seguito.
Il mio script prende un elenco di nomi di distribuzione {"Exponential", "Normal 2 Mixture", "Johnson SU", ...} e prima genera una tabella di dati casuali con una colonna per ciascuna distribuzione. Quindi crea grafici di distribuzione, adatta i dati ed estrae i parametri di adattamento per ciascuna distribuzione. Utilizza inoltre la piattaforma Process Capability per calcolare cpk. Faccio molto affidamento sulla creazione di citazioni JSL e quindi sulla sostituzione del nome della distribuzione desiderata per ottenere il codice esatto di cui ho bisogno.
Problemi:
- Quando voglio generare inizialmente matrici di dati casuali, devo usare "Exp" invece di "Esponenziale" e "Miscela normale" invece di "Miscela normale 2".
</CODE><CODE class=" language-jsl">J(100, 1, Random<FONT color="#FF0000"><STRONG>Exp</STRONG></FONT>(...));<BR />J(100, 1, Random<FONT color="#FF0000"><STRONG>NormalMixture</STRONG></FONT>(...));<BR />J(100, 1, Random<FONT color="#FF0000"><STRONG>JohnsonSB</STRONG></FONT>(...));
- D'altra parte, per adattare una distribuzione ai miei dati, devo usare "Esponenziale" invece di "Exp", "Normal 2 Mixture" invece di "Normal Mixture" e "Johnson" invece di "Johnson SB":
dt << Distribution(
Continuous Distribution(
Column(:colname1),
Fit <FONT color="#FF0000"><STRONG>Exponential,</STRONG></FONT>
Fit <FONT color="#FF0000"><STRONG>Normal 2 Mixture,</STRONG></FONT>
Fit <FONT color="#FF0000"><STRONG>Johnson</STRONG></FONT>
)
)
- E ancora un altro schema di denominazione per la Miscela Normale 2 nella piattaforma Process Capability:
pc = dt << Process Capability(
Process Variables(
:colname1 & Dist(<FONT color="#FF0000"><STRONG>Exponential</STRONG></FONT>),
:colname2 & Dist(<FONT color="#FF0000"><STRONG>Mixture of 2 Normals</STRONG></FONT>),
:colname3 & Dist(<FONT color="#FF0000"><STRONG>Johnson</STRONG></FONT>),
)
)
Inizialmente speravo di poter semplicemente fornire al mio script un elenco di nomi di distribuzione da provare, quindi eseguire un ciclo for attraverso l'elenco, aggiungere il nome specifico a una citazione JSL e quindi eseguire. Invece ho scoperto nel modo più duro che avevo bisogno di creare diverse clausole if per correggere i nomi di distribuzione per ogni diversa operazione prima della sostituzione.
Sarebbe fantastico se tutto ciò potesse essere semplificato utilizzando semplicemente un set di nomi di distribuzione per tutte le funzioni e piattaforme. Grazie.
[Utilizzando JMP Pro 17.2.0]