如何用分组拟合多项式次数为 2 的模型,然后捕获参数估计值我想通过每个(SERIAL、P1、P2、P3)创建多项式次数 2 并获取系数和常数,然后使用 JSL 将其放入每一列。
示例数据附在这篇文章中,但实际上我将处理大约 100 万行的数据。

回复:如何创建多项式次数 2 并获得系数和常数?嗨,MathStatChem,
您的解决方案有效。
回复:如何创建多项式次数 2 并获得系数和常数?嗨 ian_jmp,我的目标是获得“y = ax^2+bx+c”的系数和常数,但拟合多项式是“y = a(xd)^2+bx+c”。 但是我通过 fit special 从用户# MathStatChem 得到了解决方案。回复:如何创建多项式次数 2 并获得系数和常数?谢谢 MathStatChem,让我试试你的建议。回复:如何创建多项式次数 2 并获得系数和常数?谢谢 ian_jmp,让我试试。回复:如何创建多项式次数 2 并获得系数和常数?试试这个脚本:
_biv=Bivariate(
Y( :y ),
X( :x ),
Fit Special(
Degree( 2 ),
Centered Polynomial( 0 ),
{Line Color( {213, 72, 87} )}
),
By( :SERIAL, :P1, :P2, :P3 )
);
_rbiv=Report(_biv[1]);
_dtParameterEst = _rbiv[Table Box(3)]<< Make Combined Data Table;
_dtParameterEst << Split(
Split By( :Term ),
Split( :Estimate ),
Group( :P3, :P2, :P1, :SERIAL ),
Remaining Columns( Drop All ),
Sort by Column Property
)回复:如何创建多项式次数 2 并获得系数和常数?此外,如果您使用 Fit Y by X 平台/双变量平台来生成多项式拟合,请确保执行“Fit Special”并使用非中心多项式。 否则,拟合二次将具有以下形式
f(x) = a + b*x + c*(x-xbar)
其中 xbar 是回归中使用的 x 值的平均值。
使用 By 变量进行拟合,然后右键单击参数估计表以制作组合数据表是一种非常有效的方法。
回复:如何创建多项式次数 2 并获得系数和常数?可以开发下面的脚本来获得你需要的东西:
NamesDefaultToHere(1);
ClearLog();
dt = DataTable("Example data.jmp");
col = Column(dt, "Predicted y By SERIAL By P1 By P2 By P3");
// Get the formula generated by the platform
f = col << getFormula;
// Start to parse this formula expression
for(g = 1, g <= Narg(f) - 1, g = g + 2,
f1 = Arg(f, g);
f2 = Arg(f, g+1);
Print(f1, f2, "\!n");
);
但我怀疑如果可能的话,将“MakeCombinedDataTable”消息发送到报告窗口中的相应表格可能会更简单。 查看“帮助 > 脚本指南”。