Transcript |
| Hello Chris Gotwalt here. |
| Today, we're going to be |
| constructing the history of |
| graphic paradoxes and oh wait, |
| wrong topic. Actually we're going |
| to be talking about candidate |
| set designs, tailoring DOE |
| constraints to the problem. |
| So industrial experimentation |
| for product and process |
| improvement has a long history |
| with many threads that I admit I |
| only know a tiny sliver |
| of. The idea of using observation |
| for product and process |
| innovation is as old as humanity |
| itself. It received renewed |
| focus during the Renaissance and |
| Scientific Revolution. During the |
| subsequent Industrial |
| Revolution, science and industry |
| began to operate more and more |
| in lockstep. In the early 20th |
| century, Edison's lab was an |
| industrial innovation on a |
| factory scale, but it was done |
| to my knowledge, outside of |
| modern experimental traditions. |
| Not long after RA Fisher |
| introduced concepts like |
| blocking and randomization, his |
| associate and then son in law, |
| George Box, developed what is |
| now probably the dominant |
| paradigm in design of |
| experiments, with the most |
| popular book being Statistics |
| for Experimenters by Box, |
| Hunter and Hunter. |
| The method described in Box, Hunter |
| and Hunter are what I call the |
| taxonomical approach to design. |
| So suppose you have a product |
| or process you want to improve. |
| You think through the things you |
| can change. The knobs can turn |
| like temperature, pressure, |
| time, ingredients you can use or |
| processing methods that you can |
| use. These these things become |
| your factors. Then you think |
| about whether they are |
| continuous or nominal, and if |
| they are nominal, how many |
| levels they take or the range |
| you're willing to vary them. If a |
| factor is continuous, then you |
| figure out the name of the |
| design that most easily matches |
| up to the problem and resources |
| that you...that fits your budget. |
| That design will have... |
| will have a name like a Box |
| Behnken design, a fractional |
| factorial, or a central |
| composite signs, or possibly |
| something like a Taguchi array. There will |
| be restrictions on the numbers |
| of runs, the level...the numbers |
| of levels of categorical |
| factors, and so on, so there |
| will be some shoehorning the |
| problem at hand into the design |
| that you can find. For example, |
| factors in the BHH |
| approach, Box Hunter and Hunter |
| approach, often need to be |
| whittled down to two or three |
| unique values or levels. |
| Despite its limitations, the |
| taxonomical approach has been |
| fantastically successful. |
| Over time, of course, some |
| people have asked if we could |
| still do better. |
| And by better we mean to ask |
| ourselves, how do we design our |
| study to obtain the highest |
| quality information pertinent to |
| the goals of the improvement |
| project? This line of |
| questioning lead ultimately to |
| optimal design. Optimal design is |
| an academic research area. It was |
| started in parallel with the Box |
| school in the '50s and '60s, but |
| for various reasons remained out |
| of the mainstream of industrial |
| experimentations, until the |
| custom designer and JMP. |
| The philosophy of the custom |
| designer is that you describe |
| the problem to the software. It |
| then returns you the best design |
| for your budgeted number of |
| runs. You start out by declaring |
| your responses along with their |
| goals, like minimize, maximize, |
| or match target, and then you |
| describe the kinds of factors |
| you have, continuous, categorical |
| mixture, etc. Categorical |
| factors can have any number of |
| levels. You give it a model that |
| you want to fit to the resulting |
| data. The model assumes at least |
| squares analysis and consists of |
| main effects and interactions in |
| polynomial terms. The custom |
| designer make some default |
| assumptions about the nature |
| of your goal, such as whether |
| you're interested in screening |
| or prediction, which is |
| reflected in the optimality |
| criterion that is used. The |
| defaults can be overridden |
| with a red triangle menu |
| option if you are wanting to |
| do something different from |
| what the software intends. |
| The workflow in most |
| applications is to set up |
| the model. |
| Then you choose your budget, |
| click make design. Once that |
| happens, JMP uses a mixed, |
| continuous and categorical |
| optimization algorithm, solving |
| for the number of factors times |
| the number of rows terms. |
| Then you get your design data |
| table with everything you need |
| except the response data. This |
| is a great workflow as the |
| factors are able to be varied |
| independent from one another. |
| What if you can't? What if |
| there are constraints? What |
| if the value of some factors |
| determine the possible ranges |
| of other factors? |
| Well then you can do....then |
| you can define some factor |
| constraints or use it |
| disallowed combinations |
| filter. |
| Unfortunately, while these |
| are powerful tools for |
| constraining experimental |
| regions, it can still be very |
| difficult to characterize |
| constraints using these. |
| Brad Jones' DOE team, Ryan Lekivetz, |
| Joseph Morgan and Caleb |
| King have added an |
| extraordinarily useful new |
| feature that makes handling |
| constraints vastly easier in |
| JMP 16. These are called |
| candidate or covariate runs. |
| What you can do is, off on your |
| own, create a table of all |
| possible combinations of |
| factor settings that you want |
| the custom designer to |
| consider. Then load them up |
| here and those will be the |
| only combinations of factor |
| settings that the designer |
| will... |
| will look at. The original |
| table, which I call a |
| candidate table, is like a |
| menu factor settings for |
| the custom designer. |
| This gives JMP users an |
| incredible level of control over |
| their designs. What I'm going to |
| do today is go over several |
| examples to show how you can use |
| this to make the custom |
| designer fulfill its potential |
| as a tool that tailors the |
| design to the problem at hand. |
| Before I do that, I'm going to |
| get off topic for a moment and |
| point out that in the JMP Pro |
| version of the custom designer, |
| there's now a capability that |
| allows you to declare limits of |
| detection at design time. |
| If you want a non missing values |
| for the limits here the custom |
| designer will add a column |
| property that informs the |
| generalized regression platform |
| of the detection limits and it |
| will then automatically get the |
| analysis correct. This leads to |
| dramatically higher power to |
| detect effects and much lower |
| bias in predictions, but that's |
| a topic for another talk. |
| Here are a bunch of applications |
| that I can think of for the |
| candidate set designer. The |
| simplest is when ranges of a |
| continuous factor depend on the |
| level of one or more categorical |
| factors. Another example is when |
| we can't control the range of |
| factors completely |
| independently, but the |
| constraints are hard to write |
| down. There are two methods we |
| can use for this. One is using |
| historical process data as a |
| candidate set, and then the |
| other one is what I call filter |
| designs where you create...design |
| a giant initial data set using |
| random numbers or a space |
| filling design and then use row |
| selections in scatter plots |
| to pick off the points that |
| don't satisfy the constraints. |
| There's also the ability to |
| really highly customize mixture |
| problems, especially situations |
| where you've got multilayer |
| mixturing. This isn't |
| something that I'm going to be |
| able to talk about today, but in |
| the future this is something |
| that you should be looking to be |
| able to do with this candidate |
| set designer. You can also do |
| nonlinear constraints with the |
| filtering method, the same |
| ways you can do other kinds of |
| constraints. It's it's very |
| simple and I'll have a quick |
| example at the very end |
| illustrating this. |
| So let's consider our first |
| example. Suppose you want to |
| match a target response in an |
| investigation of two factors. |
| One is equipped...an equipment |
| supplier, of which there are two |
| levels and the other one is the |
| temperature of the device. The |
| two different suppliers have |
| different ranges of operating |
| temperatures. Supplier A's is more |
| narrow of the two, going from |
| 150 to 170 degrees Celsius. |
| But it's controllable to a |
| finer level of resolution of |
| about 5 degrees. Supplier B |
| has a wider operating range |
| going from 140 to 180 degrees |
| Celsius, but is only |
| controllable to 10 degrees |
| Celsius. Suppose we want to do |
| a 12 run design to find the |
| optimal combination of these |
| two factors. |
| We enumerate all possible |
| combinations of the two |
| factors in 10 runs in the |
| table here, just creating |
| this manually ourselves. |
| So here's the five possible |
| values of machine type A's |
| temperature settings. And then |
| down here are the five possible |
| values of Type B's temperature |
| settings. We want the best |
| design in 12 runs, which exceeds |
| the number of rows in the |
| candidate table. This isn't a |
| problem in theory, but I |
| recommend creating a copy of the |
| candidate set just in case so |
| that the number of runs that |
| your candidate table has exceeds |
| the number that you're looking |
| for in the design. |
| Then we go to the custom |
| designer. |
| Push select covariate |
| factors button. |
| Select the columns that we want |
| loaded as candidate design |
| factors. Now the candidate |
| design is loaded and shown. |
| Let's add the interaction effect, |
| as well as the quadratic effect |
| of temperature. Now we're at the |
| final step before creating the |
| design. I want to explain the |
| two options you see in the |
| design generation outline node. |
| The first one, which will force |
| in all the rows that are |
| selected in the original table |
| or in the listing of the |
| candidates in the custom |
| designer. So if you have |
| checkpoints that are unlikely to |
| be favored by the optimality |
| criterion and want to force them |
| into into the design, you can |
| use this option. It's a little |
| like taking those same rows and |
| creating an augmented design |
| based on just them, except that |
| you are controlling the possible |
| combinations of the factors in |
| the additional rows. |
| The second option, which I'm |
| checking here on purpose, allows |
| the candidate rows to be chosen |
| more than once. This will give |
| you optimally chosen |
| replications and is probably a |
| good idea if you're about to run |
| a physical experiment. If, on |
| the other hand, you are using an |
| optimal subset of rows to find |
| to try in a fancy new machine |
| learning algorithm like SVEM, a |
| topic of one of my other talks |
| at the March Discovery |
| Conference. You would not want |
| to check this option if that was |
| the case. Basically, if you |
| don't have all of your response |
| values already, I would check |
| this box and if you already have |
| the response values, then don't. |
| Reset the sample size to 12 and |
| click make design. The candidate |
| design in all its glory will |
| appear just like any other |
| design made by the custom |
| designer. As we see in the |
| middle JMP window, JMP also |
| selects the rows in the original |
| table chosen by the candidate |
| design algorithm. Note that 10 |
| not 12 rows were selected. |
| On the right we see the new |
| design table, the rightmost |
| column in the table indicates |
| the row of origin for that |
| run. Notice that original rows |
| 11 and 15 were chosen twice |
| and are replicates. |
| Here is a histogram view of the |
| design. You can see that the |
| different values of temperature |
| were chosen by the candidate set |
| algorithm for different machine |
| types. Overall, this design is |
| nicely balanced, but we don't |
| have 3 levels of temperature in |
| machine type A. Fortunately, |
| we can select the rows we |
| want forced into the design |
| to ensure that we have 3 |
| levels of temperature for |
| both machine types. |
| Just select the row you want |
| forced into the design in the |
| covariate table. Check include |
| all selected covariant rows into |
| the design option. |
| And then if you go through |
| all of that, you will see |
| that now both levels of |
| machine have at least three |
| levels of temperature in the |
| design. So the first design |
| we created is on the left |
| and the new design forcing |
| there to be 3 levels of |
| machine type A's |
| temperature settings is over |
| here to the right. |
| My second example is based on a |
| real data set from a |
| metallurgical manufacturing |
| process. The company wants to |
| control the amount of shrinkage |
| during the sintering step. They |
| have a lot of historical data |
| and have applied machine |
| learning models to predict |
| shrinkage and so have some idea |
| what the key factors are. |
| However, to actually optimize |
| the process, you should really |
| do a designed experiment. |
| As Laura Castro-Schilo |
| once pointed... |
| As Laura Castro-Schilo once |
| told me, causality is a |
| property not of the data, but |
| if the data generating |
| mechanism, and as George Box |
| says on the inside cover of |
| Statistics for Experimenters, |
| to find out what happens when |
| you change something, it is |
| necessary to change it. |
| Now, although we can't use the |
| historical data to prove |
| causality, there is |
| essential information about |
| what combinations of factors |
| are possible that we can use |
| in the design. |
| We first have to separate the |
| columns in the table that |
| represent controllable factors |
| from the ones that are more |
| passive sensor measurements |
| or drive quantities that |
| cannot be controlled directly. |
| A glance at the scatter plot of |
| the potential continuous factors |
| indicates that there are |
| implicit constraints that could |
| be difficult to characterize as |
| linear constraints or disallowed |
| combinations. However, these |
| represent a sample of the |
| possible combinations that |
| can be used with the |
| candidate designer quite |
| easily. |
| To do this, we bring up the |
| custom designer. Set up the |
| response. I like to load up some |
| covariate factors. Select the |
| columns that we can control as |
| factor...DOE factors and |
| click OK. Now we've got them |
| loaded. Let's set up a quadratic |
| response surface model as our |
| base model. Then select all of |
| the model terms except the |
| intercept. Then do a control |
| plus right click and convert |
| all those terms into if |
| possible effects. This, in |
| combination with response |
| surface model chosen, means |
| that we will be creating a |
| Bayesian I-optimal candidate |
| set design. |
| Check the box that allows for |
| optimally chosen replicates. |
| Enter the sample size. |
| It then creates the design |
| for us. If we look at the |
| distribution of the factors, |
| we see that it is tried hard |
| to pursue greater balance. |
| On the left, we have a |
| scatterplot matrix of the |
| continuous factors from the |
| original data and on the right |
| is the hundred row design. We can see |
| that in the sintering |
| temperature, we have some |
| potential outliers at 1220. |
| One would want to make sure that |
| those are real values. In |
| general, you're going to need to |
| make sure that the input |
| candidate set it's clear of |
| outliars and of missing values |
| before using it as a candidate |
| set design. In my talk with Ron |
| Kennet this...in the March |
| 2021 Discovery conference, |
| I briefly demo how you can use |
| the outlier and missing value |
| screening platforms to remove |
| the outliers and replace the |
| missing values so that you could |
| use them at a subsequent |
| stage like this. |
| Now suppose we have a problem |
| similar to the first example, |
| where there are two machine |
| types, but now we have |
| temperature and pressure as |
| factors, and we know that |
| temperature and pressure cannot |
| vary independently and that the |
| nature of that dependence |
| changes between machine types. |
| We can create an initial space |
| filling design and use the |
| data filter to remove the |
| infeasible combinations of |
| factors setting separately for |
| each machine type. Then we can |
| use the candidate set designer |
| to find the most efficient |
| design for this situation. |
| So now I've been through this, |
| so now I've created my space |
| filling design. It's got 1,000 |
| runs and I can bring up the |
| global data filter on it and |
| use it to shave off different |
| combinations of temperature |
| and pressure so that we can |
| have separate constraints by |
| machine type. |
| So I use the Lasso |
| tool to cut off |
| a corner in machine B. |
| And I go back and I cut off |
| another corner in machine B so |
| machine B is the machine that has |
| kind of a wider operating region |
| in temperature and pressure. |
| Then we switch over to machine |
| A. And we're just going to use |
| the Lasso tool |
| to shave off |
| the points that are outside its |
| operating region. And we see |
| that its operating region is a |
| lot narrower than Machine A's. |
| And here's our combined design. |
| From there we can load that back |
| up into the custom designer. |
| Put an RSM model there, then |
| set our number of runs to 32, |
| allowing coviariate rows to be |
| repeated. And it'll crank |
| through. Once it's done that, it |
| selects all the points that were |
| chosen by the candidate set |
| designer. And here we can see |
| the points that were chosen. |
| They've been highlighted and the |
| original set of candidate points |
| that were not selected are are |
| are gray. |
| We can bring up the new design |
| in Fit Y by X and we can |
| see a scatterplot where we see |
| that the |
| the the machine A design points |
| are in red. They're in the interior |
| of the space, and then the Type |
| B runs are in blue. It had the |
| wider operating region and |
| that's how we see these points |
| out here, further out for it. So |
| we have quickly achieved a |
| design with linear constraints |
| that change with a categorical |
| factor without going the |
| annoying process of deriving the |
| linear combination coefficients. |
| We've simply used basic JMP 101 |
| visualization and filtering |
| tools. This idea generalizes |
| to other nonlinear |
| constraints and other complex |
| situations fairly easily. |
| So now we're going to use |
| filtering and multivariate to |
| set up a very unique new type of |
| design that I assure you you |
| have never seen before. |
| Go to the |
| Lasso tool. We're going |
| to cut out a very unusual |
| constraint. |
| And we're going to invert |
| selection. |
| We're going to delete those rows. |
| Then we can speed this up a |
| little bit. We can go through |
| and do the same thing |
| for other combinations of X1 |
| and the other variables. |
| Carving out a very |
| unusual shaped candidate set. |
| We can load this up into |
| the custom designer. Same |
| thing as before. Bring our |
| columns in as covariates, |
| set up a design with all... |
| all high order interactions made |
| if possible, with a hundred |
| runs. And now we see |
| our design for this very |
| unusual constrained region |
| that is optimal given these |
| constraints. |
| So I'll leave you with this |
| image. I'm very excited to |
| hear what you were able to do |
| with the new candidate set |
| designer. Hats off to the DOE |
| team for adding this |
| surprisingly useful and |
| flexible new feature. Thank |
| you. |