将预测列添加到数据表中我的 JMP 表中有一个名为“异常值分析”的脚本。 我打开脚本,点击红色小三角并选择保存列--> 预测公式。 我该如何编写这个脚本?
这是我的方法:
dt = current data table();
a = Eval( dt << get table property( "Outlier Analysis" ) );
abc = a << Report;
abc << prediction formula;
回复:将预测列添加到数据表中@gzmorgan0还有一个问题,我已经安装了具有拟合组而不是拟合模型的脚本。 如何将它们的学生化残差添加到数据表中?我的方法:尝试将拟合组中的所有拟合模型添加到列表中,并传递该列表以添加残差。 该脚本目前不起作用,但这是否是正确的方法? 另外,如果可能的话,您能指出我在这个脚本中出错的地方吗?
dt = Current Data Table();
ft = dt << Run Script( "Outlier Analysis" );
ftList = Substitute( ftList, Expr( FitGroup() ), Expr( {} ) );
Print( Head( ftList ) );
//For(i=1, i<=NItems(ftList),i++,
//ftList[i] << Studentized Residuals;
//);
;回复:将预测列添加到数据表中@uday_guntupalli是的,谢谢你的帮助!
回复:将预测列添加到数据表中@飞天小女警,
这就是我一直向您提到的。 很高兴它终于起作用了。
回复:将预测列添加到数据表中抱歉,但我意识到这是最简单的。
只需两行代码就保存了我的公式
a = Eval( dt << get table property( "Outlier Analysis" ) );
a << save prediction formula;
感谢您的帮助,对于造成的困惑我深表歉意。 我只添加了“保存”,但不知何故错过了。
回复:将预测列添加到数据表中@gzmorgan0是的,我的意思是从现有的报告中获取公式。 我怎样才能编写一个更通用的脚本来实现这一目标? 因此,我在 Peanuts 样本数据集中有一个拟合模型。 如何将预测公式或学生化残差添加(使用 JSL)到现有的 Peanuts 数据表中? 我手动执行以下操作:保存列--> 为此。
回复:将预测列添加到数据表中请参阅脚本指南并搜索按平台划分的仅脚本化消息和参数。 消息和选项因型号而异。
标准最小二乘法
以下 JSL 消息从拟合模型返回请求的项目,例如方差分量、p 值、参数估计值等:
fit_model_object << 获取方差分量( );
fit_model_object << 获取效果名称( );
fit_model_object << 获取效果 PValues( );
fit_model_object << 获取估计值( );
fit_model_object << 获取参数名称( );
fit_model_object << 获取随机效果名称( );
fit_model_object << 获取标准错误( );
fit_model_object << 获取 X 矩阵( );
fit_model_object << 获取 XPX Inverse( );
fit_model_object << 获取 Y 矩阵( );
标准最小二乘对象的以下消息仅在 JSL 中可用:
obj << 获取SQL预测表达式;
___________________________________________________________________________________
对于最后一个例子,xx = FM << 得到预测公式;显示(xx);
/*日志
xx = 新列(“y”,数字,公式((-2.69577290612704)+匹配(:药物,“a”,-1.18503653738055,“d”,-1.07606520517145,“f”,2.261101742552,.)+ 0.987183811 129848 * :x), Set Property("预测", {:y, Creator("拟合最小二乘法")}));
您是否询问如何编写脚本以从已创建的带有拟合报告的窗口中获取公式?如果是,让我们看看是否可以模拟这种情况:帮助>脚本索引>对象>拟合模型>最小二乘,然后运行示例脚本。
obj 对最小二乘拟合的引用仅在该脚本中被识别。为了能够获得公式,您需要获得模型对象的句柄。 可能还有另一种方法,但这是我的方法:
- 提示窗口或使用窗口名称创建报告句柄
- 获取其子项和第一个 OutlIne Box
- 获取可编写脚本的对象
- 得到公式。
如果您的脚本有多个模型,我建议您使用 Xpath 来获取所有实例。附加脚本从脚本索引脚本获取公式。 该报告有 2 个响应(2 个模型)并创建一个关联的公式数组。
我不确定这是否是您所要求的。顺便说一句,一旦您有了脚本对象的句柄(引用),您就可以向它发送消息以将公式保存到表中。 Xpath 的一个很好的功能是获取可编写脚本的对象,它可能会找到 20 个模型,但您可以发送一次消息并将其应用于每个模型。
如果这不是您的问题,请澄清。
回复:将预测列添加到数据表中@uday_guntupalli但我有一个健身小组,里面有很多健身模特。 另外,我不想仅限于一个脚本执行此操作。
回复:将预测列添加到数据表中@飞天小女警,
我不确定我是否遵循了你所说的,但是根据我的理解,在这里:
对于您所做的拟合模型分析,您可以通过这种方式将公式直接捕获到表中。 您不需要单独提取公式。
dt = Open( "$SAMPLE_DATA/Drug.jmp" );
FM = dt << Fit Model(
Y( :y ),
Effects( :Drug, :x ),
Personality( "Standard Least Squares" ),
Emphasis( "Minimal Report" ),
Run(
:y << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Show Prediction Expression( 1 ),
Plot Actual by Predicted( 0 ), Plot Residual by Predicted( 0 ),
Plot Effect Leverage( 0 )}
)
);
FM << Get Prediction Formula; 检查您的日志并打印公式。 当您的意思是通过这种方式获取公式时,我认为您想从报告中访问它。 如果这就是您想要的,您可以如上所示添加 - 显示预测表达式(1) 到您的拟合模型,然后访问表达式
回复:将预测列添加到数据表中我明白了,但我已经准备好了剧本。 我不想再次添加分区部分。 例如,
a = Eval( dt << get table property( "Outlier Analysis" ) );
abc = a << Report;
dta = abc["Summary of Fit"][Table Box( 1 )] << Make Combined data table;
该脚本帮助我从“异常值分析”脚本中打开拟合摘要表。 有什么方法可以这样添加预测公式吗?@uday_guntupalli
回复:将预测列添加到数据表中@飞天小女警
看下面的例子。
dt = Open( "$SAMPLE_DATA/Boston Housing.jmp" );
obj = Partition(
Y( :mvalue ),
X(
:crim,
:zn,
:indus,
:chas,
:nox,
:rooms,
:age,
:distance,
:radial
),
Method( "Boosted Tree" ),
Validation Portion( .2 ),
Go
);
obj << Save Prediction Formula;