引导 2 个同步表我想知道是否有人知道如何同时引导或模拟两个单独的表。例如。
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt << Fit Model(
Y( :height ),
Effects( :weight, :age, :weight * :age ),
Personality( "Generalized Regression" ),
Generalized Distribution( "Normal" ),
Run(
Fit( Estimation Method( Lasso ), Validation Method( AICc ) )
),
);
假设我想在引导程序中获取该模型值的 AICc 并使该值与引导程序的估计值一致?
我可以给它们相同的随机种子吗? 如果是这样,那么引导程序是否会花费两倍的时间?
我的猜测是引导已经是多线程的了?
*编辑* 好吧,看起来引导程序不是多线程的(据我所知),但并行分配无论如何都不能使用显示框。废话。
回复:引导 2 个同步表您可以通过在 Bootstrap() 调用中设置随机种子来执行相同的操作。 Random Reset() 只是使您能够在脚本中的特定时间设置随机数生成器的内部种子的函数。回复:引导 2 个同步表可爱的。
我试图以交互方式做到这一点,很酷的是我可以通过脚本来做到这一点。
我从来没有见过“随机重置()”,似乎它与发送随机种子()到“引导”是一样的。很酷。
这似乎正是我想要的。
回复:引导 2 个同步表太棒了,谢谢你分享迈克尔!
回复:引导 2 个同步表嗨文斯,
我认为这个脚本应该向您展示如何做到这一点。 我不知道有什么交互方式可以做到这一点,但您可以使用 JSL 选择报告中的多个列,然后将 Bootstrap 消息发送到其中之一。 然后对具有选定列的所有表执行引导。 请参阅下面的示例,了解获取参数估计值以及相应 AICc 值的方法。
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
fm = dt << Fit Model(
Y( :height ),
Effects( :weight, :age, :weight * :age ),
Personality( "Generalized Regression" ),
Generalized Distribution( "Normal" ),
Run(
Fit( Estimation Method( Lasso ), Validation Method( AICc ) )
),
);
rpt = report(fm)["Normal Lasso with AICc Validation"];
rpt["Model Summary"][NumberColBox("")] << select;
rpt["Parameter Estimates for Original Predictors"][NumberColBox("Estimate")] << select;
randomreset(10373520);
dtlst = rpt["Parameter Estimates for Original Predictors"][NumberColBox("Estimate")] << Bootstrap(10, Fractional Weights(1));
dtlst[3] << Set Name("Measure Results");
dtlst[4] << Set Name("Parameter Estimates");
dtnew = dtlst[4] << Join(
With( dtlst[3] ),
By Matching Columns( :Name( "BootID•" ) = :Name( "BootID•" ) ),
Select( dtlst[4] << Get Column Names ),
Select With( :AICc ),
Preserve Main Table Order( 1 ),
Drop Multiples( 0, 0 )
)
希望有帮助,
迈克尔