¿Qué inspiró esta solicitud de lista de deseos?
En mi empresa necesitamos calcular ppk y nuevos límites para conjuntos de datos que contienen ~10.000 filas x 10.000 columnas, y esto debe hacerse en varios conjuntos de datos cada dos semanas. Esto puede llevar mucho tiempo. He explorado la escritura de scripts para automatizar esto usando las plataformas de Distribución o Capacidad de Proceso y generé el ppk, el mejor ajuste, los parámetros para ese ajuste y un nuevo conjunto de límites basados en un ppk objetivo. Algunos colegas han escrito un script en Matlab para hacer lo mismo. A pesar de todos mis esfuerzos por optimizar mi script JMP, el script Matlab sigue siendo aproximadamente 10 veces más rápido.
¿Cuál es la mejora que le gustaría ver?
Me gustaría ver una función JSL que se pueda ejecutar en un script y no cree ninguna ventana de informe. Tendría estas entradas:
- los datos de una columna como una matriz de 1xn,
- una lista de distribuciones para ajustarse a los datos,
- el método de ppkm preferido a utilizar (puntuación, percentil),
- objetivo ppk
Y arrojaría lo siguiente:
- Nombre de la distribución con mejor ajuste (AICC mínimo)
- un vector o lista de los parámetros de ajuste para el tipo de distribución de mejor ajuste
- el ppk,
- método ppkm utilizado (zscore o percentil),
- aicc (es bueno tenerlo, pero no es esencial)
- nuevos límites, calculados utilizando el ppk objetivo (es bueno tenerlo, pero no es esencial)
Por último, debería poder ajustarse a estas distribuciones: Beta, Exponencial, Gamma, Johnson, Lognormal, Normal, Normal Mixture, SHASH y Weibull.
¿Por qué es importante esta idea?
(1) Quiero que mi equipo use JMP, pero es casi imposible convencerlos si mi script tarda 30 minutos en ejecutarse mientras que el script de Matlab hace lo mismo pero solo tarda 1 minuto. La razón por la que mi secuencia de comandos es más lenta se debe a toda la sobrecarga que supone crear una ventana de informe para 10.000 columnas. En cambio, sería fantástico si estos cálculos pudieran realizarse con una función que pueda omitir la generación de informes y solo proporcionar los resultados que necesito. Creo que esto sería mucho más rápido y más fácil de codificar.
(2) Debemos poder analizar conjuntos de datos> 10k columnas. He notado que mi script simplemente se detiene en medio de la ejecución cuando intento ejecutarlo con 12000 columnas. Todavía no he identificado la causa raíz, pero funciona bien para 3600 columnas o menos. Sospecho que puede haber una limitación en la generación de la ventana del informe que provoca un error.
Otras cosas que he probado
1. Tanto la función Ajustar censurado() como Ajustar transformación a normal() son similares a la función que estoy solicitando, en el sentido de que ambas se pueden usar para obtener los parámetros de ajuste. No calculan ppk ni nuevos límites, pero puedo usar los parámetros de ajuste para calcular ppk y nuevos límites yo mismo. Sin embargo, estas funciones sólo admiten un subconjunto de distribuciones que me gustaría tener.
2. Actualmente estoy explorando escribir algo en Python e incorporarlo a mi script existente, reemplazando el uso de las plataformas de Distribución y Capacidad de Proceso. Aunque esto me llevará mucho tiempo.
Lamentablemente, los scripts para reproducir mi problema son bastante largos. Se lo proporcionaré a pedido, pero espero que mi explicación del problema anterior sea suficiente.
Mis detalles:
JMP Pro 17.2.0
MacOS Ventura 13.6.1