データテーブルへの拡張データポイントの追加こんにちはJMPコミュニティ、
私は現在、"X1"列と10行の "Y1"列を含む既存のデータテーブルを開くスクリプトを作成しようとしています。次に、スクリプトは新しい列でY1を予測し、残差列を作成し(Predicted Y1 - Y1)、次に予測残差列を作成します。そこから、プロセスが自動化されることを期待して、スクリプトに既存のデータテーブルに「構成済み」のX1 / Y1値をある程度追加してもらいたいです。次のコードは、データポイントをデータテーブルに追加する責任があると考えています。問題は、次のスクリプトではX1値の正確なリストが追加されないことです(X1値は1から10までのすべての整数です。次のコードを実行すると、通常1から10の整数しか得られません)。
d = DOE(拡張デザイン、X(:X1)、Y(:Y1)/ *、{デザイン作成、テーブル作成} * /)。
d <<デザインを作る。
dt3 = d <<表を作る。
dt2 << concatenate(dt3、最初のテーブルに追加(1));
これが役立つ場合は、これが私のスクリプト全体です。
// 1 X1列とそれに対応するY1を作成します
すべて閉じる(データテーブル、保存しない)。
sourceDT = Open( "SH2.jmp");
dt2 = sourceDT <<サブセット(Columns()、Rows()、出力テーブル名( "Fixed.jmp"));
// 2。予測Ystat列を作成し、式を同じデータテーブルに保存します(最初の反復)
PredytedY1 = dt2 << Neural(
Y(:Y1)
X(:X1)
情報がありません(0)、
検証方法( "Holdback"、0.3333)、
フィット(NTanH(3))
;
PredictedY1 <<プロフィールの数式を保存します。
// 3。残りの列を追加
dt2 <<新しい列( "残差1"、式(Abs(:PredictedY1 - :Y1)));
// 4。残余列を作成して予測する
PredictedResidual1 = dt2 << Neural(
Y(:残差1)
X(:X1)
情報がありません(0)、
検証方法( "Holdback"、0.3333)、
フィット(NTanH(3))
;
PredictedResidual1 <<プロフィールの数式を保存;
//繰り返し2
d = DOE(拡張デザイン、X(:X1)、Y(:Y1)/ *、{デザイン作成、テーブル作成} * /)。
d <<デザインを作る。
dt3 = d <<表を作る。
dt2 << concatenate(dt3、最初のテーブルに追加(1));
PredytedY2 = dt2 << Neural(
Y(:Y1)
X(:X1)
情報がありません(0)、
検証方法( "Holdback"、0.3333)、
フィット(NTanH(3))
;
PredictedY2 <<プロファイルの数式を保存。
// 3。残りの列を追加
dt2 <<新しい列( "残差2"、式(Abs(:PredictedY12 2 - :Y1)));
// 4。残余列を作成して予測する
PredictedResidual2 = dt2 << Neural(
Y(:残差2)、
X(:X1)
情報がありません(0)、
検証方法( "Holdback"、0.3333)、
フィット(NTanH(3))
;
PredictedResidual2 <<プロフィールの数式を保存;
列(dt2、"X1")<<式Eval()を抑制します。
列(dt2、"Y1")<<式Eval()を抑制します。
dt2 <<どこで(:Residual 1 <= 3);を選択する。
dt2 <<行を削除。
ありがとう、
カイル
データテーブルへの拡張データポイントの追加私はあなたが何を望んでいるのかよくわかりません。私の解釈は、あなたが前の行に新しい行を追加したいということです。Augment Designは新しい処理を作成し、Make Tableメッセージは新しい結合テーブルを出力します。指定したモデルと指定した行に最適な新しい行が作成されます。
私はあなたが決定し、既存の行にそれらを連結するレベルで2番目のデータテーブルを作成したいと思います。あるいは、<< Add Rows()メッセージを最初のデータテーブルに繰り返し送信して、新しいレベルを追加することもできます。
データテーブルへの拡張データポイントの追加混乱して申し訳ありません。あなたは私がしたいのは正しいです私が決定し、既存の行にそれらを連結するレベルで2番目のデータテーブルを作成します。問題は、2番目のデータテーブルが明示的に1または10の値でテーブルを作成することです。2番目のデータテーブルに、1から10までの値(元のデータテーブルが持つ値の範囲)をランダムに割り当てます。Augment Designはこれを実行するのに最善の方法ではないかもしれませんが、私はJSLにはとても慣れていないので、どうすればよいかわかりません。
ありがとう
データテーブルへの拡張データポイントの追加それでも、私が提案した方法を使用することができます。2番目のデータテーブルを作成してそれを連結するか、または元のデータテーブルに直接行を追加します。
アイデアのスケッチ:
dt2 = New Table( "Augmentation Runs",<BR />Add Rows( 10 ),<BR />New Column( "X1", Numeric, Continuous, Values( J( 10, 1, Random Uniform() ) )<BR />);<BR /><BR />dt << Concatenate( dt2 );
あるいは
For( I = 1, I < 11, I++,
dt << Add Rows( { X1 = Random Uniform() } );
);