Ciao a tutti,
Ho un cliente che lavora nel settore automobilistico con ingegneri della qualità della fornitura. Hanno un grande foglio di calcolo PPAP (processo di approvazione della parte di produzione) che ha colonne con un numero di parte, alcune altre colonne categoriali, una colonna che mostra la data provvisoria di approvazione, una colonna che mostra la data effettiva di approvazione e una colonna inserita manualmente che descrive il motivo per cui la data provvisoria è stata persa. L'obiettivo del cliente è quello di essere in grado di:
1) Prevedere se un numero di parte imminente verrà effettivamente approvato entro la data provvisoria
2) Visualizza se i numeri di parte sono inferiori o superiori alla data di approvazione provvisoria (di quanti giorni)
Mi chiedevo se qualcuno avesse un set di dati di esempio che è in qualche modo simile al foglio di calcolo che ho descritto? Ho difficoltà a trovare un set di dati rilevante. Sembra che una volta che avrò la tabella JMP, potrei provare l'esploratore di testo, il generatore di grafici e alcune delle piattaforme nel menu affidabilità/sopravvivenza (potrebbe essere necessario invertire la censura per farlo funzionare). Altri suggerimenti?
Migliore,
Clovis
@cweisbart potresti considerare di ottenere l'accesso online a Documentazione PPAP di AIAG . Se le persone con cui lavori sono nel settore automobilistico, è probabile che questo sia il documento su cui stanno lavorando. Ho avuto un'esperienza simile quando le persone di semiconduttori che forniscono questo settore avevano bisogno di eseguire un'analisi dei sistemi di misurazione (stessa idea, documento di standard diversi).
Grazie Ian, ho finito per creare un tavolo molto simile al tuo l'altro giorno. L'unica cosa che manca sono i dati di testo inseriti manualmente. Sarebbe interessante utilizzare alcuni dei termini comuni come predittori della risposta DateDifference. Ma sto pensando di avere più tavoli durante la demo. Una tabella simile a questa per dimostrare le manipolazioni della data e la creazione di grafici/tabulazioni, quindi qualcosa come il file Chips JMP per mostrare i vantaggi di Esplora testo.
Ovviamente è abbastanza facile simulare i dati, quindi sintonizzarli per supportare una narrativa interessante. Questo potrebbe aiutarti a mostrare alcune delle cose semplici che menzioni. Inutile dire che è un codice piuttosto vecchio:
NamesDefaultToHere(1);
// *************************************************************************************************
// Change me!
// *************************************************************************************************
nr = 100; // Number of rows
earliestDate = DateDMY(1, 1, 2010); // Earliest possible start date
latestDate = DateDMY(31, 12, 2010); // Latest possible start date
processTimeMu = 14; // Mean of random process time (in days)
processTimeSigma = 7; // Sigma of random process time (in days)
// *************************************************************************************************
// Make some simulated 'start date' data (time ordered)
dt1 = NewTable("In",
NewColumn("In Date", Numeric, Continuous,
Formula(RandomInteger(earliestDate, latestDate)),
Format( "ddMonyyyy h:m:s", 22, 0 ),
Input Format( "ddMonyyyy h:m:s", 0 ),
)
);
dt1 << addRows(nr);
Column(dt1, "In Date") << deleteFormula;
dt1 << Sort(By(:In Date), ReplaceTable(1));
dt1 << NewColumn("ID", Numeric, Nominal, Values((1::nr)`));
dt1 << moveSelectedColumns(:ID, ToFirst);
// Make some simulated 'end date' data (don't allow the end date to be earlier than the start date)
inVals = Column(dt1, "In Date") << getValues;
processTime = J(nr, 1, Round(RandomNormal(processTimeMu, processTimeSigma), 0); );
processTime[Loc(processTime <= 0)] = 0;
outVals = inVals + InDays(processTime);
dt2 = NewTable("Out",
NewColumn("ID", Numeric, Nominal, Values((1::nr)`)),
NewColumn("Out Date", Numeric, Continuous,
Values(outVals),
Format( "ddMonyyyy h:m:s", 22, 0 ),
Input Format( "ddMonyyyy h:m:s", 0 ),
)
);
// Join dt1 and dt2
dt3 = dt2 << Join(
With( dt1 ),
SelectWith( :ID, :In Date ),
Select( :Out Date ),
By Matching Columns( :ID = :ID ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 ),
Output Table( "In and Out Dates" )
);
// Add a column for the process time
dt3 << New Column( "Process time in days",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( DateDifference( :In Date, :Out Date, "Day" )),
);