안녕하세요 여러분,
프로파일러에 모델이 있는데 다양한 설정을 저장하고 싶습니다. 일반적으로 저는 이 작업을 수행하기 위해 프로파일러의 매개 변수 설정 기억을 사용합니다. 그러나 이 특별한 경우에는 매개변수 X1부터 X4까지의 모든 조합을 -1부터 +1까지 0.1단계로 저장하고 싶습니다.
이 작업을 수행하려면 다음 JSL 코드에 대한 도움이 필요합니다.
Profiler(
Y( :Y ),
Profiler(
1,
Confidence Intervals( 1 ),
Term Value(
:"X1"n( 0, Lock( 0 ), Show( 1 ) ),
:"X2"n( 0, Lock( 0 ), Show( 1 ) ),
:"X3"n( 0, Lock( 0 ), Show( 1 ) ),
:"X4"n( 0, Lock( 0 ), Show( 1 ) )
),
<FONT color="#FF0000">설정 기억( "설정 1", 차이점 보고서( 1 ) ), 용어 값( :"X1"n( 0, 잠금( 0 ), 표시( 1 ) ), :"X2"n( 0, 잠금( 0 ), 표시( 1 ) ), :"X3"n( 0, 잠금( 0 ), 표시( 1 ) ), :"X4"n( 0, 잠금( 0 ), 표시( 1 ) ) ) )</FONT>
);
누군가가 기존 코드를 조정할 수 있다면 정말 좋을 것입니다.
미리 감사드립니다!
JMP가 프로파일러에 다양한 옵션(20*20*20*20, 아니면 제가 뭔가 놓치고 있는 부분이 있나요?)을 추가하면 얼마나 좋을지 모르겠습니다.
그러나 테이블에 새 행을 추가하여 값으로 업데이트한 다음 이를 업데이트하고 << 행의 데이터로 설정을 사용하는 동안 다른 설정이 있는 만큼 반복할 수 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Tiretread.jmp", Invisible);
obj = dt << Contour Profiler(
Y(
:Pred Formula ABRASION, :Pred Formula MODULUS,
:Pred Formula ELONG, :Pred Formula HARDNESS
),
Invisible
);
settings = As List(Repeat(-1::1::0.1, 3)`);
dt << Add Rows(1);
max_row = N Rows(dt);
For Each({setting}, settings,
dt[max_row, {"SILICA", "SILANE", "SULFUR"}] = setting;
obj << Set to Data in Row(max_row);
obj << Remember Settings;
);
dt << Delete Rows(max_row);
obj << show window;
가능한 모든 조합을 생성하려면 완전 요인 설계를 사용할 수 있어야 합니다.
가능한 모든 조합으로 이것을 실행하지 않는 것이 좋습니다.
Names Default To Here(1);
Clear Log();
// Calculate combinations - START
doe_platform = DOE(
Full Factorial Design,
{Add Response(Maximize, "Y", ., ., .), Add Factor(
Continuous,
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21},
"X1",
0
), Add Factor(
Continuous,
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21},
"X2",
0
), Add Factor(
Continuous,
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21},
"X3",
0
), Add Factor(
Continuous,
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21},
"X4",
0
), Set Random Seed(6613116), Make Design, Simulate Responses(0),
Set Run Order(Sort Left to Right)},
Invisible
);
dt = doe_platform << Make Table(Invisible);
doe_platform << Close Window;
m = dt[0, 2::5];
Close(dt, no save);
Show(N Items(m), Dim(m), N Row(m) == 21^4); // N Items(m) = 777924; Dim(m) = [194481 4]; N Row(m) == 21 ^ 4 = 1;
settings = As List((m - 11) / 10);
m = Empty();
// Calculate combinations - END
dt = Open("$SAMPLE_DATA/Tiretread.jmp", Invisible);
dt << New Column("A", Numeric, Continuous, Formula(
:SILICA * :SILANE * :SULFUR * :ELONG
));
obj = dt << Contour Profiler(
Y(A),
Invisible
);
dt << Add Rows(1);
max_row = N Rows(dt);
For Each({setting}, settings[1::100],
dt[max_row, {"SILICA", "SILANE", "SULFUR", "ELONG"}] = setting;
obj << Set to Data in Row(max_row);
obj << Remember Settings;
);
dt << Delete Rows(max_row);
obj << show window;
Write();