<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨,我希望在数据表中缺少数据时获得JSL脚本的帮助。
我们使用JSL对数据库执行查询,该数据库将数据拉入数据表,如下所示:
盘子 | 复合 | M1 | M2 | M3 | M4 |
A121 | cmp001 | 85.203 | 30.022 | 36.797 | 0.0629 |
A122 | cmp002 | 84.031 | 34.902 | 31.596 | 0.063 |
A123 | cmp003 | 89.028 | 30.677 | 34.903 | 0.063 |
A124 | cmp004 | 91.2455 | 35.277 | 35.327 | 0.0631 |
A125 | cmp005 | 91.257 | 36.927 | 38.836 | 0.063 |
其中M是不同的测量值。我们有一个JSL脚本,可以从数据中创建几个图,并且还可以使用适合的模型
适合模型(
Y(:M1,:M2,:M3,:M4),
效果(:板,:化合物,:板*:化合物),
人格(标准最小二乘法),
重点(效果杠杆),
跑(
:M1 << {缺乏拟合(0),按预测绘制实际情况(1),
绘制回归(0),通过预测绘制残差(1),
情节效果杠杆(1),显示VIF(1),{:应变<<
{LSMeans Tukey HSD(0.05,Crosstab Report(0))}}},
:M2 << {缺乏拟合(0),预测实际绘图(1),
绘制回归(0),通过预测绘制残差(1),
情节效果杠杆(1),显示VIF(1),{:应变<<
{LSMeans Tukey HSD(0.05,Crosstab Report(0))}}},
:M3 << {Lack of Fit(0),Plot Actual by Predicted(1),
绘制回归(0),通过预测绘制残差(1),
情节效果杠杆(1),显示VIF(1),{:应变<<
{LSMeans Tukey HSD(0.05,Crosstab Report(0))}}},
:M4 << {缺乏拟合(0),预测实际绘图(1),
绘制回归(0),通过预测绘制残差(1),
情节效果杠杆(1),显示VIF(1),{:应变<<
{LSMeans Tukey HSD(0.05,Crosstab Report(0))}}},
)
)
我们遇到麻烦的地方是偶尔我们有一个失败的测量系统,整个M3或M4列将充满缺失值(count = 0)。发生这种情况时,Fit模型会崩溃JSLscript。
对数据表编写拟合模型的最佳方法是什么?有时候列没有数据?有没有一种简单的方法可以首先查看哪些列包含数据,然后将其作为列表传递给Fit Model平台?我真的不想编写大量的IF语句来检查哪些列是完整的与空的,然后在其上运行不同的拟合模型脚本,因为我们实际上有超过10个不同的测量,并且其中任何一个都可能丢失任何一天。
谢谢你的帮助。
至少在JMP 9中,Fit Model()接受list参数。如果列表是变量,则必须使用Eval()。
下面是一个关于如何使用非空列构建列表的示例(不检查是否已满但很容易添加):
伊苏 = { : M1 , : M2 , : M3 , : M4 } ;
对于 ( 一世 = N项 ( 伊苏 ) ,一世 > 0 ,一世 - ,-
总结 ( ñ = 计数 ( 伊苏 [ 一世 ] ) ) ;
如果 ( ñ == 0 ,
从......中去除 ( 伊苏 ,一世 )
) ;
) ;
适合模型 (
ÿ ( EVAL ( 伊苏 ) ) ,
效果 ( ...