I'm a statistical developer in the JMP group,
and today I'm here to talk about finding optimal operating regions
for critical quality attributes with the design space profiler.
The first thing I wanted to talk about is
the general quality paradigm called quality by design,
also commonly referred to as QbD for short.
Quality by design is a systematic approach for incorporating quality
into the entire product lifecycle beginning at the design phase.
It was first introduced by Joseph Juran, and it was made popular in his book,
Juran on Q uality by Design way back in 1992.
It was a very popular book, and a few years after it was published,
the FDA and the International Conference on Harmonization, also referred to as ICH,
adopted these quality by design principles for the development,
manufacturing, and regulation of drugs.
They published several guidelines
for implementing quality by design in the pharmaceutical industry
called ICH Q8- Q12, and we're going to focus on ICH Q8 guidelines.
What exactly do we mean by design space?
Well, this is a very important concept
in the pharmaceutical industry for quality by design,
and it's defined in the ICH Q8( R2) guidelines as
the multidimensional combination and interaction of material attributes
and process parameters that have been demonstrated
to provide assurance of quality.
Essentially, the design space is what identifies your optimal operating region
that's going to give you maximal flexibility in your production
while still assuring that you get a quality product.
JMP's new design space profiler, new in JMP 17,
helps us find this design space, this optimal operating region.
Now there's actually several steps that need to be taken before you can use
the design space profiler to determine your design space.
These are outlined in the Q8 guidelines,
and so we're going to run through those steps.
The first step that you want to take
is you want to define your quality target product profile,
and this is defined as a prospective summary
of the quality characteristics of a drug product
that ideally will be achieved to ensure the desired quality,
taking into account safety and efficacy of your drug.
Next, you want to determine what are the critical quality attributes
and what are their appropriate specification limits.
A critical quality attribute, also referred to as a CQA,
is defined as a physical, chemical, biological or microbiological property
or characteristic that should be within an appropriate limit,
range, or distribution to ensure the desired product quality.
Once you've determined those,
then you're going to design experiments to determine
what are the critical manufacturing process parameters
that affect these critical quality attributes.
A critical process parameter, also referred to as a CPP for short,
is a process parameter whose variability has impact on a critical quality attribute
and therefore should be monitored or controlled
to ensure the process produces the desired quality product.
Once you've determined all of that,
then you're going to find a good prediction model
for your critical quality attributes
in terms of your critical process parameters.
Once you've done that,
then you can use the design space profiler in JMP
to determine your design space for your optimal operating region.
Let's talk a little more specifically about the design space profiler in JMP.
First of all, as I mentioned, it's new in JMP 17,
and it resides within the Prediction Profiler.
Hopefully everyone is familiar with the Prediction Profiler in JMP.
It's a wonderful tool for exploring,
visualizing and optimizing any model that you produce within JMP.
The goal of the design space profiler
is to determine a good design space by finding the largest hyper-rectangle
that fits into that acceptable region that's defined
by your critical quality attribute spec limits applied to your prediction model.
Now, once you have that hyper-rectangle,
that gives you your lower and upper limits of your critical process parameters
to determine a good design space for maintaining a quality product.
Now, I just wanted to mention very quickly
that a design space does not have to be a rectangular,
but having a rectangular design space makes it really convenient
for checking each factor one at a time.
Now, the problem with this approach
is that the acceptable region is usually nonlinear,
and finding the largest hyper-rectangle
in a nonlinear region is a very difficult mathematical problem.
How does design space profiler work then?
Well, instead of using the mathematical approach
to finding the largest hyper-rectangle, it uses a simulated approach.
It generates thousands of uniformly distributed points throughout the space
defined by your initial critical process perimeter factor limits.
Then it uses a prediction model
to simulate your responses for your critical quality attributes.
Note that it's always best to include some error for your prediction model
because your prediction model is not perfect, it's not without error.
Then once you have that simulated set of data,
you're going to take that set and calculate the in-spec portion
by counting the total number of points that are in- spec for all the responses,
all your critical quality attributes from the points that are within the space
defined by the current CPP factor limit settings of your current design space.
Now the easiest way to see how this works is to go to an example and go to JMP.
That's what we're going to do.
We're going to look at an example for a pain cream study.
The goal of this study is to repurpose a habit-forming oral opioid drug
into a topical pain cream that provides the same relief as the oral drug.
The first thing they did was figure out their quality target product profile,
and then they were able to determine what their critical quality attributes were.
It turns out there were three of them:
entrapment efficiency, vesicle size, and in vitro release,
and these are the spec limits
that give a quality product for these critical quality attributes.
Next, they ran experiments to determine what are the process parameters
that affect these critical quality attributes.
It turns out there were three critical process parameters:
emulsifier, lipid, and lecithin.
These are the initial factor limit settings.
Once they did that,
they used the Custom Designer in JMP to design response surface model designs.
They ran the experiment, and then they used Fit Least Squares
to fit response surface models for the three critical quality attributes
in terms of the three critical process parameters.
Once they did all of that,
now we can go to the design space profiler in JMP to determine the design space.
Let's go to JMP.
This is my data table that was created from Custom Designer when I created
a design for the response surface models of my three critical quality attributes
as responses in my three critical process parameters as factors.
It's what I have right here.
I wanted to note that I went ahead and I added
the critical quality attribute spec limits as column properties
because the design space profiler
has to know what the spec limits are to work.
If you don't add them as column properties,
you'll be prompted to add them when you launch the design space profiler.
But I've already done that.
I've also already saved the script
for my models that I created using Fit Least Square.
I'm going to go ahead and run that.
It automatically launches Fit Least Squares.
I have the models closed and just the Prediction Profiler open.
Notice that it looks like the Prediction Profiler that you're used to seeing.
I've also added the spec limits
as reference lines just so I can see them in relation to my models.
To get to the design space profiler, all you do is go
to the Prediction Profiler menu, turn it on, and a few down,
you'll see there's a new option called design space profiler.
If I click on that,
the design space profiler will appear right below the Prediction Profiler.
Now notice that because I had added the spec limits as column properties,
it automatically brought those in.
If you go to the bottom right-hand side,
you'll see where it's brought in my spec limits
for my three responses or three critical quality attributes.
You'll also notice that it's brought in some error,
which it's going to use as my error for my prediction model.
This has come in from the Least Square model's root mean squared error.
For example, up here, if I go to my in-vitro release model,
you can see the root mean square error is 1.2972,
and that's the same value
that's listed down here as the error standard deviation.
Now you can change these if you think these are not accurate,
these are too big or whatever.
You can even completely remove them and have no error,
but we highly recommend that you do add some error to your models.
Okay, there are several things that you might notice are different
about this design space profiler than other profilers.
One of the first things you'll notice is that over here on the Y-axis,
instead of having a value like you normally do,
like up here in the Prediction Profiler, it just says in-spec portion.
But the actual value for the Y- axis is actually over here to the right.
My in-spec portion for all three critical quality attributes when I have
the initial factor limits set at the full range is 71.2%.
Then you can also see over here that it says the volume portion is 100%.
That's because I'm using 100%
of the entire simulated data set starting up
because everything's at the full factor range.
Another thing that's different is for each factor cell,
you'll see that there's two curves instead of the usual one curve.
That's because we're looking for factor limits,
so a lower and upper limit for each factor.
The blue curve represents the in-spec portion as the lower limit changes.
There's a handy legend over here to help me.
The red curve represents the in-spec portion as the upper limit changes.
I can interact with this profiler
to change my factor limit settings or my design space.
I can move these markers.
I want to obviously move this to get a higher in-spec portion,
and so you would want to find a curve that has an upward slope.
I can move this one inward by dragging this marker.
I could also just enter values down here below the cells.
I could enter values here in these fields next to the factors.
Or there's also another way,
which is to use these buttons, move inward and move outward.
This move inward button, if I click on it, it's going to give the largest...
It's going to make the move,
it's going to give the largest increase in inspect portion.
It's going to look for the curve with the steepest path.
If I click on move outward, if I were trying to increase
the sizes of my design space, it would give me the least decrease.
I would look for the least steep path downward.
Let me go ahead and click move inward.
I noticed when I click that, the lower limit for a emulsifier went
from 700- 705, and the in-spec portion went up.
Now, if I want to look at...
This is the in-spec portion for all three critical quality attributes,
but if I want to look for them individually,
they're to the far right-hand side
of each response or each critical quality attribute.
I can see the in-spec portion for each one individually.
But up here it's finding it corporately for all of them.
Let's click move inward again and notice that a emulsifier went in again
and now it's up to 710 and my in-spec portion is up to 78.
The volume portion now is down to 89.79%.
Click it again. Now my lecithin lower limit went up.
My goal, I'm going to see if I can get my in-spec portion all the way up to 100%,
if I still can maintain factor limits that seem reasonable and realistic.
But before I do that, there are several options
from the menu of the design space profiler
that I really like to use while I'm doing this.
The first one is I like to turn on make and connect random table.
This is going to create a new table of random data.
It's going to do 10,000 by default, I'm going to leave that.
I'm going to add random noise.
It's the same random noise added
to the design space profiler based on these bare standard deviations.
Click okay and I get a new set of 10,000 data points,
uniformly distributed throughout the factor space.
These data points are color coded.
The green points are in-spec for all of my critical quality attributes
and the red are out.
Anything that's selected is still within my design space
or my current factor limit settings.
What I really like about this table is
the graphs that are created by the scripts that are automatically saved to the table.
I really like to look at the scatterplot matrix Y.
Let me turn that on.
This gives me a view of my data with all combinations
of my response variables and my critical quality attributes.
It has the spec limits drawn on and it has the in-spec portion shaded green
and all the red points are out of spec and the green points are in- spec.
I also like to look at the factor space,
and so I could do that by looking at the scatter plot matrix X.
This is going to give me my factor space or my critical process parameter space.
Once again, same color coding
and what's shaded is within the current factor settings.
See if I can situate this so we can look at both of these
while I'm adjusting my factor limits over here.
Okay, you can see as I move inward,
you can see how the shaded area is shrinking
for my factor space, my design space,
and the number of out-of-spec points are also shrinking.
Now, I really like to also turn on the connect/hide mode,
and what that does is it just hides any points that are no longer
within my current factor limit settings or my current design space.
Now if I keep clicking move inward,
you can see how the red points are starting to disappear.
One other option you can use, if you prefer,
is you can choose to only look at the points that are in-spec
or only look at the points that are out of spec.
I'm going to turn Y out of spec on
to only look at the points that are still out of spec.
I'm going to see if I can hit 100.
Move inward. I'm going to keep going.
Still looks good.
Keep going.
Okay, now I've hit 100 %, and I think this design space,
these factor limits do look like they're probably reasonable.
You might notice that I still have a red point over here because this is
a separate set of simulated data,
but I'm not worried about that one random point.
Okay, let's examine this design space that I have set here.
What I want to do is I want to send the midpoint of this design space
back to the Prediction Profiler to see what that looks like.
I can easily do that with this option that says, "Send midpoints to profiler."
When I do that, it automatically sends
the midpoint of this current design space back to the profiler so I can look at it.
I'm going to turn on the desirability, and I think that looks quite good.
I'm going to go ahead and save this setting.
I want to do that just so I can compare this against
the optimal setting if I were to optimize
by maximizing all of my critical quality attributes,
which is something you may or not want to compare against.
But it's very easy to do and I can look at the difference.
You can see there's not a huge difference
in the desirability between the center of my design space and the optimal value
if I maximized all my critical quality attributes.
I'm pretty good with this center of this design space.
I'm going to turn it back to that point.
Another thing that you can do is... Well, I don't really believe...
The design space profiler uses uniformly distributed points,
but I think that my critical process
parameters actually follow a normal distribution.
It's very easy to send these limits back to the profiler
and back to the simulator
so I can simulate using the normal distributions.
If I click Send Limits to Simulator and choose normal
with limits at three sigma, what it's going to do is it's going
to send the limits back to the simulator and figure out
what my standard deviation would be if that design space was set at three sigma.
Of course, you can change these values, you can change the distribution.
I'm going to use these settings and see when I simulate
what my defect rate looks like.
Looks like it's at zero every time I'm clicking this, which is great.
I also want to see what happens way out at the tails.
I can easily do that by using the normal weighted distribution.
Let me turn that on for each of these.
This is a way to check what happens to the tails.
Now when I click simulate,
it's not quite zero because I'm testing way at the tails, but it's still very low.
I'm very happy with this.
I also like to run a sanity check for capability,
and I can easily do that by using the Simulate to Table option,
which is going to simulate using the normal distribution
for my critical process parameters and the prediction models with the error,
the same error I used before.
I click Make Table, I get a simulated table
and it has a save distribution script that if I run,
will automatically open up capability
because I saved my spec limits as column properties.
When I check these capability reports for the three critical quality attributes,
it looks very good.
Of course, this is simulated data, so you want to check it on real data,
but I'm pretty happy with what I'm seeing about my design space right now.
I want to save this design space,
and you can easily do that by going to the design space profiler menu
and checking Save X Spec Limits, and this will save
these factor limit settings back to the original data table
as spec limits in your critical process parameter columns.
I want to click that and I go
back to my original data table just back here.
Close these.
Okay, there it is.
When I get back to my original data table, you can see that these spec limits
have been saved to my critical process parameter columns.
This is a great way to save this information if I save the data table.
It's also nice because if I do that and I save my predictions as formulas,
I can look at the design space in terms of the contour profiles.
I can do that by using the graph contour profiler.
I've already gone ahead and saved a script for this.
I'm going to run it and I have it set up to show the contour profilers
in terms of all of my critical process parameters.
You can see this faint rectangle is my design space
and the shaded contours or the contours are my spec limits.
You can see how my design space is well within...
It's well within my spec limit contours.
I have that nice buffer because I added the error,
so I can look at that in terms of all of my critical process parameters.
I'm very happy with this design space.
Let's go ahead and look at a different example.
Okay, this is an example
that's outside of the realm of the pharmaceutical industry.
It's a polymer manufacturing study,
and the goal of this study is to improve the quality of their white polymer.
I wanted to use an example to show
that these methods can be generalized in any industry.
It doesn't have to be pharmaceutical.
This example was inspired
by an example that's in the Visual Six Sigma Second Edition book that uses JMP.
It's a great book. It's in my references.
I highly recommend you check it out if you haven't ever looked at it.
They want to improve their white polymer
and they figured out that they had two critical quality attributes:
melt flow index and color index.
These are the spec limits which will ensure quality for the white polymer.
They ran experiments to figure out which process parameters
affected these critical quality attributes.
There were three of them,
Amps for slurry tank stirrer,
viscosity modifier percent , and percent of filler.
These were the initial factor limit settings.
Another thing that was different about the study
is that they used historical data
to find prediction models for their critical quality attributes
in terms of their critical process parameters.
They used two different platforms and two different types of models
for these critical quality attributes.
They used generalized regression platform
and the Lasso method to find a model for the melt flow index,
and they used the fit neural platform
to find a neural model for the color index.
Because they've used two different platforms
and two different types of models, they need to use the profiler platform
that's underneath the graph menu in JMP.
To use that, you need to save your models as formula columns.
I want to show you how you can still use
the Prediction Profiler platform to use the design space profiler.
Let's go back to JMP.
I'm going to open up the polymer data.
This is historical data.
I've got my two critical quality attribute columns,
my three critical process parameter columns.
I've gone ahead and saved the spec limits as column properties,
and these are my two models.
This is the model I created with generalized regression.
This is the model I created with neural.
I've gone ahead and saved
both of these models to the table as formulas.
I've also saved the Prediction Profiler platform script,
which I'm going to run,
and you can see this is my Prediction Profiler in terms of these two models.
The design space profiler, once again,
I go to the Prediction Profiler menu, turn on the design space profiler.
It's slightly slower here just because I'm using formulas and I have a neural model.
But once again, it opens up and it shows me that
with the initial factor limit settings, my in-spec portion is about 65 %.
It looks like what I'm going to want to do is I'm going to want to decrease
the upper limit of my XF factor critical process parameter.
Indeed, if I click move inward,
see how my in-spec portion is going up by decreasing the XF upper factor limit.
I want to see if I can get to 100 %.
If I can get there and have reasonable factor limits,
see what things look like if I keep heading for that.
Okay, I've gone to 100 %.
My factor limits on XF are a little tight,
so let's see what this looks like in the prediction profiler.
I'm going to send a midpoint up there.
I think it still looks relatively reasonable.
But one thing I wanted to point out is
if you do end up you're not happy with things,
you can actually also use this design space profiler to do what if scenarios,
if it were realistic to be able to change your spec limits,
let's say you were able to make them wider,
or what if your consumer demands that they're tighter?
You can check out what if scenarios as well
by changing these down here in these fields.
But in this case, I think I'm pretty happy with this design space.
I think it will work.
I'm going to go ahead and save the spec limits to the original data table.
See, they got saved here.
Once again, I've saved a script for the contour profiler.
I'm going to run that really quickly.
Once again, I can see my design space in terms of my contours.
That's the faint rectangles here, and the shaded regions are my spec limits.
I could see how the design space is well within my specs,
so I'm pretty happy with this.
Let's go back to PowerPoint just to give you some takeaways.
Okay, some quick takeaways about the design space profiler.
First of all, the in-spec portion that's reported in the design space profiler,
those values should not be considered probability statement unless you think
that your critical process parameter factors follow a uniform distribution
within the limits because that's what's being used to create that statement there.
Also, the design space profiler is not meant for models
that have large number of factors or very small factor ranges,
and that is because of the simulated nature of the approach it takes.
It's also recommended, as I mentioned a couple of times in my talk,
to always use random error for your prediction models,
for your responses because your models are not without error.
Finally, finding a good design space is applicable to more than just
the pharmaceutical industry, even that's where the idea came from.
That second example was just to demonstrate
how it can be used in any industry
where you care about having a robust process in maintaining quality.
These are my references, and here's contact information.
I wasn't able to show you everything about the design space profiler,
so I hope that you will check it out.
If you have any questions or if you have any feedback,
please contact me.
Thank you so much.