¿Cómo configuro restricciones para la variable categórica?Estoy tratando de crear un diseño con unas 10 variables categóricas, cada una con dos niveles (0,1).Me gustaría que mi diseño modele los efectos principales y todas las interacciones binarias.Cuando utilizo los valores predeterminados de JMP, obtengo un diseño D-óptimo tal que el número promedio de variables categóricas en el nivel "1" es de alrededor de 5. ¿Hay alguna manera de restringir el diseño de modo que solo permita como máximo 3 de las variables para estar en el nivel "1"?(Entiendo que esto puede requerir más ejecuciones, pero estoy de acuerdo con eso).
Gracias.
Re: ¿Cómo configuro restricciones para variables categóricas?Cuando dice que no es igual, está restringiendo demasiado el algoritmo con solo 100 ejecuciones. Es posible que no pueda estimar todos los términos del modelo.
Por ejemplo, cuando restringe a solo 3 factores en su configuración alta, hay 120 combinaciones posibles. Incluso si elige las 120 combinaciones, no puede estimar un modelo de efectos principales. ¿Por qué? Porque tienes una singularidad incorporada. Específicamente, la intersección (una columna de 1 en la matriz de diseño) sería igual a una combinación lineal de todos los factores: 1/3*(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10 ). Por lo tanto, no se puede completar el análisis y no se pudo encontrar ningún diseño para tal modelo.
Es mejor que vuelvas a decir "no más de" 3 o 4 o el nivel que desees.
Re: ¿Cómo configuro restricciones para variables categóricas?Dan, gracias de nuevo por una respuesta tan útil.Felizmente estoy buscando un buen diseño, pero me encuentro bloqueado de nuevo...
Estoy tratando de hacer un gráfico que represente el Diagnóstico de diseño (de particular interés es la Varianza promedio de predicción) como una función del número de factores categóricos en el nivel alto.En todos los casos, tengo diez factores de dos niveles y solo permito un número determinado de ejecuciones, 100.Estoy esperando que el diseño se degrade cuando tengo "demasiados" o "muy pocos" permitidos en el nivel alto.
Por lo tanto, estoy ejecutando el script DOE una y otra vez con una serie de restricciones diferentes sobre la cantidad de factores permitidos a alto nivel, es decir:
Combinaciones no permitidas( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 2
Combinaciones no permitidas( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 3
Combinaciones no permitidas( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 4
Combinaciones no permitidas( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 5
Combinaciones no permitidas( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 6
Combinaciones no permitidas( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 7
Combinaciones no permitidas( X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 8
(Sería bueno tener esto en un bucle, pero solo copio y pego el script).
¡Lo que encuentro es que solo los que tienen 2 u 8 factores en los niveles altos convergen y entregan el diseño!. Para los demás, recibo un mensaje de error "el diseñador óptimo no pudo converger".¿Hay alguna forma de evitar esto?
Re: ¿Cómo configuro restricciones para variables categóricas?No necesita usar el script para crear el diseño. El script es solo una forma conveniente de configurar todo el trabajo.
NECESITA el script como lo publiqué para las restricciones. Dado su deseo de probar diferentes escenarios, recomendaría ir con la GUI, pero especifique las restricciones lineales como un "Secuencia de comandos de combinaciones no permitidas" y pegue la secuencia de comandos que proporcioné. Esto le permitirá probar algo, y si no le gusta, simplemente haga clic en el botón Atrás, haga un cambio y vuelva a intentarlo.
En cuanto a la cantidad de ejecuciones, la cantidad mínima de ejecuciones es la cantidad total de términos del modelo que intenta estimar. Para 10 factores de 2 niveles tendrías un intercepto (1) + efectos principales (10) + interacciones bidireccionales (45). Eso da un total de 56 términos, por lo que es el número mínimo de carreras.
El número predeterminado de ejecuciones tiene algunos criterios incorporados que proporcionarán algunos grados de libertad para el error (generalmente 4) y lucharán por la ortogonalidad (hasta cierto punto). No es una fórmula directa. Para esta misma situación, el número predeterminado de ejecuciones es 60 (razón por la cual Ryan generó ese diseño y notó 4 grados de libertad por error). El número predeterminado de ejecuciones no tiene en cuenta ninguna restricción (¡que yo sepa!). Por lo tanto, si crea este mismo diseño con o sin restricciones, el valor predeterminado permanece en 60. ¡El valor predeterminado NO garantiza un diseño que satisfaga sus necesidades! Como notó, cuando agrega restricciones, encontrar un buen diseño puede ser más desafiante y, a menudo, requerirá más ejecuciones. Dado que 60 dio resultados horribles, vaya con un número más alto. No existe un cálculo fácil que yo sepa que le diga el número de ejecuciones requeridas para obtener un cierto nivel para la varianza promedio de la predicción (¡pero no se olvide de la VARIANZA en la varianza de la predicción! En otras palabras, no se olvide de la parcela de fracción de espacio de diseño).
¡Espero que esto ayude y feliz búsqueda de un buen diseño!
Re: ¿Cómo configuro restricciones para variables categóricas?¡Gracias Ryan y Dan!
Tengo el script ejecutándose y puedo hacer los diseños. Agregué todas las interacciones binarias entre las 10 variables, pero ahora surge otra pregunta. Cuando me limito a un máximo de 3 factores en el nivel superior y permito solo 60 ejecuciones (como en el script), los Diagnósticos de diseño se ven realmente horribles (la eficiencia D es muy baja y la Varianza promedio de predicción es muy alta). Parece que cuando realizo los diseños sin restricciones a través de la GUI, hay un cálculo de fondo para el número mínimo y predeterminado de ejecuciones que se completa en función de los términos del modelo. Cuando uso el script, puedo elegir cuántas ejecuciones (Ryan eligió 60), pero ¿hay alguna forma de invocar ese cálculo de fondo para el número predeterminado de ejecuciones?
(Lo que realmente estoy tratando de hacer es hacer algunos gráficos para comprender las compensaciones entre la cantidad de variables de dos niveles, la cantidad máxima de variables en el nivel superior por ejecución y la cantidad total de ejecuciones necesarias para lograr una Varianza promedio de predicción determinada. )
Re: ¿Cómo configuro restricciones para variables categóricas?El enfoque de Ryan es exactamente lo que iba a sugerir. Sin embargo, si REALMENTE desea dejar sus factores como categóricos (y suponiendo que se llamen x1 - x10), puede especificar un script de Combinaciones no permitidas que se vea así:
(x1 == 2) + (x2 == 2) + (x3 == 2) + (x4 == 2) + (x5 == 2) + (x6 == 2) + (x7 == 2)
+(x8 == 2) + (x9 == 2) + (x10 == 2) > 3
Tenga en cuenta que los factores son categóricos, por lo que cada uno de los X# == 2 en realidad dice si ese factor está en el segundo nivel.
Re: ¿Cómo configuro restricciones para variables categóricas?Cuando me encuentro con esto, generalmente convierto el categórico en un factor numérico discreto 0/1, y luego uso combinaciones no permitidas para asegurar que la suma no exceda el número deseado de 1. Para 10 entradas (modelo de efectos principales, pero solo para darte una idea), algo como esto:
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ), Add Factor( Discrete Numeric, {0, 1}, "X1", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X2", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X3", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X4", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X5", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X6", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X7", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X8", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X9", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X10", 0 ), Set Random Seed( 1550400750 ), Number of Starts( 3017 ),
Add Term( {1, 0} ), Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ), Add Term( {4, 1} ),
Add Term( {5, 1} ), Add Term( {6, 1} ), Add Term( {7, 1} ), Add Term( {8, 1} ), Add Term( {9, 1} ),
Add Term( {10, 1} ), Set Sample Size( 16 ), Disallowed Combinations(
X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 > 3
), Make Design}
);