Mi equipo utiliza con frecuencia el análisis de la prueba de estabilidad de degradación para determinar los valores predichos (con un 95 % de confianza) y los límites superior e inferior para una respuesta (valor y). En este punto, hemos estado ejecutando la prueba de estabilidad de degradación para cada variable y (la misma serie de valores de puntos de tiempo x) y luego hemos cambiado manualmente el tiempo de predicción longitudinal, guardando las predicciones en una nueva ventana de datos y luego extrayendo los valores predichos, de límite superior e inferior en un archivo de Excel separado. Estoy tratando de escribir un script que pueda ejecutar la prueba de estabilidad para una serie de puntos de tiempo de predicción longitudinal preseleccionados y guardar todos los datos (valor predicho, valores de límite superior e inferior) en una nueva tabla de datos. Sin embargo, sigo encontrando errores y no estoy seguro de si lo que estoy tratando de lograr es posible en la versión actual de JMP (v17.1.1). He adjuntado mi script a continuación.
// Use the current data table
dt = Current Data Table();
// Define the longitudinal prediction times
longitudinalPredictionTimes = {18, 24, 36, 48, 60};
// Create a new data table to store the results
resultsTable = New Table( "Prediction Results",
Add Rows( N Items( longitudinalPredictionTimes ) ),
New Column( "Prediction Time", Numeric, "Continuous" ),
New Column( "Prediction", Numeric, "Continuous" ),
New Column( "Lower Bound", Numeric, "Continuous" ),
New Column( "Upper Bound", Numeric, "Continuous" )
);
// Loop through each prediction time and perform the degradation analysis
For( i = 1, i <= N Items( longitudinalPredictionTimes ), i++,
predictionTime = longitudinalPredictionTimes[i];
// Perform degradation analysis
degradationReport = dt << Degradation(
Y( :"Purity (%)" ),
Time( :"Timepoint (days)" ),
Label( :Formulation ),
Application( Stability Test ),
Connect Data Markers( 0 ),
Show Fitted Lines( 1 ),
Show Spec Limits( 1 ),
Show Median Curves( 0 ),
Show Legend( 1 ),
No Tab List( 0 ),
Use Pooled MSE for Nonpoolable Model( 0 ),
Set Censoring Time( . ),
Show Residual Plot( 1 ),
Show Inverse Prediction Plot( 1 ),
Show Curve Interval( 1 ),
Longitudinal Prediction Time( predictionTime ),
Longitudinal Prediction Interval( Confidence Interval ),
Longitudinal Prediction Alpha( 0.05 ),
Inverse Prediction Interval( Confidence Interval ),
Inverse Prediction Alpha( 0.05 ),
Inverse Prediction Side( Lower One Sided )
);
// Extract the prediction, lower bound, and upper bound from the report
predictionPlot = degradationReport[Outline Box( "Diagnostics and Predictions" )][Outline Box( "Prediction Plot" )];
prediction = predictionPlot[Number Col Box( "Predicted value of Purity (%) at Timepoint (days)=" || Char( predictionTime ) )][1];
lowerBound = predictionPlot[Number Col Box( "Lower 95% Confidence Limit" )][1];
upperBound = predictionPlot[Number Col Box( "Upper 95% Confidence Limit" )][1];
// Add the results to the new table
resultsTable:Prediction Time[i] = predictionTime;
resultsTable:Prediction[i] = prediction;
resultsTable:Lower Bound[i] = lowerBound;
resultsTable:Upper Bound[i] = upperBound;
);
// Show the results table
resultsTable << Show WindowCreo que hay algunos errores de programación.
Esto es probablemente lo que necesitas hacer.

En primer lugar, en la línea 59, necesitas una llamada de "informe" que envuelva el objeto devuelto de la llamada de la plataforma. Este "informe" te proporciona una visualización verdadera, que puedes navegar usando la suscripción al cuadro de esquema, etc.
En la línea 60, devuelve un objeto programable al que puedes enviar comandos que ves en el menú desplegable, como este:

Línea 61, envía un comando como si hicieras clic en el elemento del menú.
Línea 62, haces algo con los números que necesitas.
Por último, cierra esa tabla de datos sin guardar nada, porque ya has terminado con ella.
Desde entonces encontré una solución alternativa que calcula los valores del intervalo de confianza del 95 % utilizando la función bivariada.