나는 현재 X의 무작위 열을 생성하고, X에 기반한 Y 열을 계산하고, 예측 된 Y 열, 잔여 열 (예측 Y - Y) 및 예측 된 Y 열을 만드는 스크립트를 가지고있다. 거기에서, 내 코드는 3보다 낮은 잔차를 가진 행을 선택하고 삭제합니다.
그런 다음 증분 된 데이터 요소 행을 더 추가하고 잔차를 낮추려는 의도로 사이클을 다시 수행하려고합니다. 아래는 내 코드입니다.
// 1. Creates X1 column, and corresponding Y1 and Ystat columns
Close All( Data Tables, NoSave );
dt = New Table( "SampleRun 3",
Add Rows( 100 ),
New Script(
"Ystat vs. X1",
Graph Builder(
Variables( X( :X1 ), Y( :Ystat ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
)
),
New Column( "X1",
Formula( Random Integer( 50 ) )
),
New Column( "Y1",
Formula( If( :X1 < 25, 2 * :X1, 25 <= :X1 <= 30, 3 * :X1, 4 * :X1 ) )
),
New Column( "Ystat",
Formula( :Y1 )
)
);
// 2. Creates predicted Ystat column, saves formulas into same data table (first iteration)
PredictedYstat = dt << Neural(
Y( :Ystat ),
X( :X1 ),
Informative Missing( 0 ),
Validation Method( "Holdback", 0.3333 ),
Fit( NTanH( 3 ) )
);
PredictedYStat << Save Profile Formulas;
// 3. Adds residual column
dt << New Column( "Residual 1", Formula( Abs( :Predicted Ystat - :Ystat ) ) );
Column( dt, "X1" ) << Suppress Formula Eval();
Column( dt, "Y1" ) << Suppress Formula Eval();
Column( dt, "Ystat" ) << Suppress Formula Eval();
dt << Select where( :Residual 1 <= 3 );
dt << delete rows;
// 4. Creates and predicts residual column
PredictedResidual = dt2 << Neural(
Y( :Residual 1 ),
X( :X1 ),
Informative Missing( 0 ),
Validation Method( "Holdback", 0.3333 ),
Fit( NTanH( 3 ) )
);
PredictedResidual << Save Profile Formulas;
// 5. Adds new data points, cycle starts over from 2 (lets user choose how many)
// Iteration 2
DOE( Augment Design, X( :X1 ), Y( :Ystat ), {Make Design, Make Table} );
dt << add rows();
그러나 코드의 마지막 덩어리 (행을 추가해야하는 곳)는 아무 것도하지 않습니다. 어떤 제안?
감사,
카일
예, dt2 대신 dt로되어 있어야합니다. 수정해 주셔서 감사합니다. 행을 추가하는 경우 (); 지정된 값이 예상됩니다. 코드에서 지정한대로 "Sample Run 3"데이터 테이블의 끝 부분에 추가 설계의 X 값을 더 추가하는 방법은 무엇입니까? 미안 미안하지만, JMP / JSL에 매우 익숙합니다.
감사
나는 이것이 당신이 원하는 것을하는 가장 직접적인 방법이라고 생각합니다 :
d = DOE( Augment Design, X( :X1 ), Y( :Ystat )/*, {Make Design, Make Table}*/ );
d << Make Design;
dt2 = d << Make Table;
dt << concatenate( dt2, Append to first table( 1 ) );
기억하십시오. JMP는 Excel이나 R이 아닙니다. JMP에서는 여러 번 일을 처리하기 위해 복잡한 코드를 작성할 필요가 없습니다. 여러 번, JMP 플랫폼 중 하나를 사용하는 것이 훨씬 쉽습니다 (예 : "연결"