Salut tout le monde,
J'ai un client qui travaille dans l'industrie automobile avec des ingénieurs qualité fournisseur. Ils ont une grande feuille de calcul PPAP (processus d'approbation des pièces de production) qui comporte des colonnes de numéro de pièce, d'autres colonnes catégorielles, une colonne qui indique la date provisoire d'approbation, une colonne qui indique la date réelle d'approbation et une colonne saisie manuellement qui décrit la raison pour laquelle la date provisoire a été manquée. L'objectif du client est de pouvoir :
1) Prédire si un numéro de pièce à venir sera réellement approuvé à la date provisoire
2) Visualisez si les numéros de pièce sont inférieurs ou supérieurs à leur date d'approbation provisoire (de combien de jours)
Je me demandais si quelqu'un avait un exemple d'ensemble de données qui ressemble un peu à la feuille de calcul que j'ai décrite ? J'ai du mal à trouver un ensemble de données pertinent. Il semble qu'une fois que j'ai la table JMP, je pourrais faire une démonstration de l'explorateur de texte, du générateur de graphes et de certaines des plates-formes du menu fiabilité/survie (il faudra peut-être inverser la censure pour que cela fonctionne). D'autres suggestions?
Meilleur,
Clovis
@cweisbart vous pourriez envisager d'obtenir un accès en ligne à Documentation PPAP d'AIAG . Si les personnes avec lesquelles vous travaillez travaillent dans l'industrie automobile, il est probable qu'il s'agisse du document à partir duquel elles travaillent. J'ai eu une expérience similaire lorsque des spécialistes des semi-conducteurs fournissant cette industrie ont eu besoin d'effectuer une analyse des systèmes de mesure (même idée, document de normes différent).
Bien sûr, il est assez facile de simuler des données, puis de les ajuster pour prendre en charge un récit intéressant. Cela pourrait vous aider à montrer certaines des choses simples que vous mentionnez. Inutile de dire que c'est un code plutôt ancien:
amesDefaultToHere(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,
"Nominal",
Format( "Best", 12 ),
Formula( DateDifference( :In Date, :Out Date, "Day" )),
);
Merci Ian, j'ai fini par créer un tableau très similaire au vôtre l'autre jour. La seule chose qui manque, ce sont les données textuelles saisies manuellement. Ce serait cool d'utiliser certains des termes courants comme prédicteurs de la réponse DateDifference. Mais je pense simplement avoir plusieurs tables pendant la démo. Un tableau similaire à celui-ci pour démontrer les manipulations de date et les graphiques/tabulations, puis quelque chose comme le fichier Chips JMP pour montrer les avantages de l'explorateur de texte.