Bootstrap multiple tables simultaneously with JMP Pro
This is part 3 of a series of blog posts on the bootstrap feature in JMP Pro, Version 10. Previously, we exploited the fact that Distribution will give Bootstrap confidence limits anytime that there is a BootID• column present in the data table. Part 1 introduced one-click bootstrapping in JMP Pro.
In today's bootstrap example, we are interested in simultaneously bootstrapping multiple tables in a single JMP report. (Since the bootstrap sampling is driven by the random seed in JMP, you could do something similar to this by bootstrapping the tables separately, but setting the same random seed prior to each bootstrap.) To accomplish the bootstrapping of multiple tables, we will turn to JSL (JMP Scripting Language).
The basic idea is that you send a select message to one or more tables in a JMP report and then send a bootstrap message to one of the tables. The result will be a series of bootstrap sample data tables for each selected table in the report. You still need to join those tables together somehow, either using Join() in JSL or interactively using the Join feature in the Tables menu.
Why might you want to simultaneously bootstrap multiple tables from a JMP report? Well, you might be interested in the variability of multiple statistics in a report that you suspect will be correlated with one another. Using the same bootstrap sample for each bootstrap analysis allows you to investigate the suspected correlation.
The example in this blog post involves simulated data and a Life Distribution analysis that fits a normal distribution as well as a normal distribution with the scale parameter fixed at 50. (The simulated data was normally distributed using a scale parameter of 50.) Once the Life Distribution report is produced, we will bootstrap the location and scale estimates from the Normal distribution fit as well as the fixed parameter Normal distribution fit. After combining the results, we can use Multivariate to show us relationships between the bootstrap estimates. The "location" and "fixed scale location" bootstrap estimates are highly correlated, as we would expect based on what we know of the data simulation.
Here's the key JSL to accomplish the simultaneous bootstrap:
rpt["Parametric Estimate - Normal"][Number Col Box("Estimate")] << select;
rpt["Fix Parameter"]["Parametric Estimate - Normal"][Number Col Box("Estimate")] << select;
dtlst = rpt["Parametric Estimate - Normal"][Number Col Box("Estimate")] << Bootstrap(100);
If you have ideas of situations that would benefit from simultaneously bootstrapping multiple tables from a JMP report, please share them in the comments section.