cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Browse apps to extend the software in the new JMP Marketplace
%3CLINGO-SUB%20id%3D%22lingo-sub-796235%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%C2%BFEs%20posible%20extraer%20l%C3%ADmites%20de%20intervalos%20de%20confianza%20longitudinales%20de%20la%20prueba%20de%20estabilidad%20de%20degradaci%C3%B3n%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-796235%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EMi%20equipo%20utiliza%20con%20frecuencia%20el%20an%C3%A1lisis%20de%20la%20prueba%20de%20estabilidad%20de%20degradaci%C3%B3n%20para%20determinar%20los%20valores%20predichos%20(con%20un%2095%20%25%20de%20confianza)%20y%20los%20l%C3%ADmites%20superior%20e%20inferior%20para%20una%20respuesta%20(valor%20y).%20En%20este%20punto%2C%20hemos%20estado%20ejecutando%20la%20prueba%20de%20estabilidad%20de%20degradaci%C3%B3n%20para%20cada%20variable%20y%20(la%20misma%20serie%20de%20valores%20de%20puntos%20de%20tiempo%20x)%20y%20luego%20hemos%20cambiado%20manualmente%20el%20tiempo%20de%20predicci%C3%B3n%20longitudinal%2C%20guardando%20las%20predicciones%20en%20una%20nueva%20ventana%20de%20datos%20y%20luego%20extrayendo%20los%20valores%20predichos%2C%20de%20l%C3%ADmite%20superior%20e%20inferior%20en%20un%20archivo%20de%20Excel%20separado.%20Estoy%20tratando%20de%20escribir%20un%20script%20que%20pueda%20ejecutar%20la%20prueba%20de%20estabilidad%20para%20una%20serie%20de%20puntos%20de%20tiempo%20de%20predicci%C3%B3n%20longitudinal%20preseleccionados%20y%20guardar%20todos%20los%20datos%20(valor%20predicho%2C%20valores%20de%20l%C3%ADmite%20superior%20e%20inferior)%20en%20una%20nueva%20tabla%20de%20datos.%20Sin%20embargo%2C%20sigo%20encontrando%20errores%20y%20no%20estoy%20seguro%20de%20si%20lo%20que%20estoy%20tratando%20de%20lograr%20es%20posible%20en%20la%20versi%C3%B3n%20actual%20de%20JMP%20(v17.1.1).%20He%20adjuntado%20mi%20script%20a%20continuaci%C3%B3n.%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%2F%2F%20Use%20the%20current%20data%20table%0Adt%20%3D%20Current%20Data%20Table()%3B%0A%0A%2F%2F%20Define%20the%20longitudinal%20prediction%20times%0AlongitudinalPredictionTimes%20%3D%20%7B18%2C%2024%2C%2036%2C%2048%2C%2060%7D%3B%0A%0A%2F%2F%20Create%20a%20new%20data%20table%20to%20store%20the%20results%0AresultsTable%20%3D%20New%20Table(%20%22Prediction%20Results%22%2C%0AAdd%20Rows(%20N%20Items(%20longitudinalPredictionTimes%20)%20)%2C%0ANew%20Column(%20%22Prediction%20Time%22%2C%20Numeric%2C%20%22Continuous%22%20)%2C%0ANew%20Column(%20%22Prediction%22%2C%20Numeric%2C%20%22Continuous%22%20)%2C%0ANew%20Column(%20%22Lower%20Bound%22%2C%20Numeric%2C%20%22Continuous%22%20)%2C%0ANew%20Column(%20%22Upper%20Bound%22%2C%20Numeric%2C%20%22Continuous%22%20)%0A)%3B%0A%0A%2F%2F%20Loop%20through%20each%20prediction%20time%20and%20perform%20the%20degradation%20analysis%0AFor(%20i%20%3D%201%2C%20i%20%26lt%3B%3D%20N%20Items(%20longitudinalPredictionTimes%20)%2C%20i%2B%2B%2C%0ApredictionTime%20%3D%20longitudinalPredictionTimes%5Bi%5D%3B%0A%0A%2F%2F%20Perform%20degradation%20analysis%0AdegradationReport%20%3D%20dt%20%26lt%3B%26lt%3B%20Degradation(%0AY(%20%3A%22Purity%20(%25)%22%20)%2C%0ATime(%20%3A%22Timepoint%20(days)%22%20)%2C%0ALabel(%20%3AFormulation%20)%2C%0AApplication(%20Stability%20Test%20)%2C%0AConnect%20Data%20Markers(%200%20)%2C%0AShow%20Fitted%20Lines(%201%20)%2C%0AShow%20Spec%20Limits(%201%20)%2C%0AShow%20Median%20Curves(%200%20)%2C%0AShow%20Legend(%201%20)%2C%0ANo%20Tab%20List(%200%20)%2C%0AUse%20Pooled%20MSE%20for%20Nonpoolable%20Model(%200%20)%2C%0ASet%20Censoring%20Time(%20.%20)%2C%0AShow%20Residual%20Plot(%201%20)%2C%0AShow%20Inverse%20Prediction%20Plot(%201%20)%2C%0AShow%20Curve%20Interval(%201%20)%2C%0ALongitudinal%20Prediction%20Time(%20predictionTime%20)%2C%0ALongitudinal%20Prediction%20Interval(%20Confidence%20Interval%20)%2C%0ALongitudinal%20Prediction%20Alpha(%200.05%20)%2C%0AInverse%20Prediction%20Interval(%20Confidence%20Interval%20)%2C%0AInverse%20Prediction%20Alpha(%200.05%20)%2C%0AInverse%20Prediction%20Side(%20Lower%20One%20Sided%20)%0A)%3B%0A%0A%2F%2F%20Extract%20the%20prediction%2C%20lower%20bound%2C%20and%20upper%20bound%20from%20the%20report%0ApredictionPlot%20%3D%20degradationReport%5BOutline%20Box(%20%22Diagnostics%20and%20Predictions%22%20)%5D%5BOutline%20Box(%20%22Prediction%20Plot%22%20)%5D%3B%0Aprediction%20%3D%20predictionPlot%5BNumber%20Col%20Box(%20%22Predicted%20value%20of%20Purity%20(%25)%20at%20Timepoint%20(days)%3D%22%20%7C%7C%20Char(%20predictionTime%20)%20)%5D%5B1%5D%3B%0AlowerBound%20%3D%20predictionPlot%5BNumber%20Col%20Box(%20%22Lower%2095%25%20Confidence%20Limit%22%20)%5D%5B1%5D%3B%0AupperBound%20%3D%20predictionPlot%5BNumber%20Col%20Box(%20%22Upper%2095%25%20Confidence%20Limit%22%20)%5D%5B1%5D%3B%0A%0A%2F%2F%20Add%20the%20results%20to%20the%20new%20table%0AresultsTable%3APrediction%20Time%5Bi%5D%20%3D%20predictionTime%3B%0AresultsTable%3APrediction%5Bi%5D%20%3D%20prediction%3B%0AresultsTable%3ALower%20Bound%5Bi%5D%20%3D%20lowerBound%3B%0AresultsTable%3AUpper%20Bound%5Bi%5D%20%3D%20upperBound%3B%0A)%3B%0A%0A%2F%2F%20Show%20the%20results%20table%0AresultsTable%20%26lt%3B%26lt%3B%20Show%20Window%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-796235%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EAutomatizaci%C3%B3n%20y%20scripting%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EAn%C3%A1lisis%20y%20modelado%20de%20datos%20b%C3%A1sicos%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-796262%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20%C2%BFEs%20posible%20extraer%20l%C3%ADmites%20de%20intervalos%20de%20confianza%20longitudinales%20de%20la%20prueba%20de%20estabilidad%20de%20degradaci%C3%B3n%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-796262%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ECreo%20que%20hay%20algunos%20errores%20de%20programaci%C3%B3n.%3C%2FP%3E%0A%3CP%3EEsto%20es%20probablemente%20lo%20que%20necesitas%20hacer.%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22peng_liu_0-1725657121860.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22peng_liu_0-1725657121860.png%22%20style%3D%22width%3A%20934px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22peng_liu_0-1725657121860.png%22%20style%3D%22width%3A%20934px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F68006iFA84ACE764512C36%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22peng_liu_0-1725657121860.png%22%20alt%3D%22peng_liu_0-1725657121860.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EEn%20primer%20lugar%2C%20en%20la%20l%C3%ADnea%2059%2C%20necesitas%20una%20llamada%20de%20%22informe%22%20que%20envuelva%20el%20objeto%20devuelto%20de%20la%20llamada%20de%20la%20plataforma.%20Este%20%22informe%22%20te%20proporciona%20una%20visualizaci%C3%B3n%20verdadera%2C%20que%20puedes%20navegar%20usando%20la%20suscripci%C3%B3n%20al%20cuadro%20de%20esquema%2C%20etc.%3C%2FP%3E%0A%3CP%3EEn%20la%20l%C3%ADnea%2060%2C%20devuelve%20un%20objeto%20programable%20al%20que%20puedes%20enviar%20comandos%20que%20ves%20en%20el%20men%C3%BA%20desplegable%2C%20como%20este%3A%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22peng_liu_1-1725657293247.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22peng_liu_1-1725657293247.png%22%20style%3D%22width%3A%20363px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22peng_liu_1-1725657293247.png%22%20style%3D%22width%3A%20363px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F68007i5B5F10FC70DB0ADC%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22peng_liu_1-1725657293247.png%22%20alt%3D%22peng_liu_1-1725657293247.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EL%C3%ADnea%2061%2C%20env%C3%ADa%20un%20comando%20como%20si%20hicieras%20clic%20en%20el%20elemento%20del%20men%C3%BA.%3C%2FP%3E%0A%3CP%3EL%C3%ADnea%2062%2C%20haces%20algo%20con%20los%20n%C3%BAmeros%20que%20necesitas.%3C%2FP%3E%0A%3CP%3EPor%20%C3%BAltimo%2C%20cierra%20esa%20tabla%20de%20datos%20sin%20guardar%20nada%2C%20porque%20ya%20has%20terminado%20con%20ella.%3C%2FP%3E%0A%3CP%3E%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-800482%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20%C2%BFEs%20posible%20extraer%20l%C3%ADmites%20de%20intervalos%20de%20confianza%20longitudinales%20de%20la%20prueba%20de%20estabilidad%20de%20degradaci%C3%B3n%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-800482%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EDesde%20entonces%20encontr%C3%A9%20una%20soluci%C3%B3n%20alternativa%20que%20calcula%20los%20valores%20del%20intervalo%20de%20confianza%20del%2095%20%25%20utilizando%20la%20funci%C3%B3n%20bivariada.%3C%2FP%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
yaroslaw
Level I

Possible to extract longitudinal confidence interval bounds from degradation stability test?

My team frequently uses the Degradation Stability Test analysis to determine the predicted (95% confidence) values and upper and lower bounds for a response (y value). At this point we've been running the degradation stability test for each y variable (same series of x time point values) and then manually changing the longitudinal prediction time, saving the predictions into a new data window and then extracting the predicted, upper, and lower bound values into a separate Excel file. I'm trying to write a script that can run the stability test for a number of pre-selected longitudinal prediction time points and save all of the data (predicted value, upper, and lower bound values) into a new data table. However, I keep running into errors and I'm not sure whether what I'm trying to achieve is possible in the current version of JMP (v17.1.1). I've attached my script below.

// 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 Window
2 REPLIES 2
peng_liu
Staff

Re: Possible to extract longitudinal confidence interval bounds from degradation stability test?

I believe there are some programming errors.

Following is probably what you need to do.

peng_liu_0-1725657121860.png

First on Line 59, you need a "report" call, wrapping around the object returned from platform calling. This "report" gives you a display true, which you can navigate using outline box subscription, etc.

On Line 60, it returns a scriptable object, to which you can send commands that you see in the drop down menu. Such as this:

peng_liu_1-1725657293247.png

Line 61, send such a command, as if you clicked the menu item.

Line 62, you do something with the numbers that you need.

Last, you close that data table without saving anything, because you have done with it.

 

yaroslaw
Level I

Re: Possible to extract longitudinal confidence interval bounds from degradation stability test?

I've since found a workaround that calculates the 95% confidence interval values using the bivariate function.