このチュートリアルでは、Design-Expert® ソフトウェアを使用した混合実験の最適化をご紹介致します。前回のチュートリアル(Part1:基礎編)で作成したデータを元に話を進めますので、そちらがまだお済みでなければ、前に戻って該当するセクションをお読みください。この「混合計画(Part2:最適化)」には、『多因子における RSM(Part2:最適化)』で紹介した内容と重複する部分も多くありますので、既に RSM チュートリアルをお読みになった方は、このチュートリアルで冗長と思われる箇所は読み飛ばしていただいて結構です。
| ※ 注意 最適化の詳細に関しては、ヘルププログラムの画面上で説明しています。また、Stat-Ease 社は、「Mixture Designs for Optimal Formulations」というワークショップで、詳細なトレーニングを提供しています。このコンテンツとスケジュールについて知りたい場合は、Stat-Ease 社の Webサイト にアクセスしてください。 |
はじめに、Design-Expert のアイコンをダブルクリックしてプログラムを起動します。その後 “Help” ->“Tutorial Data” に移動し、リストから “Detergent (Analyzed)” を選択してください。
今読み込んだデータには、各応答の生データはもちろん、分析済みのモデルも含まれています。洗剤の配合比率を調べるのに採られた方法は、3成分の単体格子計画であったことを思い出してください。この成分の構成要素は、水、アルコール、尿素です。その他の原料については、この実験では一定に保持されます。計測した2つの応答は、粘度と濁度に関するものでした。これからこの混合物を、分析済みモデルを使用して最適化することにします。
| ※ 注意 ファイルの中身に関する概要を確認したい場合は、画面左側の Design ブランチの下にある “Summary” ノードをクリックしてください。レポートをさらに見やすくするために、左の境界をドラッグしてウィンドウを開きます。マウスで列のサイズを変更することもできます。次に、応答の R1(粘度)および R2(濁度)の一番下のラインを見てください。“Model” 列の下をよく確認してください。2次および特殊3次に、それぞれ当てはめられています。この点を理解しておくとよいでしょう。 P.S. モデルの適合に関する詳細については、ツリーの最下部を指定し、Post Analysis から Coefficients Table ノードをクリックしてください。 |
Design-Expert の数値計算による最適化では、次に示す対象を最大化、最小化、または目標にすることができます:
上記の最後のケースである複数の応答の最適化について、説明していきます。画面左側にある Optimization ブランチの “Numerical” ノードをクリックしてこれを開始しましょう。

最適化基準の設定
Design-Expert では、成分と誤差の伝播(POE)を含むすべての変数に関して、基準を設定することができます(POE に関しては後ほど説明します)。応答の範囲はデフォルトで実測値の両極値に限定されます。
| ※ 注意 数値計算による最適化で最も重要な「最適化パラメーター」の割り当ての段階となりました。プログラムにより、「目標」とする望ましさの指標(di)に次の5つの可能性が示されます:None(なし:所定の応答をすべて無視)、Maximize(最大化)、Minimize(最小化)、Target(目標値指定)、In range(単一の定数)、Equal to(成分のみ) 望ましさの値の範囲は、いずれの応答についても 0 から 1 の値をとります。プログラムは、個々の望ましさをひとつの数字として集約した後、その中から全体として最も望ましい最大値を探し出します。理想的なケースは、値が1となる場合です。単一または複数の応答が望ましさの範囲から外れている場合、その値は 0 となります。Design-Expert で採用されているのは、Derringer と Suich によって開発された最適化手法です。この詳細は、Myers、Montgomery、Anderson-Cook 共著『Response Surface Methodology, 3rd edition』(John Wiley and Sons, New York, 2009) をご参照ください。 |
このチュートリアルの事例では、各成分は事前に設定された制約条件の範囲内に収まることになりますが、それでも、好みの目標を設定できることに注意してください。例えば、水は安価であるため、配合比が最大になるよう目標を maximize に指定することができます。

なお各成分は、指定した水準と等しく設定することができる点に注目してください。水に関してはデフォルトで指定された “in range” のままにしておきましょう。次に最初の応答である “Viscosity” をクリックしてください。Goal に “target->” を選択し、「43」を設定します。Limits に関しては Lower に「39」を、Upper に「48」をそれぞれ指定します。Tab キーをクリックして入力内容を確定してください。
最も望ましいのは目標とする値 43 を実現することですが、上記で指定した上限値と下限値は、39 ~ 48 の範囲内にある値であっても許容されることを示しています。この範囲の外側にある値には望ましさは認められず、その指標はゼロとなります。

次に、2番目の応答 “Turbidity” をクリックしてください。この Goal には “minimize” を選択し、Limits に関しては Lower に「800」を、Upper に「900」をそれぞれ指定します。Tab キーをクリックして入力内容を確定してください。望ましさの方程式を適正に機能させるためには、この2つの閾値を必ず指定する必要があります。デフォルトでは、実験で観測された応答の範囲、この事例では 323~1122 の範囲に設定されます。ただし、この事例においては、洗剤の濁度が 800 を下回るとそれ以上メリットはないことがはっきりしています。この値は、顧客の目から十分クリアに見えることが既にわかっているからです。一方で、900 を上回るようになると (濁りすぎて) 見た目が悪くなります。

これまでの設定から、構築された望ましさの関数は次の通りです:
1.粘度について:
2.濁度について:
望ましさの重みと変数の(相対的)重要度の変更
各応答には上記以外にも “weights” と呼ばれるパラメーターを選択することができます。重みとは、上限値や下限値、あるいは目標値に至る変化の度合いを強調するものです。重みが 1 の場合は、望ましさの指標 (di) は 0 から 1 の間で線形的に変化します。重みが 1 よりも大きい場合(重みの最大値は 10)は、目標に至る変化は大きくなります。重みが 1 よりも小さい場合(重みの最小値は 0.1)は、目標に至る変化は小さくなります。この重みは、望ましさの傾斜に表示されたハンドル (四角 □) をマウスで「つかむ」(クリックしてドラッグする)ことによって、簡単に変更することができます。以下のように傾斜のハンドルを、下に動かして実際に試してみてください。

現在の重みは、10 になっている点に注目してください。濁度の目標値が 800 付近になるよう、より一層強く重みを付けたのです。この場を離れる前に、Upper Weights の値をデフォルトの「1」に入力しなおして Tab キーを押してください。これで望ましさの傾斜は、まっすぐになります。“Importance” は、目標を達成するために用いた一部又は全ての変数の優先順位を相対的に変更するツールです。ある変数を他の変数より重要視したい場合は、その Importance を他よりも高く設定します。Design-Expert では、重要度の水準がプラス1(+)からプラス5(+++++)まで用意されています。この調査の場合、Importance フィールドは中間の +++ 設定のままにしておきましょう。重要度の基準がデフォルトの指定のままであれば、他から優先される目標は特に指定されないことになります。
最適化の実行
最適化を開始するには、“Solutions” タブをクリックします。Ramps 表示がデフォルトになります。

ランプ表示は、それぞれのグラフを一目で理解できるようにまとめたものです。各ランプの点は、その解の因子設定、もしくは、応答予測を表します。点の高さは、望ましさの度合いを表します。Factors Tool のドロップダウンメニュー(1, 2, 3, …)から様々な solution を選択し、その点の違いを確認してみてください。成分の各水準をあらわす赤で表示されているドットは左右に大きく変動しますが、2つの応答はそれぞれ指定された目標に留まっていませんか(Desirability = 1)?グラフ上部付近にある最後の解 (この事例では Solution 番号 17) をクリックしてみてください。以下の様になっていませんか?

解を調べていく中で、上記の局所的最適解が明らかになった場合は、粘度が目標値から外れ、濁度も過剰になるため、高温におけるオプションよりも望ましさが低くなることに注意してください。
マウスを画面の上部に移動し、“Report” を選択します。
レポートの最初の内容は、最適化の仕様の要約です。その後に、望ましさの順番に解がリストされます。最後に探索の開始点に関する詳細が表示されます。
| ※ 注意 このレポートを下にスクロールして、プログラムが望ましい結果の実験検索をどこから開始したかを確認してください。反復計算の回数を増やせば、それだけ複数の局所的最適解を見つける確率が高くなり、その中から他の最適解より望ましさの値が高いものを見つけ出すことができます。この場合、110回の最適化が繰り返され、10の計画点から開始し、無作為に選択した100ポイントが追加されます。 |

画面の上部に戻り、“Bar Graph” を選択します。
上記の棒グラフは、各変数が設定された基準をどれだけ満たし、各応答を組み合わせた全体の望ましさは、どの程度であるかを示しています。値が 1 に近いほど好ましいものとなります。これは最善の解決策ではありません!

最適化グラフ
“Graphs” タブをクリックすると、望ましさの機能を含む All Responses のグラフが表示されます。ドロップリストから “Desirability” を選択して、全体的な望ましさを表す等高線グラフを表示させてみましょう。これにより、青い背景の中のグラデーションで色分けされた3つの領域で示されているように、望ましい配合はほぼ3箇所の「スイートスポット」に分かれていることが明らかになります。

上記のスクリーンショットは、カラーグラデーションがグラフに表示されています。望ましさの値は青になるほど低く、黄色になるほど高くなります。Design-Expert では、現在の解の最適点にフラグが立てられます。
次に、三角形の混合空間の上部にある最大のスイートスポット(最大の領域)にフラグが移動するまで、solution のドロップダウンリストを選択してみましょう。この望ましさ(スイートスポット)に対応する応答を表示するには、Response のドロップリストの矢印を押して、“Viscosity” を選択してください。

| ※ 注意 グラフを右クリックして、“Graph Preferences” を選択し、Surface Graphs セクションに移動した後、Show 2D grid lines をオンにします。上図のようなグリッドラインが表示されます。Graph preferences には、ここだけでも他に多くのオプションがあり、更に別のタブも用意されています。必要に応じてそれらを確認し、“OK” をクリックしながら、このチュートリアルで指定したどのオプションが実際の等高線プロットに影響するかを確認してください。また最適な濁度応答についても、よろしければお試しください。 P.S. このチュートリアルを続けるため、ウインドウの下部に戻って “Default” をクリックし、最初のレイアウトに戻してください。 |
今度は、望ましさの曲面を3次元で表示してみましょう。もう一度 Response リストに戻り “Desirability” を選択したら、Graphs Toolbar にある “3D Surface” をクリックしてください。
これで、特定の配合領域に広がる望ましさが高水準を保持しているひとつの高い山(1)を確認できるはずです。もう1つの高い点(2)も目標を達成できますが、ここでは配合を厳密に調整する必要があります。もうひとつのピーク(3)は望ましさの基準に達していません(低いです)。
| ※ 注意: Design-Expert のデフォルトの解像度は最大より低く設定されています。グラフ上で右クリックし “Graph Preferences” を選択したら、Surface Graphs タブを指定し、Graph resolution を “Very High” に変更して望ましさの 3D 曲面の解像度を拡大してみてください。新規 Graph preferences に対して “OK” をクリックします。Default の設定に戻します。 |

成分量のばらつきに関する事前の知識があれば、その情報を Design-Expertに組み入れることができます。これによって、応答に対する誤差の伝わり方を表す誤差の伝播(POE)プロットを作成できます。伝達されるばらつきを最小化する条件を見出すことができれば、計測量に存在する細かなばらつきに左右されない堅牢な製法を確立できるわけです。
まず始めに、画面左側にある “Design” ノードをクリックして計画割付表の画面を再開します。Design Toolbar から “Column Info” を選びます。
Std. Dev. 列内に、各因子の標準偏差を次のように入力します。Water:「0.08」、Alcohol:「0.06」、 Urea:「0.06」

これで、各応答に関するグラフを作成することで誤差の伝播を計算できます。まず、Analysis の “Viscosity” ノードを選択して、“Model Graphs” タブをクリックしてください。続いて、前回グレー表示で選択できなかった “View” -> “Propagation of Error” を選択します。同じく、メニューから “3D Surface” を選択してください。現在画面は以下に示すスクリーンショットと同じになっているはずです。
曲面で最小値をとる部分が、粘度応答に対して伝播する誤差の量が最小となるところです。これらの最小値は、配合成分量のばらつきに対して最も堅牢となるモデルグラフの平面領域に現れます。

今度は、“Turbidity” ノードをクリックして、“Model Graphs” ボタンをクリックし、“View” -> “Propagation of Error” を選択したら、その “3D Surface” を見てみましょう。必要に応じて、曲面が見やすくなるよう回転させてみてください。

以上で、2つの応答に関する最適条件を見つけることができましたので、前に戻って誤差の伝播に関する基準を加えることにしましょう。Optimization の “Numerical” ノードをクリックしてください。“POE (Viscosity)” を選択し、Goal に “minimize” を選択したら Limits の Lower に「5」を Upper に「8」を指定してください。

“POE (Turbidity)” を選択し、Goal に “minimize” を選択したら、Limits の Lower に「90」を Upper に「120」を指定してください。

“Solutions” タブをクリックして、追加した基準で新しい解を作成します(以下のように表示するには、Solutions Toolbar で “Ramps” をクリックする必要がある場合があります)。
1番目の解は、粘度の目標値 43 を達成し、濁度を最小に抑えながら、同時に POE が最小となる(成分量のわずかな変動に対して最も堅牢な)スポットを見つける配合を表しています。
| ※ 注意 時間に余裕があれば、別の解も検討してみてください。入力した基準を満たすような結果が得られるかもしれません。複数の目的に合致するより良い解が、いくつかあるかもしれません。 |

最適点からトレースプロットの表示
数値計算による最適化の Graphs から引き続き、“All Responses” をドロップダウンから選択します。ここでは、すべての応答の俯瞰図と、解を求めた手段が示されます。望ましさのプロットは、前とそれほど変わっていないように見えることに注意してください。これは POE 基準を追加しても、それほど結果に影響を与えないからです。しかし最適点周辺の応答の感度を調べるのには良い機会です。Response を “Turbidity” に変更して、観察してみてください。次に、Graphs Tool パレットから “Trace” を選択します。
ここで、成分 A(water)および B(Alcohol)を変更しても、応答にはわずかな違いしか生じませんが、C(urea)を変更した場合は大きく変化することが分かります。
もうひとつの応答、つまり粘度のトレースについても見てみてください。それは更に面白い結果になりそうです!

指定した等高線の外側となる領域を陰影表示することで、各応答の望ましいスイートスポットを見分けることができます。そこは、すべての要件を満たすことのできる絶好の領域です。この事例の場合、応答の要件は以下の通りです::
上記の応答プロットをすべて重ね合わせることにしましょう。Optimization の “Graphical” ノードをクリックしてください。Viscosity の応答について、Limit フィールドの値が設定されていない場合は、Lower に「39」、Upper に「48」と入力してください。

次に、応答 “POE(Viscosity)” をクリックします。Limit フィールドが設定されていない場合は、Upper に「8」と入力してください。Lower には何も入力しません。単純に最小化する場合は、グラフによる最適化で必要ありません。

次に、応答 “Turbidity” に進み、Limit フィールドで次の値が事前に設定されていない場合は、Upper に「900」と入力してください。これも最小化であるため、Lower には何も入力しません。

次の応答 “POE(Turbidity)” をクリックし、Limit フィールド以下の値が設定されていない場合は、Upper に「120」と入力してください。
“Graphs” タブをクリックして “overlay” プロットを作成します。
指定した条件を満たしていない領域はグレーで表示され、上手くいけば機能窓、すなわちスイートスポットの部分が残されているはずです。

最適条件の位置にフラッグが残っている点に注目してください。実に便利です!Design-Expert に表示されるこの画面は、3D 表示の望ましさに比べると見た目は劣るかもしれませんが、境界的特性の条件を満たし、なおかつ、機能する範囲をウインドウとして表示したいときにとても便利です。グラフによる最適化のプロットで示されたグレーの領域は、選択基準を満たしていません。黄色の領域は、2つの応答の条件を同時に満たす因子を設定することができることを表します。
応答の上限または下限を示す線は、マウスをクリックするだけで識別することができます。等高線とそのラベルは、他と判別しやすいよう違う色になっている点にも注目です。グラフの外側をクリックすれば、等高線とそのラベルを元の色にリセットできます。
さて現在、濁度の上限値は 900 ですが、これを引き下げることは可能でしょうか。機能窓はそれによってどのように変化するでしょうか?Turbidity が 900 の等高線をクリックしてください。選択された等高線は赤に変わります。その等高線をマウスでドラッグして約 750 になる位置が見つかったらそこでマウスを止めます。最後に、この等高線を右クリックして “Set contour value” を選んだら、「750」と入力します。
| ※ 注意 フラッグが邪魔な場合は、別の場所にドラッグしてください。 |
“OK” をクリックして、等高線レベル750 を取得します。より小さいスイートスポットは消えていて、領域で中程度のものは減少しています。元のスイートスポットに設定し直すには Criteria に戻り、Turbidity の Upper limit を 900 に戻します。

| ※ 注意 Criteria タブの Turbidity に “Show Interval (one-sided)” を指定し、さらに “Graphs” をクリックします。これにより、信頼区間によって境界が押し出され、モデルに基づく平均予測で占められた不確実性がこの混合実験から導き出されました。 ![]() 濁度に重ね合わせた信頼区間(CI) FDA の定めに従い、その QBD(Quality by Design)の考え方を踏襲するなら、CI の境界で作成された機能窓は、機能的な設計空間であると考えることができます。ただし、製造設計空間を構築するためには、許容区間を課す必要があります。このチュートリアルにおける実験の場合、許容区間の制約をサポートするには、試行数が少なすぎます。QBD の製造に適したサイズを計画するには、ワークショップ「Designed Experiments for Pharma」に参加してください。 |
3成分についてはグラフによる最適化を非常に有効に利用することができますが、成分数が増えるほど最適化する作業も面倒になってきます。数値計算による最適化の機能を使用して、これよりも早く解を見つけた後に、グラフによる最適化に戻ってプレゼンテーション用の資料を作成すると良いでしょう。
最適条件における応答予測
“Confirmation” ノードをクリックします(画面左下付近にあります)。デフォルトでは最初の解が画面に表示される点に注意してください。
これにより、単一ポイントの予測区間 (PI) がデフォルトに設定されます。
| ※ 注意 最適な配合を6回くらい繰り返してから、Enter Data オプションをクリックして、これらをDesign-Expert に入力することをお勧めします。それから、データ平均を計算し、評価用のPI値の中央に配置します。ご自身で数字をいくつか入力してみて、どうなるかを確認してみてください。 |

データファイルの保存
この計画に関する最適化のセットアップにこれまで多くの時間を費やしてきましたので、そろそろ作業内容を保存するのが良いでしょう。“File” メニューをクリックして、“Save As” を選択しましょう。これで、ファイル名(tut-MIX-opt を推奨)を指定し、Save as type には “*.dxpx” を選択して保存しましょう。
数値計算による最適化とグラフによる分析の2つをうまく組み合わせることで、物事の本質を見抜く大きな力がいかにもたらされるかをご理解頂けたかと思います。多数の応答に関する多数の成分を調査する際には、数値計算による最適化が必要不可欠なものとなります。しかし、問題の背景にある知識を考慮せず、最適化をコンピュータのみで行おうとしても満足のいく結果を期待することはできません。
例えば、現状を全く把握していない人なら、実際には全くあり得ない最適化の基準を設けてしまうかもしれないからです。その結果、あらゆる点で望ましさはゼロになります!これを回避するには、許容範囲を広く設けてみることです。そして、因子水準の変更が応答にどのような影響をもたらすのかについての知識を得るにつれて、範囲を絞り込んでいきましょう。多くの場合、複数の応答に関して条件を同時に満たす「最良の」因子水準を見つけるには、複数の道筋を用意する必要があります。
Design-Expert を使うことで、複数の成分が複数の応答に与える影響の違いを探索することができます。望ましさを最大限にする解を素早く見つけるには、数値計算による最適化を使用します。最終報告書にまとめるには、最適条件の「スライス」を重ね合わせたグラフ化されたオーバーレイプロットを使用します(成分それ自体に対しても目標を設定できることを忘れないでください。例えば、この事例では、価格の安い水の量を最大にするのが賢い選択になるかもしれません)。
混合物の設計方法の詳細については、「Mixture Designs for Optimal Formulations」というタイトルのワークショップにご参加ください。最新のスケジュールについては、www.statease.com のトレーニングリンクにアクセスしてください。
上記のコメントにもあるように、この事例では、価格が最も安い原料(この場合は水)の最大化を検討することをお勧めします。逆に言えば、配合の調製に非常に高価な原料が含まれている場合、そのような原料は出来る限り減らした方が良いのは明らかです。こうしたコストは、Design-Expert の数値計算による最適化の応答のひとつとして、わずかな手間をかけるだけで組み入れることができます。
再び “Mix-a.dxpx” ファイルを開いてください。ツリー構造の Design ブランチで、最後の応答の列を右クリックします。メニューから “Insert Response” -> “After This Column” を選択します。

次に、新規応答列のヘッダーを右クリックして “Simulate” を選択します。それから “Use equation in analysis” を選択してください。

“Next” をクリックし、Response Name には「Cost」 、および Response units には「$/kg」と入力します。次に、所定の領域に「.5b+.2c」と入力してください(1キロあたりの価格がアルコールは 0.50 ドル、尿素は 0.20 セント を表します- 水は実質的にコストがかからないものと仮定します)。

“Finish” をクリックして計算式を決定し、この混合計画におけるすべての配合のコストを計算します。これらをより見やすくするには、Response 3 列のヘッダーを右クリックして “Edit Info” を選択し、ドロップダウンリストの Format を “0.0” に変更します。そして、“OK” をクリックします。

それでは、ツリー構造の Analysis ブランチ下の “Cost” ノードをクリックして、コストに関するモデルグラフを直接表示することにしましょう。結果を予測できる決定論的計算式を既に入力してあるので、モデルを構築する必要はありません。

水は価格が非常に安いため、青で表示されています。
複数の応答最適化に、コストを組み入れる準備がこれで整いました。以下の図に示すように、Optimization の “Numerical” ノードに移動し、そこで “Cost” を選択したら、Goal を “minimize” に指定してください。
この段階で Solutions ボタンを押すわけですが、結果はもう分かっています:指定された制約条件の範囲内で水の量が最も多いときに、コストは最も低くなります。もし関心があれば、Viscosity と Turbidity についても POE の目標を入力し直してみてください。ただし、さしあたり、ここでは行う必要はありません。現実に混合計画を実施したときは、この追記で紹介したチップスを利用して、コストを考慮に入れてください。
