Script JMP pour générer une valeur cumulative après la modélisationSalut tout le monde
Je suis nouveau sur JMP et j'ai essayé d'écrire un script
J'utilise la norme JMP 18 et j'effectue des analyses de récurrence. J'utilise un modèle log-linéaire NHPP. Je souhaite générer une valeur cumulée spécifique pour des transactions de 100 000, 200 000, 300 000, 400 000 et 500 000. L'interface utilisateur propose une option de clic pour chaque transaction (voir la pièce jointe). Je souhaite automatiser cette opération à l'aide de scripts. Voici le script que j'ai essayé : il génère une erreur dans la figure. Pourriez-vous m'aider avec le code ?


// Run the analysis and capture the report
rec_report = Recurrence Analysis(
Y( :Accumulated Transactions ),
Label( :BOT ID ),
Cost( :SAP Purchase Price ),
Grouping( :Bot Series ),
Event Plot( 0 ),
MCF Confid Limits( 1 ),
Fit Model(
Scale Effects( :Bot Series ),
Shape Effects( :Bot Series ),
Run Model,
Model Type( "Loglinear Nonhomogeneous Poisson Process" )
)
);
// --- Extract Estimates ---
// Get the "Estimates" table directly from the report and convert it to a scriptable object
estimates_table = rec_report["Loglinear NHPP Report", "Estimates"] << Table Box;
// Get the 'Estimate' column values as a list.
// The order is consistently Lambda, then Beta.
estimates_list = estimates_table << Get Values( "Estimate" );
// Assign the parameter estimates from the list
lambda_hat = estimates_list[1]; // Lambda (λ) is the first estimate
beta_hat = estimates_list[2]; // Beta (β) is the second estimate
// Define the transactions for which to calculate values
transactions = {100000, 200000, 300000, 400000, 500000};
// Calculate and display intensity and cumulative values
For( i = 1, i <= N Items( transactions ), i++,
transaction_time = transactions[i];
// Cumulative Mean Function C(t) = λ * t^β
cumulative = lambda_hat * (transaction_time ^ beta_hat);
// Instantaneous Intensity λ(t) = λ * β * t^(β-1)
intensity = lambda_hat * beta_hat * (transaction_time ^ (beta_hat - 1));
// Print the results to the log
Show( transaction_time, cumulative, intensity );
);
Automatisation et scriptsRe : Script JMP pour générer une valeur cumulative après modélisationVous souhaitez probablement inclure la zone de table dans l'indice de votre rapport au lieu de lui envoyer un message.
estimates_table = rec_report["Loglinear NHPP Report", "Estimates", Table Box(1)]
Je pense également que vos « Estimations » devraient être des « Estimations de paramètres » (ou utiliser le caractère générique ?). Voici un exemple jusqu'ici, utilisant les données d'échantillon JMP.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Reliability/Bladder Cancer.jmp");
ra = dt << Recurrence Analysis(
Y(:Age),
Label(:Patient Number),
Cost(:Cost),
Grouping(:Treatment Group),
Event Plot(1),
Fit Model(
Scale Effects(:Intensity),
Shape Effects(:Intensity),
Run Model,
Model Type("Power Nonhomogeneous Poisson Process")
)
);
tb = Report(ra)[OutlineBox("Fitted Recurrence Model"), OutlineBox("Parameter Estimates"), TableBox(1)];
estimates = tb[NumberColBox("Estimate")] << get;
Re : Script JMP pour générer une valeur cumulative après modélisationSalut, voilà.
Ça marche maintenant. Merci beaucoup.
Je ne devrais pas essayer de créer mon propre formulaire. Après avoir exécuté le modèle dans JMP, il y a « Intensité spécifique et cumulée » sous « Modèle de récurrence ajusté ». Il peut générer la valeur cumulée avec l'intervalle de confiance. Je peux simplement utiliser le formulaire au lieu d'en créer un nouveau. J'ai essayé de faire en sorte que le formulaire génère de nouveaux résultats dans un tableau, mais sans succès. Pourriez-vous m'aider ? L'erreur est dans l'image. Merci encore.

Names Default To Here( 1 );
// --- Run the analysis ---
rec_report = Recurrence Analysis(
Y( :Accumulated Transactions ),
Label( :BOT ID ),
Cost( :SAP Purchase Price ),
Grouping( :Bot Series ),
Event Plot( 0 ),
MCF Confid Limits( 1 ),
Fit Model(
Scale Effects( :Bot Series ),
Shape Effects( :Bot Series ),
Run Model,
Model Type( "Loglinear Nonhomogeneous Poisson Process" )
)
);
// --- Save JMP’s own formulas into the source table ---
rec_report << Save Intensity Formula;
rec_report << Save Cumulative Formula;
// Grab those formulas so we can reuse them in a clean table
dt_src=Current Data Table();
intensity_formula = Column( dt_src, "Intensity" ) << Get Formula;
cumulative_formula = Column( dt_src, "Cumulative" ) << Get Formula;
// --- Define the transaction times you care about ---
transactions = {100000, 200000, 300000, 400000, 500000};
// --- Build a results table with JMP-calculated fitted values ---
dt_sic = New Table( "Specific Intensity and Cumulative",
New Column( "Accumulated Transactions", Numeric, "Continuous", Values( transactions ) ),
New Column( "Intensity", Numeric, Formula( intensity_formula ) ),
New Column( "Cumulative", Numeric, Formula( cumulative_formula ) )
);
// Evaluate formulas and show the table
dt_sic << Recalculate;
dt_sic << Bring Window To Front;
Re : Script JMP pour générer une valeur cumulative après modélisationVotre script ressemble fortement à un script généré par l'IA... Notez que ceux-ci ne sont pas documentés dans l'index des scripts (<< Enregistrer la formule d'intensité et << Enregistrer la formule cumulative) mais vous pouvez le « comprendre » en bricolant
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Reliability/Bladder Cancer.jmp");
ra = dt << Recurrence Analysis(
Y(:Age),
Label(:Patient Number),
Cost(:Cost),
Grouping(:Treatment Group),
Event Plot(1),
Fit Model(
Scale Effects(:Age),
Run Model,
Model Type("Proportional Intensity Poisson Process")
)
);
fit = Report(ra)[OutlineBox("Fitted Recurrence Model")] << Get Scriptable Object;
intensity_col = fit << Save Intensity Formula;
cumul_col = fit << Save Cumulative Formula;
i_f = intensity_col << Get Formula;
c_f = cumul_col << Get Formula;
transactions = {1, 2, 3, 4, 5};
dt_s = New Table("Specific Intensity and Cumulative",
New Column("Age", Numeric, "Continuous", Values(transactions))
);
Eval(Eval Expr(
dt_s << New Column("Intensity", Numeric, Continuous, Formula(
Expr(NameExpr(i_f))
));
));
Eval(Eval Expr(
dt_s << New Column("Cumulative", Numeric, Continuous, Formula(
Expr(NameExpr(c_f))
));
));
Write();
@julien
Re : Script JMP pour générer une valeur cumulative après modélisationSalut, jthi
Merci, ça marche. Tout mon code est généré par l'IA. J'ai commencé à écrire des scripts en JMP la semaine dernière. J'arrive à peine à écrire une seule ligne de code tout seul. Existe-t-il un endroit où je peux apprendre à écrire des scripts JMP ?
Merci.
Re : Script JMP pour générer une valeur cumulative après modélisationUtilisez la journalisation améliorée dans JMP et découvrez les différentes méthodes permettant à JMP de créer des scripts pour vous. Vous trouverez également un Guide de script , un accès direct à l'Index des scripts depuis le menu Aide de JMP, et la Communauté JMP propose de nombreux contenus, comme Introduction au langage de script JMP , le Club des scripteurs JMP et le Livre de recettes JSL .