<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Objectif
Ce script prend une table de données de mesures répétées (une table avec plusieurs lignes par unité)
et le transforme en un tableau de données avec 1 ligne par unité et un temps de pseudo-échec.
Le tableau de données d'origine doit contenir :
1) Une colonne qui identifie chaque unité,
2) une variable qui mesure le temps (peut être utilisée comme les miles parcourus), et 3) un
colonne de réponse.
Usage
Exécutez simplement ce script par l'une de ces méthodes :
Édition > Exécuter le script
Contrôle-R
Cliquez sur le bouton "Exécuter le script" dans la barre d'outils
//*******************Informations générales
//Ce script prend une table de données de mesures répétées (une table avec plusieurs lignes par unité)
//et le transforme en un tableau de données avec 1 ligne par unité et un temps de pseudo-échec.
//La table de données d'origine doit contenir :
1) Une colonne qui identifie chaque unité,
2) une variable qui mesure le temps (peut être utilisée comme les kilomètres parcourus), et
3) un colonne de réponse.
//********************Dialogue initial
//La boîte de dialogue initiale vous permet de sélectionner la réponse, la mesure du temps
//(peut être le temps ou une mesure d'utilisation telle que les kilomètres parcourus) et un identifiant d'unité.
//Vous pouvez également spécifier 1 variable group-by. Si un
// grouper par variable est spécifié, l'utilisateur peut sélectionner une transformation différente
//pour chaque niveau de la variable de regroupement
//La case radio en bas à gauche permet à l'utilisateur de spécifier si les tracés
//doit afficher une ligne de régression ou connecter chaque point de la série pour chaque
//unité. Cela affecte les graphiques d'affichage mais ne modifie pas la façon dont les calculs internes
//sont effectuées
//************************Sélectionner la fenêtre de transformation
//Une fois les variables initiales spécifiées, le script ouvre une fenêtre affichant les
//relation entre la variable de temps et la réponse. Transformations pour le temps
//et la réponse peut être sélectionnée dans les listes déroulantes à côté du
// parcelles. Les tracés seront mis à jour lorsque les transformations seront
//sélectionné pour afficher la nouvelle relation.
//Si une variable group by est spécifiée, il y aura un graphique séparé pour chaque
//niveau de la variable de regroupement.
//Lorsque l'utilisateur a trouvé une ou plusieurs transformations qui provoquent une relation linéaire pour
//réponse transformée vs temps transformé, il/elle peut sélectionner
//"Créer des données de temps de pseudo-échec"
// pour créer la nouvelle table de données.
//Pour plus d'informations sur la fenêtre Sélectionner une transformation, sélectionnez l'aide
// bouton dans la boîte de dialogue.
//************************Boîte de dialogue Créer une table de données
//Cette boîte de dialogue permet de saisir le seuil d'échec,
//spécifiez des covariables supplémentaires (facultatif) et spécifiez une colonne dans les données
//table qui contrôle la taille du temps de pseudo panne.
// La table de données résultante aura UNE LIGNE par ID d'unité.
//Détails
// Covariables pour le modèle d'échec (facultatif) :
// Une liste facultative de covariables à inclure dans l'échec
// modèle de temps. Ces colonnes sont copiées de la table de données d'origine vers la
// Tableau horaire des pseudo pannes. Ils n'affectent pas le calcul
// S'il y a plusieurs mesures pour chaque covariable, le
// LAST VALUE est inclus dans le tableau final. A ce moment, le script fait
// ne prend pas en charge les covariables dépendant du temps
//Temps maximum prévu (optionnel)
// Une colonne facultative contenant les temps prédits maximum.
// Si le temps de défaillance prévu à partir des modèles linéaires est supérieur
// que la valeur de cette colonne, le temps de pseudo-échec est le
// temps maximum prévu à partir de cette colonne.
// Colonne de censure (facultatif)
// Une colonne dans la table de données qui a un 0 pour les observations qui ont échoué lors des tests
// et un 1 sinon. Si cette colonne est spécifiée, toute unité qui a un 1 pour cette colonne
// sera considéré comme une "panne brutale", et l'heure de la pseudo panne sera l'heure de la
// dernière mesure effectuée sur cette variable.
// Seuil d'échec (obligatoire)
// La valeur de la réponse pour laquelle l'unité aurait été considérée comme ayant échoué.
//***************Détails sur les entrées, les sorties et les calculs internes
//Contributions:
// * Tableau de données, tel que décrit dans les hypothèses
// --Utilisera la table active ou le script demandera l'ouverture
// * Niveau de défaillance : niveau de dommage auquel le composant est considéré comme "en panne"
// --L'utilisateur tapera dans une zone étiquetée
// * Censor Time (optionnel) : si le temps prédit dépasse ce temps, le composant
// doit être considéré comme "censuré"
// --La table de données aura une colonne avec le temps prédit maximum
// l'utilisateur autorisera pour chaque unité
// * Transformation du temps et/ou de la réponse
// --L'utilisateur sélectionnera dans une liste
// --L'utilisateur verra un graphique des valeurs transformées et prédites
// et autorisé à changer de sélection
//Les sorties:
// * Tracé interactif. Permet à l'utilisateur de s'adapter visuellement
// transformation linéaire
// * Table de données contenant les éléments suivants :
// --une ligne pour chaque composant
// --"Predicted Time": une colonne numérique contenant le temps de panne prévu
// --une colonne numérique contenant l'heure d'échec d'origine
// --"Pseudo Failure Time" une colonne numérique contenant le pseudo temps d'échec.
// C'est le temps prédit par le modèle linéaire ou,
// si des variables de censure sont spécifiées,
// le moment approprié de l'échec. Cette variable est basée sur une formule qui
// attribue soit l'original
// heure ou l'heure prévue en fonction des spécifications de l'utilisateur.
// --"Censored" Une variable 0,1 indiquant si l'unité est censurée (1) ou non
// censuré (0). Il s'agit de la variable qui doit être spécifiée comme
// variable de censure dans la plateforme Life Distribution ou autre survie
// maquette.
// --"Estimate Type": une colonne ordinale indiquant si la ligne est censurée dans
// une des manières suivantes
// --failed pendant le test : 0
// (Dans ce cas, le temps de modélisation est défini sur la dernière fois que
// unité a été mesurée).
// --n'a pas échoué lors des tests, et le temps prévu a du sens : 1
// (pseudo temps de panne = temps prédit)
// --le temps de censure prévu est plus long que le temps spécifié par l'utilisateur : 2
// (dans ce cas, le temps de modélisation est fixé au temps maximum
// spécifié par l'utilisateur)
// -- il n'y avait qu'une seule ligne pour l'unité -- la prédiction était impossible : 3
// (dans ce cas, le temps de modélisation correspond à la dernière fois que l'unité a été mesurée ).
// --dans certains cas, le calcul de l'heure prévue se traduira par une heure
// qui est trop volumineux pour être géré par JSL. Dans ce cas, Pseudo fiure est réglé sur
// le temps maximum ou jusqu'à la dernière fois que l'unité a été mesurée si
// il n'y a pas de colonne de temps maximum
// --covariates de la table de données d'origine. Une boîte de dialogue permet à l'utilisateur
// pour sélectionner les covariables qui seront utilisées dans une analyse ultérieure.
// * Les covariables dépendant du temps ne sont PAS SUPPORTÉES. Les dernières valeurs mesurées pour chaque
// le composant apparaît dans la table de données.
//Calculs :
// * Transformation linéaire des valeurs d'entrée
// * Temps de défaillance prévu à l'aide de la transformation linéaire
// --le modèle calcule une ligne distincte pour chaque unité
// --le script effectue le calcul en utilisant le langage matriciel de JSL
//Hypothèses:
// * La table de données se présente sous la forme suivante :
// --1 ligne pour chaque mesure sur chaque élément (mesures répétées)
// --Contient une colonne de temps spécifiant quand chaque mesure a été prise
// --Contient une colonne de censure (0,1) indiquant si le composant
// a échoué lors des tests.
// --Si la dernière mesure de l'unité a censure=0,
// la nouvelle table de données utilisera le temps de panne indiqué dans la table et non le
// temps d'échec prévu.
// * Il existe une transformation linéaire appropriée qui fonctionne pour
// toutes les lignes ou toutes les lignes d'un sous-groupe (c'est-à-dire que nous n'avons pas de situation
// où certaines lignes nécessitent un
// la transformation de journal et d'autres nécessitent une transformation de puissance)
//Plateformes utilisées :
// * La plate-forme bivariée est utilisée pour créer les tracés permettant à l'utilisateur de sélectionner
// la transformation appropriée. Ajuster à chaque valeur est utilisé pour permettre à l'utilisateur de voir
// si l'ajustement est approximativement linéaire.