기술 지원팀에서는 JMP 실험 계획 플랫폼에서 요인 제약 조건 사용과 관련된 질문을 자주 받습니다. 선형 제약 조건, 허용되지 않는 조합 필터, 허용되지 않는 조합 스크립트의 세 가지 옵션은 설계 공간을 제한하는 기능을 제공합니다. 그러나 때때로 사용자는 결과 설계가 자신이 정의한 제약 조건을 준수하지 않는다고 보고합니다.
이 블로그 게시물에서는 일반적으로 사용자에게 권장하는 허용되지 않는 조합 스크립트의 사용에 대해 구체적으로 다룹니다. 허용되지 않는 조합 필터보다 사용자 친화적이기 때문입니다. 선형 제약 옵션은 매우 간단하지만 이에 대한 안내를 찾을 수 있습니다.여기필요한 경우.
허용되지 않는 조합 스크립트 옵션을 사용하면 JSL 스크립트를 사용하여 디자인 공간에 대한 제한을 정의할 수 있습니다. 염두에 두어야 할 핵심 측면은 어떤 요인 수준의 조합을 지정하는 것입니다.~ 아니다디자인에서 허용됩니다. 입력된 JSL 스크립트는 부울 표현식으로 평가해야 합니다. 표현식이 참이면 해당 조합이 디자인에서 발생하는 것을 허용하지 않습니다. 스크립트는 형태가 선형적일 필요가 없으므로 비선형 제약 조건을 지정할 수 있다는 추가 이점이 있습니다. 함수를 사용할 수도 있습니다(지시자 함수는 특히 유용할 수 있으며, 이 게시물의 뒷부분에 있는 예 중 하나에서 설명됩니다).
허용되지 않는 조합 스크립트는 연속, 불연속 숫자 및 범주형 요인과 함께 사용할 수 있지만 혼합 또는 차단 요인에서는 지원되지 않습니다. 혼합 시나리오에서 제한을 정의하는 대체 방법은 이후 예제에서 설명합니다.
표현식에서 연속 및 불연속 숫자 요인의 수준은 숫자 값으로 참조됩니다. 범주형 요인의 수준은 연관된 순서형 값(1, 2, 3 등) 또는 명명된 수준 값으로 참조될 수 있습니다.
두 개의 연속형 요인, 하나의 4단계 불연속형 숫자형 요인, 하나의 3단계 범주형 요인이 포함된 맞춤형 디자인을 고려해 보겠습니다.
위에 설명된 요소를 사용하여 시작 DOE 대화 상자를 재생성하는 스크립트는 다음과 같습니다.
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, 100, 105, "X2", 0 ),
Add Factor( Discrete Numeric, {10, 20, 30, 40}, "X3", 0 ),
Add Factor( Categorical, {"A", "B", "C"}, "X4", 0 ),
Add Term( {1, 0} ), Add Term( {1, 1} ),
Add Term( {2, 1} ), Add Term( {3, 1} ), Add Potential Term( {3, 2} ),
Add Potential Term( {3, 3} ), Add Term( {4, 1} ),
Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ),
Add Alias Term( {1, 1}, {4, 1} ), Add Alias Term( {2, 1}, {3, 1} ),
Add Alias Term( {2, 1}, {4, 1} ), Add Alias Term( {3, 1}, {4, 1} ),
Set Sample Size( 12 ), Simulate Responses( 1 ), Save X Matrix( 0 )}
);
예를 들어, 설계에서 요인 X1이 1의 값을 취하는 동시에 요인 X4가 A의 값을 취하는 런이 발생할 수 없다고 가정합니다. 이 간단한 허용되지 않는 조합 스크립트는 다음과 같이 작성됩니다.
X1 == 1 & X4 == 1
또는
X1 == 1 & X4 == "A"
첫 번째 표현식은 X4 = A 값에 대한 연관된 순서 값을 사용하고 두 번째 표현식은 단순히 문자 값을 참조합니다. 둘 다 허용됩니다. 이 표현식은 어떤 런도 X1 = 1이고 X4 = A가 동시에 발생하는 것을 방지합니다.
스크립트를 실행한 후, 요소 제약 조건 정의 섹션에서 허용되지 않는 조합 스크립트 사용 옆에 있는 라디오 버튼을 선택하고 위의 표현식 중 하나를 입력합니다.
스크립트에 추가적인 디자인 공간 제한을 추가하려면 OR(|) 연산자를 사용합니다. 이 연산자는 디자인에 표현식 1의 기준을 충족하는 실행이 포함될 수 없는 경우 표현식을 구분하는 데 필요합니다.또는표현 2,또는표현 3 등
동일한 설계에서 X1과 X2의 합이 X3의 값이 3일 때 102보다 클 수 없다고 가정합니다. 이러한 허용되지 않는 조합은 다음과 같이 작성됩니다.
((X1 + X2) > 102 & X3 == 30)
| 연산자를 사용하면 허용되지 않는 조합 스크립트 전체는 다음과 같이 작성됩니다.
(X1 == 1 & X4 == 1) |
((X1 + X2) > 102 & X3 == 30)
디자인을 만든 후에는 JMP가 아래와 같이 스크립트를 재구성하여 범주형 요인 수준을 문자 값으로 표현하고 구문 분석을 통해 불필요한 괄호를 제거하는 것을 알 수 있습니다.

사용자가 우리에게 제시하는 몇 가지 일반적인 시나리오는 다음과 같습니다.
1) 혼합 계수로는 허용되지 않는 조합을 지원할 수 없으므로 혼합 설계에서 설계 공간에 대한 제한을 어떻게 지정합니까?
혼합 요인 대신 이산 숫자 및/또는 연속 요인을 사용하면 이를 처리하는 몇 가지 다른 방법이 있습니다. 첫째, 허용되지 않는 조합 스크립트에 등식 제약 조건을 부과할 수 있습니다(그리고 다른 필요한 제약 조건을 추가할 수 있습니다). JMP는 엄격한 등식 제약 조건(예: != 연산자 사용 또는 한 조건에서 < 및 > 엄격한 부등식 사용)을 사용하여 실행 가능한 설계를 찾을 수 없을 가능성이 큽니다. 따라서 요인 값의 합을 지정하는 표현식을 사용해야 합니다.가까이에1.
혼합 요인이 3개 있고 혼합 합이 1이라고 가정해 보겠습니다. 우리는 요인 중 하나(X1)가 0, 0.25, 0.5, 0.75, 1의 이산 수준만 취할 수 있다는 것을 알고 있습니다. 다른 두 요인(X2와 X3)은 0과 1 사이의 모든 값을 취할 수 있습니다. 따라서 첫 번째 요인을 5단계 이산 숫자 요인으로 정의하고 다른 두 요인을 연속 요인으로 정의하는 것이 가장 합리적입니다.세 가지 요소의 합이 대략 1이 되도록 하기 위해 다음과 같이 의사 등식 제약 조건을 지정할 수 있습니다.
X1 + X2 + X3 > 1.001 | X1 + X2 + X3 < 0.999
이는 합계를 1/1000 이내로 제한합니다. 이 질문의 원동력이 혼합 설계의 맥락에서 요인 제약 조건을 지정할 수 있다는 점을 고려할 때, 설계에서 X3의 값이 X2의 값보다 커지는 것을 방지하려고 한다고 가정합니다. 이 경우 허용되지 않는 조합 스크립트 필드에 입력할 전체 표현식은 다음과 같습니다.
X1 + X2 + X3 > 1.001 | X1 + X2 + X3 < 0.999 | X3 > X2
아래 JSL 스크립트를 실행하여 이 디자인의 예를 만들어보세요.
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Discrete Numeric, {0, 0.25, 0.5, 0.75, 1}, "X1", 0 ),
Add Factor( Continuous, 0, 1, "X2", 0 ), Add Factor( Continuous, 0, 1, "X3", 0 ),
Set Random Seed( 12345 ), Number of Starts( 1000 ), Add Term( {1, 1} ),
Add Term( {1, 2} ), Add Term( {1, 3} ), Add Term( {1, 4} ), Add Term( {2, 1} ),
Add Term( {3, 1} ), Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ),
Add Alias Term( {2, 1}, {3, 1} ), Set Sample Size( 20 ),
Disallowed Combinations( X1 + X2 + X3 > 1.001 | X1 + X2 + X3 < 0.999 | X3 > X2 ),
Make Design}
);
세 가지 요인의 값을 합하면 정확히 1이 되지 않으므로 결과 설계 표에서 연속형 요인의 값 중 하나를 약간 조정해야 합니다.
원래 질문에 대한 두 번째로 더 깔끔한 접근 방식은 초기 사용자 지정 디자인 대화 상자에 X1(5단계 이산 숫자 요인)과 X2(0~1 범위의 연속 요인)만 입력하는 것입니다. X3의 값은 1 - X1 - X2 공식을 사용하여 디자인 테이블에서 쉽게 생성할 수 있습니다. X1과 X2만 있는 초기 디자인 설정에서 허용되지 않는 조합 스크립트를 사용하여 X1과 X2의 합이 0보다 작거나 1보다 크지 않도록 합니다. 또한 X3이 X2보다 클 수 없다는 제한을 다시 추가합니다. X3 = 1 - X1 - X2이므로 X3 > X2 제한을 2*X2 + X1 < 1로 다시 쓰고 OR 연산자와 함께 표현식에 포함할 수 있습니다.
이 시나리오에서 허용되지 않는 조합 스크립트 전체는 다음과 같습니다.
X1 + X2 > 1 | X1 + X2 < 0 | 2 * X2 + X1 < 1
이 예시 디자인을 만드는 전체 스크립트는 다음과 같습니다.
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ), Add Factor(
Discrete Numeric,
{0, 0.25, 0.5, 0.75, 1},
"X1",
0
), Add Factor( Continuous, 0, 1, "X2", 0 ),
Number of Starts( 1000 ), Add Term( {1, 0} ), Add Term( {1, 1} ), Add Potential Term( {1, 2} ),
Add Potential Term( {1, 3} ), Add Potential Term( {1, 4} ), Add Term( {2, 1} ),
Add Alias Term( {1, 1}, {2, 1} ), Set Sample Size( 20 ),
Disallowed Combinations( X1 + X2 > 1 | X1 + X2 < 0 | 2 * X2 + X1 < 1 ),
Simulate Responses( 1 ), Save X Matrix( 0 ), Make Design}
);
위의 두 가지 접근 방식 모두에서 설계 표의 요인의 열 속성은 설계의 진정한 혼합 특성을 반영하기 위해 마지막에 수정되어야 합니다. 지침에 따라 속성을 수동으로 추가할 수 있습니다.여기 우리 문서에서. 그러나 더 빠른 방법은 실제 혼합 계수를 사용하여 다른 사용자 정의 디자인을 만들고(허용되지 않는 조합이 필요 없음) 테이블을 만드는 것입니다(템플릿으로). 그런 다음 디자인을 해당 "템플릿" 테이블에 복사합니다. 이렇게 하면 혼합 계수에 대한 적절한 열 속성이 있는지 확인합니다.
2) 단일 실험에서 최대 요인 수가 "활성화"될 수 있도록 지정하려면 어떻게 해야 합니까? 요인이 여섯 개 있지만, 그중 최대 세 개만 실험 실행에서 0보다 큰 값을 가질 수 있다고 가정합니다. 우리는 다양한 수준의 여섯 개의 이산 숫자 요인(X1 - X6)을 정의하기로 했습니다.
기억해야 할 필수적인 도구는 허용되지 않는 조합 스크립트가 함수를 허용한다는 것입니다. 이 시나리오에서 지표 함수는 핵심입니다. 예를 들어, 지표 함수(X1 > 0)는 X1이 0보다 크면 1로 해석되고 그렇지 않으면 0으로 해석됩니다. 따라서 6가지 요인 모두에 대한 지표 함수를 합산한 다음 합계가 3보다 큰 경우를 제외하면 설계 공간이 제한되어 단일 실행에서 3개 이상의 요인이 활성화되지 않습니다. 허용되지 않는 조합 스크립트는 다음과 같이 작성됩니다.
(X1 > 0) + (X2 > 0) + (X3 > 0) + (X4 > 0) + (X5 > 0) + (X6 > 0) > 3
그리고, 이 예제 디자인은 다음 JSL 스크립트로 만들 수 있습니다:
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ), Add Factor( Discrete Numeric, {0, 1, 2, 3}, "X1", 0 ),
Add Factor( Discrete Numeric, {0, 1, 2, 3}, "X2", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X3", 0 ),
Add Factor( Discrete Numeric, {0, 1, 2, 3}, "X4", 0 ), Add Factor( Discrete Numeric, {0, 1, 5}, "X5", 0 ),
Add Factor( Discrete Numeric, {0, 1, 2, 3}, "X6", 0 ), Add Term( {1, 0} ), Add Term( {1, 1} ), Add Potential Term( {1, 2} ),
Add Potential Term( {1, 3} ), Add Term( {2, 1} ), Add Potential Term( {2, 2} ), Add Potential Term( {2, 3} ),
Add Term( {3, 1} ), Add Term( {4, 1} ), Add Potential Term( {4, 2} ), Add Potential Term( {4, 3} ), Add Term( {5, 1} ),
Add Potential Term( {5, 2} ), Add Term( {6, 1} ), Add Potential Term( {6, 2} ), Add Potential Term( {6, 3} ),
Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ), Add Alias Term( {1, 1}, {4, 1} ),
Add Alias Term( {1, 1}, {5, 1} ), Add Alias Term( {1, 1}, {6, 1} ), Add Alias Term( {2, 1}, {3, 1} ),
Add Alias Term( {2, 1}, {4, 1} ), Add Alias Term( {2, 1}, {5, 1} ), Add Alias Term( {2, 1}, {6, 1} ),
Add Alias Term( {3, 1}, {4, 1} ), Add Alias Term( {3, 1}, {5, 1} ), Add Alias Term( {3, 1}, {6, 1} ),
Add Alias Term( {4, 1}, {5, 1} ), Add Alias Term( {4, 1}, {6, 1} ), Add Alias Term( {5, 1}, {6, 1} ), Set Sample Size( 16 ),
Disallowed Combinations( (X1 > 0) + (X2 > 0) + (X3 > 0) + (X4 > 0) + (X5 > 0) + (X6 > 0) > 3 ),
Save X Matrix( 0 ), Make Design}
);
스크립트를 실행한 후에는 설계의 모든 실행에서 최소 3개의 요소가 0의 값을 갖는 것을 확인할 수 있습니다.
이러한 시나리오 중 하나에서 JMP 경고 "최적의 디자이너가 수렴에 실패했습니다"가 나타나면 제약 조건이 너무 제한적일 수 있습니다. 가능하다면 제약 조건을 완화하여좌표 교환 알고리즘디자인을 찾을 수 있는 더 나은 기회. 또한, 증가를 시도할 수 있습니다.시작 횟수또는 가정된 모델에서 용어의 추정 가능성을 변경합니다.가능하다면대신에필요한수렴이 가능한지 살펴보자.
JMP에서 설계 공간 제한 옵션을 사용하는 것에 관한 질문이 있거나, 의도한 제약 조건을 감안할 때 설계에서 합리적이지 않은 실행이 생성되는 경우 언제든지 기술 지원팀에 문의해 주세요.