予測方程式の半分評価された形式を取得する方法フィットモデルを使用して、時間と追加の要因の回帰式を構築しています。 最終的な目標は、すべての追加要因について評価された予測方程式を含むテーブルをジャーナルに作成し、純粋な切片 + 傾き * 時間ベースの方程式を示すことです。 例:
dt = Open("$SAMPLE_DATA\Powder Metallurgy.jmp");
fm = dt << Fit Model(
Y( :Shrinkage ),
Effects(
:Formation Method, :Compaction Method, :Sintering Time
),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Leverage" ),
Run()
);
PredForm = Arg(Arg((FM << GetPredictionFormula), 3),1);これにより、次の方程式が得られます。
0.942161598883733 + Match( :Formation Method,
"Die", 0.0407171588498178,
"Extrusion", 0.0256123252434345,
"Isostatic", -0.0663294840932524,
.
) + Match( :Compaction Method,
"Cold", 0.594574663098895,
"Warm", -0.594574663098895,
.
) + -0.0742413463542265 * :Sintering Time
次に、追加の要素を含むテーブルを作成できます。
dtEquations = dt << Summary(
Group( :Formation Method, :Compaction Method ),
Freq( "None" ),
Weight( "None" )
);
dtEquations << DeleteColumns(:N Rows);
では、(この例では) 最初の 2 列を調べて Match ステートメントを評価する新しい列に方程式を単純化して書きますが、時間のために方程式を残すにはどうすればよいでしょうか? 最終目標:

すべての静的係数が 1 に減れば、さらに良くなります。
全体は複数の追加因子レベルに対して動的である必要があり、方程式は共通の傾き、共通の切片になる場合もあれば、異なる傾きや異なる切片になる場合もあります。
自動化とスクリプト作成Re: 予測方程式の半分評価された形式を取得する方法これにはかなり多くの変更が必要になる可能性が高くなりますが、オプションの 1 つは Extract Expr を使用することです。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA\Powder Metallurgy.jmp");
fm = dt << Fit Model(
Y(:Shrinkage),
Effects(:Formation Method, :Compaction Method, :Sintering Time),
Personality("Standard Least Squares"),
Emphasis("Effect Leverage"),
Run()
);
dtEquations = dt << Summary(Group(:Formation Method, :Compaction Method), Freq("None"), Weight("None"));
dtEquations << New Column("Sintering Time", Character, Continuous, << Set Each Value(
PredForm = Arg(Arg((FM << GetPredictionFormula), 3), 1);
PredForm = Substitute(Name Expr(PredForm), Extract Expr(PredForm, Match(Wild List())), Eval(Extract Expr(PredForm, Match(Wild List()))));
PredForm = Substitute(Name Expr(PredForm), Extract Expr(PredForm, Match(Wild List())), Eval(Extract Expr(PredForm, Match(Wild List()))));
Char(Name Expr(PredForm));
));
Re: 予測方程式の半分評価された形式を取得する方法@jthi素晴らしい、ありがとう!
すべての係数を 1 に減らすために最後のブロックに simplify expr を追加しましたが、それ以外の点ではソリューションは完璧でした。
dtEquations << New Column("Sintering Time", Character, Continuous, << Set Each Value(
PredForm = Arg(Arg((FM << GetPredictionFormula), 3), 1);
PredForm = Substitute( Name Expr( PredForm ),
Extract Expr( PredForm, Match( Wild List() ) ), Eval( Extract Expr( PredForm, Match( Wild List() ) ) )
);
PredForm = Substitute( Name Expr( PredForm ),
Extract Expr( PredForm, Match( Wild List() ) ), Eval( Extract Expr( PredForm, Match( Wild List() ) ) )
);
Char(Simplify Expr(Name Expr(PredForm)));
));Re: 予測式の半分評価された形式を取得する方法素晴らしい質問ですね@ポールディーンそして素晴らしい解決策@jthi !