将预测方程自动保存到数据表中大家好,
我正在使用拟合模型工具为某个数据子集创建拟合方程,然后我想将其应用回更大的集合并测量预测值和实际值之间的 RMS 值。 我有 231 个独特的样本(标记为 RunID),在每个样本中我有 2 个不同的通道,我正在评估。 这导致 436 个总拟合方程。 我使用拟合模型工具创建 436 个方程,我可以手动检查每个输出并将每个方程保存到数据表中的列中。 然后我将该列的公式复制并粘贴回我更大的数据集中并测量“预测与实际”。 我不想手动插入方程式,似乎已经发布了几个解决方案这里和这里,但我似乎无法让其中任何一个工作。
这是我所拥有的:
JMP 版本:16
我试图从 Xoffset 和 Yoffset 位置预测 Zoffset,所以我应该得到每个“RunID/Channel”组合的方程。
当我运行下面的脚本时,我得到了这个:

我只是在复制上面链接的方法,但是我的代码中一定有一些不同的地方,并且没有完全对齐。
obj = Fit Model(
Y(:ZOffset),
By(:RunID, :Channel Only Location),
Effects(
:XOffset, :XOffset * :XOffset, :XOffset * :XOffset * :XOffset, :YOffset, :YOffset * :YOffset,
:YOffset * :YOffset * :YOffset, :XOffset * :YOffset
),
Personality("Standard Least Squares"),
Emphasis("Minimal Report"),
Run(
:ZOffset << {Summary of Fit(1), Analysis of Variance(1), Parameter Estimates(1), Lack of Fit(0), Scaled Estimates(0),
Plot Actual by Predicted(0), Plot Regression(0), Plot Residual by Predicted(0), Plot Studentized Residuals(0),
Plot Effect Leverage(0), Plot Residual by Normal Quantiles(0), Box Cox Y Transformation(0)}
)
);
obj << (Fit[1] << Save Prediction Formula);脚本回复:将预测方程自动保存到数据表中您可能必须使用不同的消息。 检查您从红色小三角菜单中获得的选项

Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Animals.jmp");
obj = dt << Fit Model(
Y(:miles),
Effects(:species, :subject[:species] & Random, :season, :species * :season),
Personality(Standard Least Squares),
Run(
:ZOffset << {Summary of Fit(1), Analysis of Variance(1), Parameter Estimates(1), Lack of Fit(0), Scaled Estimates(0),
Plot Actual by Predicted(0), Plot Regression(0), Plot Residual by Predicted(0), Plot Studentized Residuals(0),
Plot Effect Leverage(0), Plot Residual by Normal Quantiles(0), Box Cox Y Transformation(0)}
)
);
obj << Prediction Formula;回复:将预测方程自动保存到数据表中嗨亚莫,
谢谢你。 我更新了脚本,只是说“obj << 预测公式”,并将信息保存到我数据集中的新列中。这是我的下拉列表中的选项:

回复:将预测方程自动保存到数据表中亲爱的@rlangsner ,除 Jarmo 外,请注意,在使用按组的情况下,运行模型的返回是一个列表,请参见下面的示例。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = dt << fit model( Y( :weight ), effects( :age, :height ), Personality( "Standard Least Squares" ));
mod1 = obj << run;
mod1 << prediction formula;
obj_by = dt << fit model( Y( :weight ), by( :sex ), effects( :age, :height ), Personality( "Standard Least Squares" ) );
mod2 = obj_by << run;
For Each( {value}, mod2, value << prediction formula );