私は現在、Xのランダムな列を生成し、Xに基づいてYの列を計算し、予測Y列、残差列(Predicted 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であるはずでした。訂正していただきありがとうございます。rows()を追加した場合指定された値が必要ですが、コードで指定されているように、拡張デザインからデータテーブル "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プラットフォームの1つを使用する方がはるかに簡単です。