Process validation, such as Quality by Design (QbD) approaches, relies on designed experiments to understand process behavior and define optimal operating regions. These efforts commonly progress from scouting and screening studies to response surface methods, with regulated industries requiring clear definition of Proven Acceptable Ranges (PARs) for Critical Process Parameters (CPPs).

At Gore, we apply JMP as our enterprise analytics platform to support process validation across a diverse set of manufacturing environments and industrial applications – including medical device, pharmaceutical, automotive, aerospace, and apparel. JMP’s modeling, profiling, and simulation capabilities enable us to define and clearly communicate PARs that support high confidence in producing conforming product in complex, real‑world conditions.

This presentation features live JMP demonstrations addressing challenges, such as worst‑case design space evaluation, diagnostics for complex mixed models, and specifications on multiple devices per experimental unit. The resulting visualizations in JMP can tell a compelling story to team members across leadership, engineering, and manufacturing to inform decision making for the business.

 

 

Hello. My name is John Szarka. I'm a Statistician at W. L. Gore & Associates, headquartered in Newark, Delaware. Today, the title of my presentation is Defining Optimal Operating Regions in Process Validation.

My agenda for you today is to link the concepts of process validation to quality by design and provide a representative validation scenario, and then, using that scenario, talk about using JMP for proper experimental design, exploration and graphing, statistical analysis, and communicating results.

We will use JMP, use JMP, and use JMP throughout this presentation. First, just a quick FDA definition for quality by design, because I know some businesses use it and other industries necessarily don't. It's a systematic approach to development that begins with predefined objectives, emphasizes product and process understanding and process control, based on sound science and quality risk management.

Some of the high-level goals in QbD is defining the critical quality attributes that your customer is going to care about, and identifying the critical process parameters and material attributes that link to those quality attributes. You want to demonstrate your design space for the CPPs and CMAs with what they call proven acceptable ranges, or PARs. If we use a similar definition for process validation from FDA, it talks about establishing, by objective evidence, that a process consistently produces a result or product meeting its predetermined specifications.

A typical process validation workflow is usually an IQ, OQ, PQ workflow. In the IQ, we talk about equipment possibilities. What is the equipment you have in your manufacturing facility capable of doing? The operational qualification is where a lot of fun experimentation happens, where we test the ranges of those equipment to see what results we get. The performance qualification, we run that optimum process in a typical setting to evaluate how good our product is going to be.

What I'm going to talk about with the operating regions today comes up a lot for us at the OQ stage. This might be a typical validation scenario, and at Gore, we service a lot of different industries and businesses, and depending on where you are and what you work in, hopefully, this at least is general enough for you to apply for your scenario.

In a manufacturing facility, we may have a multiple-step process as a supplier. What we do is we provide rolls of film to a downstream partner, and at that downstream partner, they will further process that film and eventually make many individual items.

This might be a picture here of what a roll of film might look like. It may be 10 inches wide, it might be 5 feet wide, it might be 30 meters long, it might be 300 meters long. Eventually, through some of that post-processing downstream, you might get something that looks like this, where you have individual final parts that are made.

Our goal would be to develop an operating region where we feel confident that we can make high-quality products for individual items, because when we go from the film level to the final part level, we want those individual items that look like stickers on a sheet right now to all perform in their intended application at a high level.

What may our CQAs be? For an application in something like a venting filtration-type business, we might be looking for the airflow of the material, water entry pressure, and mass per area. We can see the specifications here, which are two-sided for the mass per area, and only a lower requirement for both airflow and water entry pressure.

Now, through domain knowledge and some screening experiments, we may have identified a set of critical material attributes and process parameters and the ranges to evaluate. We may narrow it down to, say, three really key variables in this process: adding a key ingredient amount, which could be between 20 and 40 units, and that is usually applied at one of the early steps of our multistep process. In further processing, we have an oven step where the temperature may be considered very important. At another process step where line speed comes into play, that may also be a key process parameter.

Here are some practical considerations that we may run into. Each experimental condition is a roll of film where multiple items are sampled per roll, and the individual items must pass the specification. The multistep processing and batching of materials require an advanced design of experiment structure, such as a split-plot design. It's very easy for us to batch and make that ingredient, and then we can make further sub-rolls from there.

It's desirable for operations and probably engineering to have a flexible operating region with assurance of high quality within the space. If we need to tune and change the temperature by a few degrees, that might have some operational benefit, same with the line speed and potentially the key ingredient.

This is my cue to jump on it. I will transition here into JMP, and I will open up the experimental design that we will use for this situation. What you can see here is 24 total runs in an experiment where we have 6 different batches. The batch represents the ingredient. Early in the process, we add that ingredient, and we can see that we've added 30 liters for the first set of runs.

In further processing, where we create sub-batches, that's where we can have individual rolls that can have different combinations of the temperature and line speed. JMP has an excellent suite of training and tools that talk about all the different fun things that can happen in the DOE window. For this particular run sheet, I used the Custom Design platform to generate what I thought would be an effective experiment for this validation scenario.

What you can see here with a split-plot experiment, what we're typically fighting against is being able to do a sufficient number of batches so that we can get some replication of what they call the whole-plot or hard-to-change factor. You can see there's a low, a medium, and a high ingredient where each of them have two different batches generated. I won't go into the details necessarily of generating the custom design from scratch, but there are plenty of other tools within JMP where you can look on the Community for ways to generate a split plot design.

What I will say is one important element of choosing an effective validation experiment is doing some design evaluation. It's very common in the OQ validation process to look at something called response surface methods. They're very flexible, they work really well for developing empirical models, and they're really tried-and-true in lots of industrial applications. You can see here that there are three main effects, one for each of the continuous factors. You can see that the second-order terms are represented as well as the two-factor interactions.

When you do create a candidate run sheet in JMP, maybe you're thinking, "Hey, 5 whole plots, 15 runs. Six whole plots, 18 runs. Eight whole plots, 32 runs. Six whole plots, 24 runs." You can generate lots of different run sheets, and you want to have some scorecard for saying, "Hey, I believe that this will be a design that is effective for my situation."

What I will typically do after the design is generated in Custom Design, there's a whole suite of different evaluation elements that JMP produces for us. In that output, you can see there are many elements here. Three of the key ones that I will typically look at across experimentation are the power analysis, the fraction of design space plot, and the color map on correlations.

The power analysis, I usually put more of an emphasis on earlier in that experimental process because I'm still trying to figure out what are the most significant factors for this process to make this product. We probably had six or seven factors that we had initially used in a screening, and these are the three dominant factors.

Typically at this stage, I'm a little bit less concerned about power, because power might be a little bit more important when I'm trying to figure out what matters, whereas here, I feel like I've already demonstrated some proof of concept that these are important factors in this particular process.

The Fraction of Design Space Plot is one that I do use a lot in OQs. What I really like about this is that you can think of the three-factor space that we're working with as being a cube. What I want to be able to do is to have really good confidence that anywhere that I predict in that experimental cube is going to be with good enough precision in the result that's predicted by the model.

Anytime you have continuous factors, the fraction of design space plot always takes on this shape. It usually is minimal near the center points of the region because there's lots of points on the corners, there's usually points in the center, and everything interpolates towards the center. Whereas on the edges, this is where I tend to have the least amount of resolution because I'm more in the boundaries. One rule of thumb that I'll typically use is, "Hey, even in the worst case of the boundaries, if I'm at or below 1.0, that makes me feel like I've got a good starting point for my design in an OQ-type setting."

The color map, I'll say this, I think these almost always look really good if you're using something like JMP's DOE platforms to generate, and that's just to make sure that, hey, now that we're fitting a model with more higher order terms, I want to be able to cleanly look at those and evaluate them without any confounding.

A perfect design is something where everything is all blue in the off-diagonals. There's a little bit of gray here indicated by some of the quadratic terms, which is an expected phenomenon with a split-plot response surface type of paradigm. I would feel like this is a really strong candidate to use for the design and hand over to the engineer to execute this for their validation.

We can see here from the header graphs that we have a very balanced design. I really like the addition of the header graphs. I actually have it turned on as a preference so that anytime I open a JMP file, I can see the dynamics. I can see that at the high line speed, I have an even partition of the ingredients. I can actually see here I don't achieve any of my highest airflows at the line speeds. There's a good mini exploratory element that I get by having the header graphs.

Another practical constraint, and I think everything works out in this particular setting here, but one thing that will happen with the batches versus the ingredients is that I set this on purpose so that I always have a guaranteed change in that ingredient between batches. I find that that's a really good thing to do in a lot of split plot experiments.

JMP will randomize the order of these 6, but sometimes you can get 2 that are consecutive, like a 30 followed by a 30. I feel like it's a really good thing for most practical applications to guarantee that there is a change in that hard to change factor between the different batches or whole plots.

We've got some data here. We can see that there's a bunch of airflow, WEP, and mass per area information available and summarized very nicely in this file, as all presentations do. A couple of quick exploratory things that I like to do are with the scatter plot matrix, where I just say, "Here are three responses. Here are three factors. Let's take a look at what some of those relationships are."

Maybe I can add a line to provide some resolution. I can quickly see that airflow and WEP have strong impacts by changing the ingredient. I can see the mass per area is impacted by the temperature. It doesn't do a good job of seeing secondary factors that are important, it doesn't do a great job of finding interactions, but I find it's a very good holistic exploratory tool to get started. It's also, probably in practice, really good for outlier detection. Somebody accidentally puts in 1,200 or something for a WEP, and then you can go fix those typos and take care of those things instantly as they're presented in front of you.

Another thing I might do is just do a scatter plot amongst the responses and see how they're interrelated. Here, for example, as I see increasing WEP, I'll see decreasing airflow, but it also does plateau off. You'll know whether or not these are interrelated for your process. I know that the airflow and the water entry pressure can be interrelated to the type of microstructures that we make, so it's almost a little bit like a screen. If I want something that is nice and airy, it might let a few more bugs in.

That might be something that's happening as these two fight against each other and compete to both be in the high-high regime. This would be like a utopia being up here, being able to achieve very high WEP and very high airflow. But in practice, there are plenty of trade-offs that happen.

These are the default scripts that JMP will give for you when you make this run sheet through the Custom Design platform. We can see here we have all three responses represented. We have the response surface classic model here, and we also have this batch and random term in here. What that does is signify to the experimenter and to JMP that, "We see that there are 24 runs here, but there is a limitation to how those 24 were run."

For the batch term, it's just letting us know that even though there's 24 different runs for ingredient, the batch will let you know that these first four runs, for instance, where the ingredient are all equal to 30, are all clustered together. Those results might be correlated in some way.

What I'll do initially is just do a little bit of a deeper dive on just the airflow. What we get here is what we would hope to see in most experiments is a nice strong fit in the Actual by Predicted. We do have significant variables, we saw some of that in the scatter plot matrix to begin with, and this can be very nice to see in the effect summary. You get that Pareto effect in terms of like, hey, the line speed and the ingredient-line speed interaction are super strong, and then less so maybe the secondary term for ingredient, and really not much happening with respect to the temperature. If I want to close the loop graphically, it's an iterative process. I saw a big impact of ingredient versus airflow, but I didn't see much with respect to temperature or line speed, so maybe I want to actually explore the line speed impact here.

Now when I create this overlay view, I think it's much clearer to see that both of these factors are strongly contributing to the airflow, whereas maybe not so much here. It's up to you to say, "Hey, maybe I want to remove or exclude some of those terms." That might just clean up the model a little bit in some ways so that you can have a simpler prediction expression that you might be using for an equation or something like that.

Maybe this is the model. We started off with nine terms, but maybe we still have a really good explanatory model with four of the nine terms. One thing that might be good to have are some diagnostics, and something that will show up different in a split plot experiment versus others is seeing these REML Variance Component Estimates. This can be pretty tough to interpret if you haven't come across those before, but the way that I think of it is like the residual is looking at the expected variance if you replicated the same set point within a batch.

The first time I run it, I get a result of an airflow of 12. The next time I do it, I get a result of 12.6. What variability can I expect there? The batch variance component being, what if I replicate the same point, but do it for a different batch? I run the ingredient at 30 liters in whole plot or batch number 1, and then if I replicate that later in batch number 4.

In this particular dataset, we can see there's an even split between the two. Typically, what you can do to diagnose that is in some of these Residual by Row plots. I turn on a lot of these residual plots by default, and I turn that on for our engineers by default so that they always see the diagnostics of the models that they're evaluating.

One way that might make it a little bit simpler to view is if I were to use a Row Legend of the batch. Here you can see for batch 6, everything's positive, and for batch number 2, everything's negative. Those both had ingredients of 40. That tells me that in batch number 6, the airflows were all a bit systemically higher than running similar set points on batch number 2. Because of the significance of that effect, that's explaining why there's some variance attributed to the batch.

One thing that we might do as an alternative when exploring the airflow models is not just looking at the residuals from the raw perspective, but looking at what we call the conditional residuals. When you have a random effect like batch, you can save some of those columns as shown down here, or you can actually use a slightly different model.

You can see the script on the left if you have JMP Pro for Fit Mixed. I will just change the personality to go to the Mixed Model. Random effect is over here now. I will run what we have, and now it'll correct for the batch effects. There are some options in here for me to look at conditional residual plots. I like looking at the evaluation here to see how well my model assumptions work.

One thing that I like to do, if I were to hold down Alt and hit the red triangle, I can actually turn off a few of the things that I don't want to see, so I can emphasize what I do want to see. If I'm only using the mixed model just to look at the conditional residuals, I might just strip everything down so that I'm just looking at exactly what I want. This is something that I do pretty regularly when I have these mixed-effect models, as they're called, when you have random terms and fixed terms in there. I can do this by setting a preset.

What's nice about this is that I can set my preset here. Say I go and fit a new model later, let say I do the same thing for the mixed model for the WEP, I can go up to this Platform Presets option, go to My Presets, and now boom, I can see my conditional residuals for that term as well. Rather than always having to do that Alt red triangle clicking and manually going through that, I have this nice, repeatable thing that I can do as a shortcut essentially, which I find to be very, very helpful.

What I'm going to do is I'm going to revisit the model, and I'm going to look at all three of the responses here. For time, I'm not going to necessarily go through and remove some of the insignificant factors again, but I will talk about how we might use some simultaneous inference for this process.

One way to do that is if I hold down Control and close all of these. Under the red triangle for the Fit Group, I can look at something for the Prediction Profiler. The Prediction Profiler, I think anybody that's used it really likes it, so I think that's something that can be very nice to have so that you can see how all the models are interrelated to each other.

I can also see how well things are doing with respect to the limits that I've set. You can see the airflow here needs to be above 10. If I move this a little bit, I can see that the WEP needs to be above 80. I can see a good normal distribution on its side for the bounds that the mass per area needs to be in.

One thing that can be good, everything starts here at the center point, is the Prediction Profiler does a wonderful job of providing some Simulator options. Where if you add some random noise to the process, you can simulate that combination and see how well it looks. You can get an idea of, "Hey, what are the expected defect rates? Where does the process live?" I find that to be really good for displaying.

One of the issues that we're actually having is twofold. One thing is to be mindful of, when you tell the simulator to add the random noise, it tends to only give the standard deviation for that residual term. If we go up here to the airflow model once again and go to the REML Variance Components, this is the amount of variability I expect within a batch, but this might be more representative of the total variability that I want to see. I actually want to maybe be using that 0.607 number more so than the 0.487 number.

The second thing that is not represented because I was sneaky when we hit it is when we talk about the table here, this is a very classic view that we get. For this first run, we say that the airflow is 11.56. It's actually an average. We typically take multiple measurements off of that roll of film, and what you're looking at in the highlighted cell is just the average of those five. We took five measurements in this particular case.

Even though the average of the 11.56 might be considered a good result because it's above 10, the individual results, maybe they go plus or minus 1, maybe they go plus or minus 3. It's possible that individual items from this condition may not meet the mark. What I have here hidden and excluded on the side are the individuals that comprised of these averages. You can see for the first condition for the airflow, we range anywhere from 10.59 up to 12.5.

In the simulator, my standard deviation is a little bit underrepresented, but it's also really underrepresented because my goal is really to look at the individual level. What I want to do is I want to stack my data so that I actually get that individual view. I can stack all 15 of these columns here, the 5 airflow, WEP, and mass per area. Say I want to do a multiple series stack that's contiguous. I love having the preview here so I can see the airflows, the WEPs, and the mass per area go together.

If I hadn't checked that box, I'd be like, "That's a weird. That's not right." I never know which one it is, so I check it and I uncheck it. I'm like, "Which one looks right?" In this particular case, it's very obvious that I wanted to check that box.

If I hit OK here, I would have a new view. My 24 conditions all have 5 individuals each, so now I'm dealing with 120 rows. There's a little bit more data cleanup to do. You want to make sure that instead of calling it Data and Data 2, you want to give it the right labels and add the specs back in for those column properties.

I'm actually going to go to my home where I've cleaned up some of that here. You can see for the airflow, I've added the units and the specs and the response limits so that everything gives a shortcut here, so you don't just see me clicking around for 15 minutes.

One thing I like to do when I do have those five individuals is to evaluate what does that variability look like for all of the individuals. This is a very simple way to do that. Just creating a Variability Chart so that I can see, "Here are the five individuals from that first condition, and what spread do we get?"

There are some conditions, like condition 13, where I'm sure the average of this condition yielded above 10 liters an hour, but this would not be a good processing condition because we see already individuals below 10. You can do something fancy, like put a Column Switcher on if you want to look at what some of the other properties look like. Like, "Is that an outlier? Maybe, maybe not, for a particular combination."

What we have to do now that we've added a layer to the model is to update that model. What I've done with this particular script is I added in one additional term. It would be this term right here. Everything else looks the same as when I had the 24 averages before, but here I have another nominal column for run. You want it to be nominal, not continuous, that can run into trouble.

Now you can see the first five rows are bundled together, so it's telling JMP that, "These five different airflows, but they all come from the same run." They all came from that same ingredient, temperature, line speed condition. What will end up happening here, and maybe I'll just clean it up again for just the airflow, so there's less to look at, I can run the model.

What you'll notice here is a bit more spread. There's always more spread in individuals than there are averages, that's just the way things go. I could probably do similar model selection, I think these are the terms that get kicked out. The models here, in terms of the statistical significance is identical. Nothing is changing there, because the way those random effects are modeled, it'll still be done on those 24 experimental units from those 6 batches.

What will change, and that becomes very important, is the REML table now having an additional layer. I find that this 0.82, that is going to be a much more realistic estimate of the variability. Because this residual variance component that's brought in is something that we'll get… All the variances will add up to the 0.67, and then you can see the square root there is the 0.82.

If this is something where if you try reproducing this on your own, you may not see this column by default. If you right-click in the Table under the Columns, you can add this here. I'm a big preferences guy, so I will always say go to your Platform Preferences. If you can't find something, you can just type in square root, so it'll highlight it for you.

This is something here where it's twofold. One, I turn on a lot of these preferences, also something like showing the variance inflation factor. I think that's a very important thing to show. What we actually do is when you change your preferences, there's a hidden file in JMP that exists, it's JMP.pfs. That is a preferences file. You can actually share that amongst people in your organization so that everybody syncs up, so that when they open the table, they will also automatically see all the output the same way that you do. I think that's good from a continuity perspective.

Let's hop back into this FitGroup-Profilers output. All I did here is I reran the model for all three of the responses. For this one, I did do the model selection. For instance, you can see the mass per area slimmed down from nine of the terms down to the four that I thought might be okay to use in the model. You can see that the specs are on here, I think they're added as reference lines in one of the column properties, so everything looks good there. You can see for here, they match up on the spec.

To make things simple, I will start with looking at the Prediction Profiler. One thing that you can do as a Goldilocks approach is say, "Where do I think the best place to run in this three-factor space is?" If I were to optimize in desirability, I have my desirability function set, I can say Maximize Desirability. Set the current factor values to maximize the desirability functions.

See what it says. Needs a few seconds to think, which is okay. We'll see what it comes up with. Now, this isn't going to be really anything from an operating region perspective. It's only going to be looking at a single point, so there's a little bit of a drawback there. I always find it interesting to see what JMP thinks.

One thing to keep in mind is you see this desirability at 0.567, it's like a cumulative across these three. What's interesting about the Prediction Profiler is it telling us the full story. The one thing we'll see here is really we have to fight this trade-off. As we increase the ingredient, we get much better airflow, but we also get worse WEP simultaneously.

It looks like, "Hey, we are right on target with respect to mass per area." I think the target's around 10 GSM, and that's about where this predicts to be. Really, the desirability function is fighting the good fight, or trying to figure this out. Now, one thing to keep in mind is you've told it the lower spec of 10, so it knows to anchor 0 desirability there, but I think JMP chooses its own slope with respect to how far this should go up.

The max desirability here is around 20. For WEP, it's doing it around 125 with a lower spec of 80. But if you fiddle around with this, this could have dramatic impact on how it wants to look at this trade-off. I'm actually a little bit surprised here because it looks like it's really giving airflow a lot of love in prioritizing it, whereas WEP looks like it's much lower on its desirability curve.

Another way to communicate operating regions that I find to be effective are the contour profilers. What we have here is a 2D plot, so it's got an ingredient and line speed. Let me actually change this to temperature for right now. I can see the full range of ingredient, I can see the full range of temperature, I see my spec limits on here. If I take my crossovers over to the pink, no good for airflow, because that's the red area. You can see it predicts a 9.69, which is less than 10.

One thing that we talk about a lot is finding the white space. Where is the good operating region is the white space in a lot of ways. But this is a little bit underrepresented. First, the line speed cursor here is set at 10. What happens if I actually go to the higher speeds? That actually looks to be worse for airflow. If you go up to the Prediction Profiler, it would agree because you can see as you go up in line speed, there's a drop in airflow. It all lines up and makes sense.

If I go the other way, it's going to open up the window. The problem is, if I look at this particular combination here, I can see at the crosshairs, ingredient 22, speed of 5, temperature of 253, it predicts the responses to be these values, so 10.33 is going to be the average for the airflow. I don't really want the average response to be above 10. I want there to be a significant proportion of the values above 10, so I need to add some safety factor.

What do I do? Do I just make up numbers? Do I just say 11, 12, 30? That's way too far. If I go to 12 here, is that the right safety factor to apply? One thing that you can think about it from an empirical rule perspective, and thinking back to the way the simulator function works, is "What's my expected standard deviation?" Maybe I can just do one, two, three standard deviations to bring in that space.

What are those standard deviations? Those would be those total standard deviations from the REML table. I can right-click here, make the combined data table. If you have JMP 19, you can invoke the filter. I can say I want to look at the total. Hey, check this out. I've got my standard deviations here, I got those numbers there.

I don't know, maybe I can take two standard deviations. I can actually do this like a little Excel formula to bring in that safety factor. Now, if I do one standard deviation or three standard deviations, you can assume, "Hey, that's going to be higher, lower confidence in how much of the product would be considered out of spec."

But now I can see the way that I've done it here, I've got a little bit of a white space. If I run at 5 meters per minute, I could develop an operating region in this white space. I could draw something here to say, "Hey, take the ingredient, I don't know, between 27 and 30, temperature from, say, 210–270." Maybe that's something that can be really effective. If I bring it in by more safety factors, obviously, I'll see that window close more and more, but I'll be even more confident that it's going to hit the airflow if I tighten it up. You want to find that balance for what works well for you.

One thing that you could do here is, this is what the window looks like at 5. Let's see, I'm going to reset this guy back to where I had it before. Then you could do something at 10, you could see how things change. You can actually go in here, you can make a little picture, a little polygon, and you could say something like, "Let's try doing the ingredient between 29 and 32. Maybe I'll do 200–260."

That doesn't look like it's going to work. I might need to bring in that space or move it around a little bit more. What I would need to do here is, 29–32 is, 200–260 is too broad of a range. I might need to tighten that up in order to define my white space, which I'm drawing with a black box, so that's the funny thing that I did there. You can narrow that and make that smaller to find something that actually is fully contained in that white space.

This is an indirect way to figure out, "Hey, do I have high quality here for finding a design space in an operating region?" One thing that might be a bit more direct that has been added in recent versions of JMP is called the Design Space Profiler. This is actually found within the Prediction Profiler. The idea there is around the objective of the talk.

You start with the full range of the factors. You can see the full ranges are shown here. This is the volume portion. We're looking in that full cube. We're looking at 100% of the volume. Right now it's saying the in-spec portion is 79%.

I saved the script ahead of time so that I saved the standard deviations that match what you see up here in the top right. You can see I'm using the correct standard deviation estimate. What I can do here is use these buttons to narrow in that space because I'm probably not satisfied with only 79% of product meeting the specification. It really seems to be driven to provide the airflow.

If I move inward, it goes step by step. Here, the best one-step increment that can be made is to tighten up the ingredient limits, and you can see the InSpec portion is going to go up. All you want to do is keep moving it up until you get to a space that you feel good about. In this particular combination here, you can see 27-40, 5-15, 200-300, the InSpec portion is 95%. You can see all the individual InSpec portions are even higher. This might be considered a good candidate for your design space, but there is a little bit of a caveat there.

For instance, if I try to run one of these boundaries, like a 27 with a 15, let's just choose a rounder number here, you can actually see for this combination of 27, 15, and 275, which is in the design space, my predicted airflow is actually outside of the specification. That is probably not going to work in the long term.

Why does it say 95%? This is basically like a simulation. If inside of a smaller cube type of region, it will work in the long term, but there can almost be these cold spots. There can be spots where it's like 100% is considered good, but you're also going to have spots where maybe it's only down at 40% or 50%, and as it gets pulled together, it looks good. But I wouldn't really want to run 27 and 15 together.

An enhancement that's been added to the Design Space Profiler has been to show the corners. That's where I think most of the cold spots are going to be. You can see here, the worst InSpec prop here is at 45%, which is not going to be good enough, so I actually want to move my corners inward to see how things look. If my worst InSpec prop is above 95%, then maybe that's the space that I want to consider. It might take a few clicks, especially here at the end as I'm getting closer, but each click is only giving me smaller incremental increases. Here we go.

Maybe I do need to have a pretty tight ingredient range, but I can have some modest ranges for line speeds and temperatures. To be honest, my operations people might be a little bit happier with me. They would love for me to have a line speed window of 11.5 and 13.5 instead of 5 to 6, probably just from a throughput and processing option.

If you go down to the Contour Profiler, those should line up with "white space", so I can move things around in the Contour Profiler to see what would work there. If I move the line speeds up into a 13-type range, it's going to basically be this window that's down here for finding the white space. I find that to be a nice way to try multiple ways to communicate where should I try to run this process, between starting with the Prediction Profiler to see, single point, how do things look, but being a little bit with a careful eye watching how these two are trading off, and then looking at the Contours and the Design Space Profilers.

A couple of advanced options that you can try. The Prediction Profilers have also been enhanced in recent versions to show prediction intervals. This is actually like, we're 95% confident that if you run the set point, an individual reading be captured by this green range here, which is wider than, of course, a confidence interval, which is for a mean response. One thing you can actually do for any of these models is you can save your prediction formula, and you can actually save the interval formulas.

What we could do potentially is save all of the prediction intervals for all three responses and actually see, is the prediction interval inside of the spec region? I've gone through those steps because it did take a couple of clicks, and this is how things will render. You can see the prediction formulas are here, so you can see the lower individual airflow formula. It does look like a bit much. This is the prediction formula, and then that minus bound here, this is the uncertainty interval there that's used to generate the prediction interval.

Once I save the prediction interval formulas, what I can do that's fun is I can go into the Graph menu and the Contour Profiler, which as long as I have a prediction formula, I can add those here and get a different view of the visualization. Now, technically, the upper prediction intervals aren't going to matter because there's no upper spec for the airflow and the WEP, but I still think it's fun to take this view.

Sometimes these contours make a little bit of a mess, but I want my lower prediction interval to be above 10. I want my lower WEP prediction interval to be above 80, and I want the lower mass one to be higher than 7.5, and the upper to be less than 12.5. If I get really crazy about it, I make sure my colors are aligned. I don't want the mass ones to be two different colors, although I don't think they show up much here. I think I was looking at ingredient versus temperature previously, looking at the different speeds.

This would be another way to go in and draw that box for what a good operating space would be. I think actually this would be a little bit more pessimistic because instead of using the classic normal distribution like the simulators do, this is going to use the Student's t-distribution, which is going to have a little bit more weight in the tail.

I think this would be an excellent way to also communicate the white space of your operating region. You could take a slice down here, say from 30 to 32 for your ingredient, 200 to 230, it works at 10 meters per minute. Maybe it doesn't work at 5, so you have to slide that in a little bit, but you could iterate and find a window that works. Probably not looking at much at the fastest speeds, because I think the trade-off is too severe at this point where we can't achieve it with the airflow.

Another fun way to think about some of the simulator tools in the Prediction Profiler and the way that design space works as well is that it uses the probabilities of a normal distribution, so you can actually save a formula to calculate what the expected InSpec probability is.

It's very simple. You're just using from the formula the normal distribution function, and you say, "This is my upper spec." I'm finding with this part of the probability, well, what's the probability that I'm going to be less than or equal to 12.5 and then subtracting off 7.5? I'm left with what's in the middle of the spec.

I'm just using the prediction expression, and I'm using that total REML standard deviation to be an estimate of my noise and to have a bit of a buffer based on the total standard deviations rather than just the root-mean-square error. What I can do here is generate for a contour profiler all the InSpec probs. If I do that, because these are formulas, that's why there's only a select number of columns here, I'll get the following output.

It's a disaster because these axes are not interpretable because they are using the factors that I have put into the formula, so these are what's in the formulas. A nice trick that works with a lot of the profiler-type menus, I can recall this statement, but I can expand these intermediate formulas. Because when I use the mass per area InSpec, it uses the pred formula mass per area, and the pred formula mass per area is represented in terms of the ingredient, the temperature, and the speed.

Now the contour profiler will be represented in the view that I want with the original three factors, not based on the equations. Now I get that view that I've been getting for a lot of the other contours.

I'm going to get rid of these reference lines here, and this is where I can more directly say something like, "Where can I be at least 0.95 for all three of these?" I think this is a very nice view. I think the original Contour Profiler, where I take the mean response and add a shift factor, it works, but it's a little back of the envelope-y in a way in terms of, "Hey, how many k standard deviations do you add? What's the right number, what's the wrong number?" Here, I can iterate. If I wanted to increase these to 97, I can see to see how much that actually impacts the windows to a certain extent.

As an example, maybe from this view, I can say, "All right, let's add one of those… I'm going to use some polygons again." What we'll do here, I'm going to use the ingredient range from 30 to, say, 33. I'm going to use temperature from 200 to 280.

I can see the white space is good here. This is at a line speed of 10, and what I want to do here is see whether or not it can work in a medium speed range. If I use it at 8, I can see it's in the white space, I got white on both sides. At 9, it works. At 10, it works. At 11, it works. At 12, it works, right on the line there. But I think there is some daylight in between.

That could be my operating region: a line speed between 8 and 12, ingredient between 30 and 33, and a temperature between 200 and 280. I think that would be a very good way to show with the contours how this works. I'll typically take multiple screenshots across low, medium, high range to confirm, because if you just do the one at 10, but say it's good from 8 to 12, maybe that needs to be communicated a little bit better, so I'll take a set of screenshots to demonstrate that it works really well.

But wait, isn't that what the Design Space Profiler is for? If I go back here, one thing that's great about the Design Space Profiler is that it's super flexible. What if I just manually punch in those numbers here? I do 30, do 33, 8, 12, and I wanted to go from 200 to 280, and I want to show those corners. Oh no! Oh no! I did not achieve my worst InSpec prob of 95%. What could have happened that went wrong?

Here, when I do that in the Contour Profiler, each of the individuals are all above 0.95, and that's happening here as well. You can see on that one edge there where I said there was a little bit of daylight, it is just a little bit of daylight because it's just above 0.95.

What JMP is doing here is they take the product of all three individual probabilities to give the cumulative. That's where, because of some slight non-1 values here, it just dips below 0.93. What should I do? Maybe I can just move the corner in another smidge. Now I'm above 0.95.

Now maybe I would reparameterize this and have this be my operating region: 31 to 33 for the ingredient, 8 to 12 for the line speed, 200 to 280 for the temperature. If I use my Prediction Profiler, maybe I can use the center point of those as a good starting point to say, okay, if I run at 32, 10, and 240, I'm a little bit buffered away from the airflow spec being at 12.5, I'm buffered away from the WEP spec by being up at 93, and I'm pretty much on target with the mass per area being right near 10.

Okay, so that was a lot. We went back and forth in lots of different views of the graphs, but I really like how they stay interconnected for different things. When it comes to communicating perspective, I would use this Prediction Profiler for communicating the overall view. I think in this particular instance, I probably should have on the bottom there chosen my optimal set point, center point. Maybe I should have chosen the 32 here and the 10 and the 240 as just shown in JMP to show like, we meet all of the requirements, and we can see that this trade-off is happening between these two. This is that key thing that's driving a lot of where is the white space going to be, fighting the good fight of trying to appease both properties.

I can show this to communicate the operating region using the Design Space Profiler. I've set these three ranges very clearly, and I can see that the worst InSpec probability meets my threshold of at least 95%. Alternatively, I could communicate the operating region using the Contour Profilers. I can use a set of those saying, "Hey, I'd like to be above 95 for all three of these." Look at the window at line speed of 8, it's white space. At 10, it's white space. At 12, this is white space. I created some daylight here with the one on the right, because I did increment in from 30 to 31 for that ingredient. I hope we achieved everything we set out to do. I think we did use JMP, use JMP and use JMP to communicate finding operating regions in validations. Thank you very much for your time.

0 Comments
Presented At Discovery Summit 2026

Presenter

Skill level

Intermediate
  • Beginner
  • Intermediate
  • Advanced

Files

Published on ‎07-15-2026 03:40 PM by Community Manager Community Manager | Updated on ‎10-30-2026 03:34 PM

Process validation, such as Quality by Design (QbD) approaches, relies on designed experiments to understand process behavior and define optimal operating regions. These efforts commonly progress from scouting and screening studies to response surface methods, with regulated industries requiring clear definition of Proven Acceptable Ranges (PARs) for Critical Process Parameters (CPPs).

At Gore, we apply JMP as our enterprise analytics platform to support process validation across a diverse set of manufacturing environments and industrial applications – including medical device, pharmaceutical, automotive, aerospace, and apparel. JMP’s modeling, profiling, and simulation capabilities enable us to define and clearly communicate PARs that support high confidence in producing conforming product in complex, real‑world conditions.

This presentation features live JMP demonstrations addressing challenges, such as worst‑case design space evaluation, diagnostics for complex mixed models, and specifications on multiple devices per experimental unit. The resulting visualizations in JMP can tell a compelling story to team members across leadership, engineering, and manufacturing to inform decision making for the business.

 

 

Hello. My name is John Szarka. I'm a Statistician at W. L. Gore & Associates, headquartered in Newark, Delaware. Today, the title of my presentation is Defining Optimal Operating Regions in Process Validation.

My agenda for you today is to link the concepts of process validation to quality by design and provide a representative validation scenario, and then, using that scenario, talk about using JMP for proper experimental design, exploration and graphing, statistical analysis, and communicating results.

We will use JMP, use JMP, and use JMP throughout this presentation. First, just a quick FDA definition for quality by design, because I know some businesses use it and other industries necessarily don't. It's a systematic approach to development that begins with predefined objectives, emphasizes product and process understanding and process control, based on sound science and quality risk management.

Some of the high-level goals in QbD is defining the critical quality attributes that your customer is going to care about, and identifying the critical process parameters and material attributes that link to those quality attributes. You want to demonstrate your design space for the CPPs and CMAs with what they call proven acceptable ranges, or PARs. If we use a similar definition for process validation from FDA, it talks about establishing, by objective evidence, that a process consistently produces a result or product meeting its predetermined specifications.

A typical process validation workflow is usually an IQ, OQ, PQ workflow. In the IQ, we talk about equipment possibilities. What is the equipment you have in your manufacturing facility capable of doing? The operational qualification is where a lot of fun experimentation happens, where we test the ranges of those equipment to see what results we get. The performance qualification, we run that optimum process in a typical setting to evaluate how good our product is going to be.

What I'm going to talk about with the operating regions today comes up a lot for us at the OQ stage. This might be a typical validation scenario, and at Gore, we service a lot of different industries and businesses, and depending on where you are and what you work in, hopefully, this at least is general enough for you to apply for your scenario.

In a manufacturing facility, we may have a multiple-step process as a supplier. What we do is we provide rolls of film to a downstream partner, and at that downstream partner, they will further process that film and eventually make many individual items.

This might be a picture here of what a roll of film might look like. It may be 10 inches wide, it might be 5 feet wide, it might be 30 meters long, it might be 300 meters long. Eventually, through some of that post-processing downstream, you might get something that looks like this, where you have individual final parts that are made.

Our goal would be to develop an operating region where we feel confident that we can make high-quality products for individual items, because when we go from the film level to the final part level, we want those individual items that look like stickers on a sheet right now to all perform in their intended application at a high level.

What may our CQAs be? For an application in something like a venting filtration-type business, we might be looking for the airflow of the material, water entry pressure, and mass per area. We can see the specifications here, which are two-sided for the mass per area, and only a lower requirement for both airflow and water entry pressure.

Now, through domain knowledge and some screening experiments, we may have identified a set of critical material attributes and process parameters and the ranges to evaluate. We may narrow it down to, say, three really key variables in this process: adding a key ingredient amount, which could be between 20 and 40 units, and that is usually applied at one of the early steps of our multistep process. In further processing, we have an oven step where the temperature may be considered very important. At another process step where line speed comes into play, that may also be a key process parameter.

Here are some practical considerations that we may run into. Each experimental condition is a roll of film where multiple items are sampled per roll, and the individual items must pass the specification. The multistep processing and batching of materials require an advanced design of experiment structure, such as a split-plot design. It's very easy for us to batch and make that ingredient, and then we can make further sub-rolls from there.

It's desirable for operations and probably engineering to have a flexible operating region with assurance of high quality within the space. If we need to tune and change the temperature by a few degrees, that might have some operational benefit, same with the line speed and potentially the key ingredient.

This is my cue to jump on it. I will transition here into JMP, and I will open up the experimental design that we will use for this situation. What you can see here is 24 total runs in an experiment where we have 6 different batches. The batch represents the ingredient. Early in the process, we add that ingredient, and we can see that we've added 30 liters for the first set of runs.

In further processing, where we create sub-batches, that's where we can have individual rolls that can have different combinations of the temperature and line speed. JMP has an excellent suite of training and tools that talk about all the different fun things that can happen in the DOE window. For this particular run sheet, I used the Custom Design platform to generate what I thought would be an effective experiment for this validation scenario.

What you can see here with a split-plot experiment, what we're typically fighting against is being able to do a sufficient number of batches so that we can get some replication of what they call the whole-plot or hard-to-change factor. You can see there's a low, a medium, and a high ingredient where each of them have two different batches generated. I won't go into the details necessarily of generating the custom design from scratch, but there are plenty of other tools within JMP where you can look on the Community for ways to generate a split plot design.

What I will say is one important element of choosing an effective validation experiment is doing some design evaluation. It's very common in the OQ validation process to look at something called response surface methods. They're very flexible, they work really well for developing empirical models, and they're really tried-and-true in lots of industrial applications. You can see here that there are three main effects, one for each of the continuous factors. You can see that the second-order terms are represented as well as the two-factor interactions.

When you do create a candidate run sheet in JMP, maybe you're thinking, "Hey, 5 whole plots, 15 runs. Six whole plots, 18 runs. Eight whole plots, 32 runs. Six whole plots, 24 runs." You can generate lots of different run sheets, and you want to have some scorecard for saying, "Hey, I believe that this will be a design that is effective for my situation."

What I will typically do after the design is generated in Custom Design, there's a whole suite of different evaluation elements that JMP produces for us. In that output, you can see there are many elements here. Three of the key ones that I will typically look at across experimentation are the power analysis, the fraction of design space plot, and the color map on correlations.

The power analysis, I usually put more of an emphasis on earlier in that experimental process because I'm still trying to figure out what are the most significant factors for this process to make this product. We probably had six or seven factors that we had initially used in a screening, and these are the three dominant factors.

Typically at this stage, I'm a little bit less concerned about power, because power might be a little bit more important when I'm trying to figure out what matters, whereas here, I feel like I've already demonstrated some proof of concept that these are important factors in this particular process.

The Fraction of Design Space Plot is one that I do use a lot in OQs. What I really like about this is that you can think of the three-factor space that we're working with as being a cube. What I want to be able to do is to have really good confidence that anywhere that I predict in that experimental cube is going to be with good enough precision in the result that's predicted by the model.

Anytime you have continuous factors, the fraction of design space plot always takes on this shape. It usually is minimal near the center points of the region because there's lots of points on the corners, there's usually points in the center, and everything interpolates towards the center. Whereas on the edges, this is where I tend to have the least amount of resolution because I'm more in the boundaries. One rule of thumb that I'll typically use is, "Hey, even in the worst case of the boundaries, if I'm at or below 1.0, that makes me feel like I've got a good starting point for my design in an OQ-type setting."

The color map, I'll say this, I think these almost always look really good if you're using something like JMP's DOE platforms to generate, and that's just to make sure that, hey, now that we're fitting a model with more higher order terms, I want to be able to cleanly look at those and evaluate them without any confounding.

A perfect design is something where everything is all blue in the off-diagonals. There's a little bit of gray here indicated by some of the quadratic terms, which is an expected phenomenon with a split-plot response surface type of paradigm. I would feel like this is a really strong candidate to use for the design and hand over to the engineer to execute this for their validation.

We can see here from the header graphs that we have a very balanced design. I really like the addition of the header graphs. I actually have it turned on as a preference so that anytime I open a JMP file, I can see the dynamics. I can see that at the high line speed, I have an even partition of the ingredients. I can actually see here I don't achieve any of my highest airflows at the line speeds. There's a good mini exploratory element that I get by having the header graphs.

Another practical constraint, and I think everything works out in this particular setting here, but one thing that will happen with the batches versus the ingredients is that I set this on purpose so that I always have a guaranteed change in that ingredient between batches. I find that that's a really good thing to do in a lot of split plot experiments.

JMP will randomize the order of these 6, but sometimes you can get 2 that are consecutive, like a 30 followed by a 30. I feel like it's a really good thing for most practical applications to guarantee that there is a change in that hard to change factor between the different batches or whole plots.

We've got some data here. We can see that there's a bunch of airflow, WEP, and mass per area information available and summarized very nicely in this file, as all presentations do. A couple of quick exploratory things that I like to do are with the scatter plot matrix, where I just say, "Here are three responses. Here are three factors. Let's take a look at what some of those relationships are."

Maybe I can add a line to provide some resolution. I can quickly see that airflow and WEP have strong impacts by changing the ingredient. I can see the mass per area is impacted by the temperature. It doesn't do a good job of seeing secondary factors that are important, it doesn't do a great job of finding interactions, but I find it's a very good holistic exploratory tool to get started. It's also, probably in practice, really good for outlier detection. Somebody accidentally puts in 1,200 or something for a WEP, and then you can go fix those typos and take care of those things instantly as they're presented in front of you.

Another thing I might do is just do a scatter plot amongst the responses and see how they're interrelated. Here, for example, as I see increasing WEP, I'll see decreasing airflow, but it also does plateau off. You'll know whether or not these are interrelated for your process. I know that the airflow and the water entry pressure can be interrelated to the type of microstructures that we make, so it's almost a little bit like a screen. If I want something that is nice and airy, it might let a few more bugs in.

That might be something that's happening as these two fight against each other and compete to both be in the high-high regime. This would be like a utopia being up here, being able to achieve very high WEP and very high airflow. But in practice, there are plenty of trade-offs that happen.

These are the default scripts that JMP will give for you when you make this run sheet through the Custom Design platform. We can see here we have all three responses represented. We have the response surface classic model here, and we also have this batch and random term in here. What that does is signify to the experimenter and to JMP that, "We see that there are 24 runs here, but there is a limitation to how those 24 were run."

For the batch term, it's just letting us know that even though there's 24 different runs for ingredient, the batch will let you know that these first four runs, for instance, where the ingredient are all equal to 30, are all clustered together. Those results might be correlated in some way.

What I'll do initially is just do a little bit of a deeper dive on just the airflow. What we get here is what we would hope to see in most experiments is a nice strong fit in the Actual by Predicted. We do have significant variables, we saw some of that in the scatter plot matrix to begin with, and this can be very nice to see in the effect summary. You get that Pareto effect in terms of like, hey, the line speed and the ingredient-line speed interaction are super strong, and then less so maybe the secondary term for ingredient, and really not much happening with respect to the temperature. If I want to close the loop graphically, it's an iterative process. I saw a big impact of ingredient versus airflow, but I didn't see much with respect to temperature or line speed, so maybe I want to actually explore the line speed impact here.

Now when I create this overlay view, I think it's much clearer to see that both of these factors are strongly contributing to the airflow, whereas maybe not so much here. It's up to you to say, "Hey, maybe I want to remove or exclude some of those terms." That might just clean up the model a little bit in some ways so that you can have a simpler prediction expression that you might be using for an equation or something like that.

Maybe this is the model. We started off with nine terms, but maybe we still have a really good explanatory model with four of the nine terms. One thing that might be good to have are some diagnostics, and something that will show up different in a split plot experiment versus others is seeing these REML Variance Component Estimates. This can be pretty tough to interpret if you haven't come across those before, but the way that I think of it is like the residual is looking at the expected variance if you replicated the same set point within a batch.

The first time I run it, I get a result of an airflow of 12. The next time I do it, I get a result of 12.6. What variability can I expect there? The batch variance component being, what if I replicate the same point, but do it for a different batch? I run the ingredient at 30 liters in whole plot or batch number 1, and then if I replicate that later in batch number 4.

In this particular dataset, we can see there's an even split between the two. Typically, what you can do to diagnose that is in some of these Residual by Row plots. I turn on a lot of these residual plots by default, and I turn that on for our engineers by default so that they always see the diagnostics of the models that they're evaluating.

One way that might make it a little bit simpler to view is if I were to use a Row Legend of the batch. Here you can see for batch 6, everything's positive, and for batch number 2, everything's negative. Those both had ingredients of 40. That tells me that in batch number 6, the airflows were all a bit systemically higher than running similar set points on batch number 2. Because of the significance of that effect, that's explaining why there's some variance attributed to the batch.

One thing that we might do as an alternative when exploring the airflow models is not just looking at the residuals from the raw perspective, but looking at what we call the conditional residuals. When you have a random effect like batch, you can save some of those columns as shown down here, or you can actually use a slightly different model.

You can see the script on the left if you have JMP Pro for Fit Mixed. I will just change the personality to go to the Mixed Model. Random effect is over here now. I will run what we have, and now it'll correct for the batch effects. There are some options in here for me to look at conditional residual plots. I like looking at the evaluation here to see how well my model assumptions work.

One thing that I like to do, if I were to hold down Alt and hit the red triangle, I can actually turn off a few of the things that I don't want to see, so I can emphasize what I do want to see. If I'm only using the mixed model just to look at the conditional residuals, I might just strip everything down so that I'm just looking at exactly what I want. This is something that I do pretty regularly when I have these mixed-effect models, as they're called, when you have random terms and fixed terms in there. I can do this by setting a preset.

What's nice about this is that I can set my preset here. Say I go and fit a new model later, let say I do the same thing for the mixed model for the WEP, I can go up to this Platform Presets option, go to My Presets, and now boom, I can see my conditional residuals for that term as well. Rather than always having to do that Alt red triangle clicking and manually going through that, I have this nice, repeatable thing that I can do as a shortcut essentially, which I find to be very, very helpful.

What I'm going to do is I'm going to revisit the model, and I'm going to look at all three of the responses here. For time, I'm not going to necessarily go through and remove some of the insignificant factors again, but I will talk about how we might use some simultaneous inference for this process.

One way to do that is if I hold down Control and close all of these. Under the red triangle for the Fit Group, I can look at something for the Prediction Profiler. The Prediction Profiler, I think anybody that's used it really likes it, so I think that's something that can be very nice to have so that you can see how all the models are interrelated to each other.

I can also see how well things are doing with respect to the limits that I've set. You can see the airflow here needs to be above 10. If I move this a little bit, I can see that the WEP needs to be above 80. I can see a good normal distribution on its side for the bounds that the mass per area needs to be in.

One thing that can be good, everything starts here at the center point, is the Prediction Profiler does a wonderful job of providing some Simulator options. Where if you add some random noise to the process, you can simulate that combination and see how well it looks. You can get an idea of, "Hey, what are the expected defect rates? Where does the process live?" I find that to be really good for displaying.

One of the issues that we're actually having is twofold. One thing is to be mindful of, when you tell the simulator to add the random noise, it tends to only give the standard deviation for that residual term. If we go up here to the airflow model once again and go to the REML Variance Components, this is the amount of variability I expect within a batch, but this might be more representative of the total variability that I want to see. I actually want to maybe be using that 0.607 number more so than the 0.487 number.

The second thing that is not represented because I was sneaky when we hit it is when we talk about the table here, this is a very classic view that we get. For this first run, we say that the airflow is 11.56. It's actually an average. We typically take multiple measurements off of that roll of film, and what you're looking at in the highlighted cell is just the average of those five. We took five measurements in this particular case.

Even though the average of the 11.56 might be considered a good result because it's above 10, the individual results, maybe they go plus or minus 1, maybe they go plus or minus 3. It's possible that individual items from this condition may not meet the mark. What I have here hidden and excluded on the side are the individuals that comprised of these averages. You can see for the first condition for the airflow, we range anywhere from 10.59 up to 12.5.

In the simulator, my standard deviation is a little bit underrepresented, but it's also really underrepresented because my goal is really to look at the individual level. What I want to do is I want to stack my data so that I actually get that individual view. I can stack all 15 of these columns here, the 5 airflow, WEP, and mass per area. Say I want to do a multiple series stack that's contiguous. I love having the preview here so I can see the airflows, the WEPs, and the mass per area go together.

If I hadn't checked that box, I'd be like, "That's a weird. That's not right." I never know which one it is, so I check it and I uncheck it. I'm like, "Which one looks right?" In this particular case, it's very obvious that I wanted to check that box.

If I hit OK here, I would have a new view. My 24 conditions all have 5 individuals each, so now I'm dealing with 120 rows. There's a little bit more data cleanup to do. You want to make sure that instead of calling it Data and Data 2, you want to give it the right labels and add the specs back in for those column properties.

I'm actually going to go to my home where I've cleaned up some of that here. You can see for the airflow, I've added the units and the specs and the response limits so that everything gives a shortcut here, so you don't just see me clicking around for 15 minutes.

One thing I like to do when I do have those five individuals is to evaluate what does that variability look like for all of the individuals. This is a very simple way to do that. Just creating a Variability Chart so that I can see, "Here are the five individuals from that first condition, and what spread do we get?"

There are some conditions, like condition 13, where I'm sure the average of this condition yielded above 10 liters an hour, but this would not be a good processing condition because we see already individuals below 10. You can do something fancy, like put a Column Switcher on if you want to look at what some of the other properties look like. Like, "Is that an outlier? Maybe, maybe not, for a particular combination."

What we have to do now that we've added a layer to the model is to update that model. What I've done with this particular script is I added in one additional term. It would be this term right here. Everything else looks the same as when I had the 24 averages before, but here I have another nominal column for run. You want it to be nominal, not continuous, that can run into trouble.

Now you can see the first five rows are bundled together, so it's telling JMP that, "These five different airflows, but they all come from the same run." They all came from that same ingredient, temperature, line speed condition. What will end up happening here, and maybe I'll just clean it up again for just the airflow, so there's less to look at, I can run the model.

What you'll notice here is a bit more spread. There's always more spread in individuals than there are averages, that's just the way things go. I could probably do similar model selection, I think these are the terms that get kicked out. The models here, in terms of the statistical significance is identical. Nothing is changing there, because the way those random effects are modeled, it'll still be done on those 24 experimental units from those 6 batches.

What will change, and that becomes very important, is the REML table now having an additional layer. I find that this 0.82, that is going to be a much more realistic estimate of the variability. Because this residual variance component that's brought in is something that we'll get… All the variances will add up to the 0.67, and then you can see the square root there is the 0.82.

If this is something where if you try reproducing this on your own, you may not see this column by default. If you right-click in the Table under the Columns, you can add this here. I'm a big preferences guy, so I will always say go to your Platform Preferences. If you can't find something, you can just type in square root, so it'll highlight it for you.

This is something here where it's twofold. One, I turn on a lot of these preferences, also something like showing the variance inflation factor. I think that's a very important thing to show. What we actually do is when you change your preferences, there's a hidden file in JMP that exists, it's JMP.pfs. That is a preferences file. You can actually share that amongst people in your organization so that everybody syncs up, so that when they open the table, they will also automatically see all the output the same way that you do. I think that's good from a continuity perspective.

Let's hop back into this FitGroup-Profilers output. All I did here is I reran the model for all three of the responses. For this one, I did do the model selection. For instance, you can see the mass per area slimmed down from nine of the terms down to the four that I thought might be okay to use in the model. You can see that the specs are on here, I think they're added as reference lines in one of the column properties, so everything looks good there. You can see for here, they match up on the spec.

To make things simple, I will start with looking at the Prediction Profiler. One thing that you can do as a Goldilocks approach is say, "Where do I think the best place to run in this three-factor space is?" If I were to optimize in desirability, I have my desirability function set, I can say Maximize Desirability. Set the current factor values to maximize the desirability functions.

See what it says. Needs a few seconds to think, which is okay. We'll see what it comes up with. Now, this isn't going to be really anything from an operating region perspective. It's only going to be looking at a single point, so there's a little bit of a drawback there. I always find it interesting to see what JMP thinks.

One thing to keep in mind is you see this desirability at 0.567, it's like a cumulative across these three. What's interesting about the Prediction Profiler is it telling us the full story. The one thing we'll see here is really we have to fight this trade-off. As we increase the ingredient, we get much better airflow, but we also get worse WEP simultaneously.

It looks like, "Hey, we are right on target with respect to mass per area." I think the target's around 10 GSM, and that's about where this predicts to be. Really, the desirability function is fighting the good fight, or trying to figure this out. Now, one thing to keep in mind is you've told it the lower spec of 10, so it knows to anchor 0 desirability there, but I think JMP chooses its own slope with respect to how far this should go up.

The max desirability here is around 20. For WEP, it's doing it around 125 with a lower spec of 80. But if you fiddle around with this, this could have dramatic impact on how it wants to look at this trade-off. I'm actually a little bit surprised here because it looks like it's really giving airflow a lot of love in prioritizing it, whereas WEP looks like it's much lower on its desirability curve.

Another way to communicate operating regions that I find to be effective are the contour profilers. What we have here is a 2D plot, so it's got an ingredient and line speed. Let me actually change this to temperature for right now. I can see the full range of ingredient, I can see the full range of temperature, I see my spec limits on here. If I take my crossovers over to the pink, no good for airflow, because that's the red area. You can see it predicts a 9.69, which is less than 10.

One thing that we talk about a lot is finding the white space. Where is the good operating region is the white space in a lot of ways. But this is a little bit underrepresented. First, the line speed cursor here is set at 10. What happens if I actually go to the higher speeds? That actually looks to be worse for airflow. If you go up to the Prediction Profiler, it would agree because you can see as you go up in line speed, there's a drop in airflow. It all lines up and makes sense.

If I go the other way, it's going to open up the window. The problem is, if I look at this particular combination here, I can see at the crosshairs, ingredient 22, speed of 5, temperature of 253, it predicts the responses to be these values, so 10.33 is going to be the average for the airflow. I don't really want the average response to be above 10. I want there to be a significant proportion of the values above 10, so I need to add some safety factor.

What do I do? Do I just make up numbers? Do I just say 11, 12, 30? That's way too far. If I go to 12 here, is that the right safety factor to apply? One thing that you can think about it from an empirical rule perspective, and thinking back to the way the simulator function works, is "What's my expected standard deviation?" Maybe I can just do one, two, three standard deviations to bring in that space.

What are those standard deviations? Those would be those total standard deviations from the REML table. I can right-click here, make the combined data table. If you have JMP 19, you can invoke the filter. I can say I want to look at the total. Hey, check this out. I've got my standard deviations here, I got those numbers there.

I don't know, maybe I can take two standard deviations. I can actually do this like a little Excel formula to bring in that safety factor. Now, if I do one standard deviation or three standard deviations, you can assume, "Hey, that's going to be higher, lower confidence in how much of the product would be considered out of spec."

But now I can see the way that I've done it here, I've got a little bit of a white space. If I run at 5 meters per minute, I could develop an operating region in this white space. I could draw something here to say, "Hey, take the ingredient, I don't know, between 27 and 30, temperature from, say, 210–270." Maybe that's something that can be really effective. If I bring it in by more safety factors, obviously, I'll see that window close more and more, but I'll be even more confident that it's going to hit the airflow if I tighten it up. You want to find that balance for what works well for you.

One thing that you could do here is, this is what the window looks like at 5. Let's see, I'm going to reset this guy back to where I had it before. Then you could do something at 10, you could see how things change. You can actually go in here, you can make a little picture, a little polygon, and you could say something like, "Let's try doing the ingredient between 29 and 32. Maybe I'll do 200–260."

That doesn't look like it's going to work. I might need to bring in that space or move it around a little bit more. What I would need to do here is, 29–32 is, 200–260 is too broad of a range. I might need to tighten that up in order to define my white space, which I'm drawing with a black box, so that's the funny thing that I did there. You can narrow that and make that smaller to find something that actually is fully contained in that white space.

This is an indirect way to figure out, "Hey, do I have high quality here for finding a design space in an operating region?" One thing that might be a bit more direct that has been added in recent versions of JMP is called the Design Space Profiler. This is actually found within the Prediction Profiler. The idea there is around the objective of the talk.

You start with the full range of the factors. You can see the full ranges are shown here. This is the volume portion. We're looking in that full cube. We're looking at 100% of the volume. Right now it's saying the in-spec portion is 79%.

I saved the script ahead of time so that I saved the standard deviations that match what you see up here in the top right. You can see I'm using the correct standard deviation estimate. What I can do here is use these buttons to narrow in that space because I'm probably not satisfied with only 79% of product meeting the specification. It really seems to be driven to provide the airflow.

If I move inward, it goes step by step. Here, the best one-step increment that can be made is to tighten up the ingredient limits, and you can see the InSpec portion is going to go up. All you want to do is keep moving it up until you get to a space that you feel good about. In this particular combination here, you can see 27-40, 5-15, 200-300, the InSpec portion is 95%. You can see all the individual InSpec portions are even higher. This might be considered a good candidate for your design space, but there is a little bit of a caveat there.

For instance, if I try to run one of these boundaries, like a 27 with a 15, let's just choose a rounder number here, you can actually see for this combination of 27, 15, and 275, which is in the design space, my predicted airflow is actually outside of the specification. That is probably not going to work in the long term.

Why does it say 95%? This is basically like a simulation. If inside of a smaller cube type of region, it will work in the long term, but there can almost be these cold spots. There can be spots where it's like 100% is considered good, but you're also going to have spots where maybe it's only down at 40% or 50%, and as it gets pulled together, it looks good. But I wouldn't really want to run 27 and 15 together.

An enhancement that's been added to the Design Space Profiler has been to show the corners. That's where I think most of the cold spots are going to be. You can see here, the worst InSpec prop here is at 45%, which is not going to be good enough, so I actually want to move my corners inward to see how things look. If my worst InSpec prop is above 95%, then maybe that's the space that I want to consider. It might take a few clicks, especially here at the end as I'm getting closer, but each click is only giving me smaller incremental increases. Here we go.

Maybe I do need to have a pretty tight ingredient range, but I can have some modest ranges for line speeds and temperatures. To be honest, my operations people might be a little bit happier with me. They would love for me to have a line speed window of 11.5 and 13.5 instead of 5 to 6, probably just from a throughput and processing option.

If you go down to the Contour Profiler, those should line up with "white space", so I can move things around in the Contour Profiler to see what would work there. If I move the line speeds up into a 13-type range, it's going to basically be this window that's down here for finding the white space. I find that to be a nice way to try multiple ways to communicate where should I try to run this process, between starting with the Prediction Profiler to see, single point, how do things look, but being a little bit with a careful eye watching how these two are trading off, and then looking at the Contours and the Design Space Profilers.

A couple of advanced options that you can try. The Prediction Profilers have also been enhanced in recent versions to show prediction intervals. This is actually like, we're 95% confident that if you run the set point, an individual reading be captured by this green range here, which is wider than, of course, a confidence interval, which is for a mean response. One thing you can actually do for any of these models is you can save your prediction formula, and you can actually save the interval formulas.

What we could do potentially is save all of the prediction intervals for all three responses and actually see, is the prediction interval inside of the spec region? I've gone through those steps because it did take a couple of clicks, and this is how things will render. You can see the prediction formulas are here, so you can see the lower individual airflow formula. It does look like a bit much. This is the prediction formula, and then that minus bound here, this is the uncertainty interval there that's used to generate the prediction interval.

Once I save the prediction interval formulas, what I can do that's fun is I can go into the Graph menu and the Contour Profiler, which as long as I have a prediction formula, I can add those here and get a different view of the visualization. Now, technically, the upper prediction intervals aren't going to matter because there's no upper spec for the airflow and the WEP, but I still think it's fun to take this view.

Sometimes these contours make a little bit of a mess, but I want my lower prediction interval to be above 10. I want my lower WEP prediction interval to be above 80, and I want the lower mass one to be higher than 7.5, and the upper to be less than 12.5. If I get really crazy about it, I make sure my colors are aligned. I don't want the mass ones to be two different colors, although I don't think they show up much here. I think I was looking at ingredient versus temperature previously, looking at the different speeds.

This would be another way to go in and draw that box for what a good operating space would be. I think actually this would be a little bit more pessimistic because instead of using the classic normal distribution like the simulators do, this is going to use the Student's t-distribution, which is going to have a little bit more weight in the tail.

I think this would be an excellent way to also communicate the white space of your operating region. You could take a slice down here, say from 30 to 32 for your ingredient, 200 to 230, it works at 10 meters per minute. Maybe it doesn't work at 5, so you have to slide that in a little bit, but you could iterate and find a window that works. Probably not looking at much at the fastest speeds, because I think the trade-off is too severe at this point where we can't achieve it with the airflow.

Another fun way to think about some of the simulator tools in the Prediction Profiler and the way that design space works as well is that it uses the probabilities of a normal distribution, so you can actually save a formula to calculate what the expected InSpec probability is.

It's very simple. You're just using from the formula the normal distribution function, and you say, "This is my upper spec." I'm finding with this part of the probability, well, what's the probability that I'm going to be less than or equal to 12.5 and then subtracting off 7.5? I'm left with what's in the middle of the spec.

I'm just using the prediction expression, and I'm using that total REML standard deviation to be an estimate of my noise and to have a bit of a buffer based on the total standard deviations rather than just the root-mean-square error. What I can do here is generate for a contour profiler all the InSpec probs. If I do that, because these are formulas, that's why there's only a select number of columns here, I'll get the following output.

It's a disaster because these axes are not interpretable because they are using the factors that I have put into the formula, so these are what's in the formulas. A nice trick that works with a lot of the profiler-type menus, I can recall this statement, but I can expand these intermediate formulas. Because when I use the mass per area InSpec, it uses the pred formula mass per area, and the pred formula mass per area is represented in terms of the ingredient, the temperature, and the speed.

Now the contour profiler will be represented in the view that I want with the original three factors, not based on the equations. Now I get that view that I've been getting for a lot of the other contours.

I'm going to get rid of these reference lines here, and this is where I can more directly say something like, "Where can I be at least 0.95 for all three of these?" I think this is a very nice view. I think the original Contour Profiler, where I take the mean response and add a shift factor, it works, but it's a little back of the envelope-y in a way in terms of, "Hey, how many k standard deviations do you add? What's the right number, what's the wrong number?" Here, I can iterate. If I wanted to increase these to 97, I can see to see how much that actually impacts the windows to a certain extent.

As an example, maybe from this view, I can say, "All right, let's add one of those… I'm going to use some polygons again." What we'll do here, I'm going to use the ingredient range from 30 to, say, 33. I'm going to use temperature from 200 to 280.

I can see the white space is good here. This is at a line speed of 10, and what I want to do here is see whether or not it can work in a medium speed range. If I use it at 8, I can see it's in the white space, I got white on both sides. At 9, it works. At 10, it works. At 11, it works. At 12, it works, right on the line there. But I think there is some daylight in between.

That could be my operating region: a line speed between 8 and 12, ingredient between 30 and 33, and a temperature between 200 and 280. I think that would be a very good way to show with the contours how this works. I'll typically take multiple screenshots across low, medium, high range to confirm, because if you just do the one at 10, but say it's good from 8 to 12, maybe that needs to be communicated a little bit better, so I'll take a set of screenshots to demonstrate that it works really well.

But wait, isn't that what the Design Space Profiler is for? If I go back here, one thing that's great about the Design Space Profiler is that it's super flexible. What if I just manually punch in those numbers here? I do 30, do 33, 8, 12, and I wanted to go from 200 to 280, and I want to show those corners. Oh no! Oh no! I did not achieve my worst InSpec prob of 95%. What could have happened that went wrong?

Here, when I do that in the Contour Profiler, each of the individuals are all above 0.95, and that's happening here as well. You can see on that one edge there where I said there was a little bit of daylight, it is just a little bit of daylight because it's just above 0.95.

What JMP is doing here is they take the product of all three individual probabilities to give the cumulative. That's where, because of some slight non-1 values here, it just dips below 0.93. What should I do? Maybe I can just move the corner in another smidge. Now I'm above 0.95.

Now maybe I would reparameterize this and have this be my operating region: 31 to 33 for the ingredient, 8 to 12 for the line speed, 200 to 280 for the temperature. If I use my Prediction Profiler, maybe I can use the center point of those as a good starting point to say, okay, if I run at 32, 10, and 240, I'm a little bit buffered away from the airflow spec being at 12.5, I'm buffered away from the WEP spec by being up at 93, and I'm pretty much on target with the mass per area being right near 10.

Okay, so that was a lot. We went back and forth in lots of different views of the graphs, but I really like how they stay interconnected for different things. When it comes to communicating perspective, I would use this Prediction Profiler for communicating the overall view. I think in this particular instance, I probably should have on the bottom there chosen my optimal set point, center point. Maybe I should have chosen the 32 here and the 10 and the 240 as just shown in JMP to show like, we meet all of the requirements, and we can see that this trade-off is happening between these two. This is that key thing that's driving a lot of where is the white space going to be, fighting the good fight of trying to appease both properties.

I can show this to communicate the operating region using the Design Space Profiler. I've set these three ranges very clearly, and I can see that the worst InSpec probability meets my threshold of at least 95%. Alternatively, I could communicate the operating region using the Contour Profilers. I can use a set of those saying, "Hey, I'd like to be above 95 for all three of these." Look at the window at line speed of 8, it's white space. At 10, it's white space. At 12, this is white space. I created some daylight here with the one on the right, because I did increment in from 30 to 31 for that ingredient. I hope we achieved everything we set out to do. I think we did use JMP, use JMP and use JMP to communicate finding operating regions in validations. Thank you very much for your time.



Start:
Wed, Oct 21, 2026 03:00 PM EDT
End:
Wed, Oct 21, 2026 03:45 PM EDT
Key Ballroom 11
Attachments
0 Kudos