日本語 English
株式会社ヒューリンクス
TEL:03-5642-8384
営業時間:9:00-17:30

多因子における RSM(応答曲面法) (Part 2:最適化)

  1. はじめに
  2. 数値計算による最適化
  3. グラフによる最適化
  4. 応答の予測と確認
  5. おわりに

1.はじめに

このチュートリアルでは、Design-Expert ソフトウェアを使って実験を最適化する方法を学びます。前回の、 多因子におけるRSM(Part1) で作成したデータを元に説明を進めていきますので、まだお済みでない方はそちらを先にお読みください。  

最適化に関する詳細な説明は、プログラムのオンラインヘルプをご覧ください。また、Stat-Ease社のワークショップを通じて詳細なトレーニングを受けることができます。コンテンツとスケジュールについては、Stat-Ease社のWebサイトにアクセス、または電話して確認してください。  

この章では、時間、温度、触媒の3つを因子とする関数として、反応率と活性に関する2種類の応答の予測モデルを取り扱います。これらのモデルは、化学反応の中心複合計画(CCD)で得られた結果を元に構成します。  

Help -> Tutorial Data -> Chemical Conversion (Analyzed) を選択して、使用します。  

計画に関する概要を確認したい場合は、画面左側の Design ブランチの下にある “Summary” ノードをクリックしてください。以下に示すように、この計画のステータス画面ではConversion は2次モデルで、Activity は線形モデルで、それぞれモデル化されていることを確認できます。

計画の概要

Post Analysis ブランチの下部にある “Coefficients Table” ノードをクリックします。

Coefficients テーブル

このテーブルでは、すべての応答における係数の有益な比較が示されます。

 モデルを比較するには
Coefficients テーブルには、コード化された因子に関する内容が示されているため、比較影響について推測することができます。例えば、Conversionの方程式にある AC の係数(=11.375)は、因子 B の係数(=4.04057)よりはるかに高い値であることに注目しましょう。これは、交互作用 AC は因子 B よりも反応率により大きな影響を及ぼすことを表します。テーブル内の係数は、p 値によって色分けされていますので、どの項が有意であるかを一目で見分けることができます。この例では、2次モデル全体の使用を選択していますので、その水準が 0.10 を超えて有意ではないと判定されている重要でない項(黒で表示)も、そこには幾つか含まれています。

P.S. 任意のセルを右クリックすると、このレポートを PowerPoint や Word にエクスポートしてプレゼンテーションやレポートに使用することができます。とても便利ですので試してみてください。

2.数値計算による最適化

Design-Expertの数値計算による最適化は、次に示す対象を最大化、最小化、または、目標にすることができます

  • 単一の応答
  • 単一の応答の内、他の応答の上限と下限またはそのいずれかを境界条件とするもの
  • 2つ以上の応答を組み合わせたもの

画面左側にある Optimization ブランチにある “Numerical” ノードをクリックしてこれを開始しましょう。

数値計算による基準の設定例

最適化基準の設定

Design-Expert では、因子と誤差の伝播(POE)を含むすべての変数に関して基準を設定することができます(POE に関しては後ほど説明します)。因子の範囲は、プログラムによって要因の水準(コード化された値ではプラス1からマイナス1に対応)、すなわち、この実験計画で最も正確な予測が期待される範囲に限定されます。応答の範囲はデフォルトで実測値の両極値に限定されます。この事例の場合は、time(時間)、temperature(温度)、catalyst(触媒)の各因子の基準についてはデフォルトの指定のままにしておくことになりますが、応答の基準に関しては若干の変更を加える必要が出てきます。

それでは、数値計算による最適化で最も大切な段階、すなわち、最適化パラメータの割り当てに入りましょう。このプログラムでは、目標とする望ましさの指標(di)に次の5つの可能性を使います。

  • 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) をご参照ください。

このチュートリアルの事例では、反応率をできるだけ高くすることが前提として求められていますので、“Conversion” をクリックし、その Goal を “maximize” に指定しましょう。以下に示すように、Lower Limit は 「80」(許容できる最小値)に、Upper Limit は 「100」(理論上の最大値)に指定します。

これら2つの閾値は、望ましさの方程式を正しく機能させるために必要ですので必ず入力してください。デフォルトでは、応答の実測範囲、この事例の場合、51 と 97 がこれら2つの閾値として設定されます。望ましさの上限を 100 に引き上げたことで、目標とする最大値を拡張したことになります。これを修正しなければ、目標とする最適条件に満たない条件しか見つけられないことになります。

Conversion に関する基準の設定

続いて、2番目の応答 “Activity” をクリックしてください。Goal を target -> とし、その値を「63」に指定します。Lower Limits と Upper Limits にはそれぞれ「60」 と「66」を指定します。この2つの値は、最も望ましいのは目標値 63 を実現することですが、値 60 と 66 の間の範囲も許容することをあらわします。この範囲外にある値は条件として認めません。

以上の設定で、望ましさに関する以下の関数が作成されました:

1. Conversion (反応率について):

  • 80% より低い場合、望ましさの指標 (di) は 0 となる
  • 80% から 100% の間では、望ましさの指標 (di) は 0 から 1 の間で右上がりに増加する
  • 100% を超える場合、望ましさの指標 (di) は 1 となる

2. Activity (活性について):

  • 60 より低い場合、望ましさの指標 (di) は 0 となる
  • 60 から 63 の間では、望ましさの指標 (di) は 0 から 1 の間で右上がりに増加する
  • 63 から 66 の間では、望ましさの指標 (di) は 1 から 0 の間で右下がりに減少する
  • 66 を超える場合、望ましさの指標 (di) は 0 となる
Activityに関する基準の設定
 注意
 ボタンを押せば、Numerical Optimization(数値計算による最適化)に関する Screen Tips を開き、Design-Expert ソフトウェアの高度な機能の操作に役立つアドバイスを参照できることを思い出してください。

望ましさの重みと変数の (相対的) 重要度の変更

各応答には上記以外にも “weights” (重み) と呼ばれるパラメータを選択することができます。重みとは、上限値や下限値、あるいは、目標値に至る変化に一層明確な強調を加えるものです。重みが 1 の場合は、望ましさの指標 (di) は 0 から 1 の間で線形的に変化します。重みが 1 よりも大きい場合 (重みの最大値は 10) は、目標に至る変化は大きくなります。重みが 1 よりも小さい場合 (重みの最小値は 0.1) は、目標に至る変化は小さくなります。

 重み付けの変更について
この重みは、望ましさの傾斜に表示されたハンドル (□) をマウスで「つかむ」(クリックしてドラッグする) ことによって簡単に変更することができます。以下のように左側の正方形を下に、右側の正方形を上に動かして実際に試してみてください。


ハンドルをマウスで掴んで重みを変更

例えば、ある顧客が自分たちは目標値 63 を望んでいるが、他の指定で必要とされる基準とのトレードオフの関係によってそれを確実に達成することができない場合、仮に誤りが生じるとしても目標値よりも高い側で生じる方が良いという要望に応えようとすれば、このような設定になるかもしれません。この場を離れる前に、Weights の Lower と Upper の値をそれぞれデフォルトの「 1 」「 1 」に入力しなおしてください。これで、曲線はまっすぐになり、元の「テント型」の形状 (^) に戻るはずです。

“Importance” は、目標を達成するために用いた一部又は全ての変数の優先順位を相対的に変更するツールです。ある変数のみを他のすべてから特に重要視したい場合は、その Importance を他よりも高く設定します。Design-Expert では、重要度の水準がプラス1 (+) からプラス5 (+++++) まで用意されています。この調査の場合、Importance フィールドは中間の +++ 設定のままにしておきましょう。重要度の基準がデフォルトの指定のままであれば、他から優先される目標は特に指定されないことになります。

次に、“Options” ボタンをクリックして、数値計算による最適化を制御して思い通りに実行させるための設定方法について学びましょう。

 Numerical Optimization(数値計算による最適化)について
“Help” を押すと、これらのオプションに関する詳細を確認することができます。次は Duplicate Solution Filter を使用した実験です。これは本質的に等しい解を取り除くための “Epsilon” (ε: 差異の最小値) を設定するものです。最適化に向けた最初の検索を実行した後、この Option に戻ってさまざまな方向にスライドしてみてください。どのような解が示されるかよく注意してください。Filter バーを右に動かすと、数が減ります。逆に、バーを左に動かすと 解が減少します。

“OK” をクリックして Optimization Options ダイアログボックスを閉じます。

Optimization Options ダイアログボックス

最適化の実行

最適化を開始するには “Solutions” タブをクリックします。デフォルトで Ramps view が設定されていますので、最適な因子設定と予測応答の状況を視覚的に確認することができます。

プログラムは望ましい結果を求めるために探索を開始する条件のセットを無作為に選択しますので、実際に表示される結果はこれとは異なる場合があります。反復計算の回数を増やせば、それだけ複数の局所的最適解を見つける確率が高くなり、その中から他の最適解より望ましさの値が高いものを見つけ出すことができます。Design-Expert は、その結果を分かりやすいようにテーブル形式に並び変えて表示します。開始条件が無作為化されているため、実際の結果は上記に示されたレポートの内容とは若干異なる場合がありますのであらかじめご了承ください。

各種の解のRamps表示
(結果は異なる場合があります)
 Ramps(ランプ)表示による各種の解について
ランプ表示は、それぞれのグラフを一目で理解できるようにまとめたものです。色づけされた各ランプの点は、その解の因子設定、もしくは、応答予測をあらわします。点の高さは、望ましさの度合いをあらわします。Factors toolsの “Solutions” ドロップダウンメニューからさまざまな解を表示します。それらのいくつかに目を通し、点の違いを確認してみてください。隣り合う解の間では、点の変動は非常にわずかに過ぎないかも知れません。しかし、temperature について詳しく見てみると、2つの最適解を区別することができるはずです。解リストの最初の幾つかは 90℃ 付近にあり、下にある幾つかは 80℃付近にあります。

Solutions Toolbar には同じ最適化を3種類の視点で表示する方法が用意されています。“Report” をクリックしてください。

次に、Solutions Tool の “Bar Graph” を選択して棒グラフを表示します。
棒グラフは、各変数が設定された基準をどれだけ満たしているかを表します。値が 1 に近いほど好ましいものとなります。

最適化グラフ

等高線グラフの全体的な望ましさと、すべての応答を表示するには、画面上部の “Graphs” をクリックします。Factors Tool パレット上で “C:Catalyst” を右クリックして、それを “X2 axis” に指定します。すると Temperature は値が 90 ℃ の定数因子となります(この水準は Solution #1 で自動的に選択されます)。

以下の望ましさのグラフのように、ドロップリストを使用して各プロットをさらに大きくして見ることもできます。
スクリーンショットは、グラフにグラデーションカラーが表示されています。望ましさの値は青になるほど低く、黄色になるほど高くなります。

望ましさのグラフ (X2 軸を因子 C に変更)

Design-Expertでは、最適解をあらわす点にフラッグが立てられます(上部のボタンバーで選択されているように、上のスクリーンショットでは番号 “1” が選択されています)。望ましさに関する応答を見たい場合は、Response ドロップリストから目的の応答を選択してください。Conversion プロットを以下に見てみましょう。

Conversion の等高線プロット (最適解にフラッグが立てられている)

最適化の実行

最適化を開始するには “Solutions” タブをクリックします。デフォルトで Ramps view が設定されていますので、最適な因子設定と予測応答の状況を視覚的に確認することができます。

プログラムは望ましい結果を求めるために探索を開始する条件のセットを無作為に選択しますので、実際に表示される結果はこれとは異なる場合があります。反復計算の回数を増やせば、それだけ複数の局所的最適解を見つける確率が高くなり、その中から他の最適解より望ましさの値が高いものを見つけ出すことができます。Design-Expert は、その結果を分かりやすいようにテーブル形式に並び変えて表示します。開始条件が無作為化されているため、実際の結果は上記に示されたレポートの内容とは若干異なる場合がありますのであらかじめご了承ください。

各種の解のRamps表示
(結果は異なる場合があります)
 等高線グラフの Graph Preference について
 このグラフ上で右クリックして “Graph Preferences” を選択します。Surface Graphs に移動して “Show 2D grid lines” をクリックします。
Show 2D grid lines オプション

最適解の位置は、グリッド線によって大まかに把握することができますが、より厳密な位置を知るには、フラッグを右クリックして “Flag Size” -> “Full” を選択すれば、その位置の座標に加えて、予測された結果に関するその他様々な情報を表示させることができます。フラグに表示する内容のみ表示するには、再度右クリックして “Edit Info” を選択します。

フラッグサイズの切り替えで詳細を表示

望ましさの曲面を3次元で表示させてみましょう。Graphs Toolbarのドロップダウンリストから再び “Desirability” を選択し、“3D Surface” をクリックしてください。次に、グラフを右クリックして、“Set rotation” を選択して、水平方向のコントロールを「170 」に変更してください。Tab キーを押すか、グラフをマウスでクリックしてください。なんて素晴らしい眺めでしょう!

現在、触媒水準の全範囲を通じて、望ましさが高水準を保持している山を確認できるはずです。別の言葉で言い換えると、この最適解は因子Cに対して比較的に堅牢であると言えます。

望ましさの 3D プロット
 注意
グラフを右クリックして、Graph preferences を開いてください。Surface Graphs タブから 3D graph shading オプションを “Wire Frame” に変更します。

3D graph shadingをwire frameに変更

いずれにせよ、Design-Expert を使用して、プロセス因子の最も望ましい組み合わせを紙に印刷したら、それを一緒に働く人達に見せてください(是非そうしてください!)。自分で分析した結果を人に見せる最も良い方法は、紙に印刷するのではなく、お持ちのコンピュータ画面上でデモンストレーションするか、出力結果をプロジェクターに映し出し、より多くの人々がそれを見られるようにすることです。この事例の場合では、デフォルトで指定されたカラーとその他の表示スキームに戻すのが最善の選択です。これを実行するには、右クリックで Graph Preferences を選択したら、Fonts and Colors、All Graphs、Surface Graphs について “Default” ボタンをクリックしてください。

P.S. Design-Expert には非常に高いグラフ解像度のオプションが用意されています。よろしければ、試してみてください。ただし、レンダリングの処理時間がかかると感じるかもしれません(特に、3D グラフの回転中)。当然、これは、ご使用のコンピュータの処理速度と、グラフィックスカードの機能によって異なります。

次は、最適化のグラフィック表示について説明します ― プロセスの最適化のためにスィート・スポットの表示は、RSM 実験の結果を伝える方法として最も適しているといえるでしょう。

3.グラフによる最適化

数値計算による最適化で最適解を求めたとき、温度が 90℃ となる領域に条件を満足させる解を見つけることができました。操作ウィンドウを広く表示するために、“Graphical” ノードをクリックしましょう。ここで必要な条件は、数値計算による最適化の条件と基本的に同じです:

  • 80 < Conversion
  • 60 < Activity < 66

最初の応答 Conversion について (まだ入力していない場合は)、下限値として Lower Limit に 「80」 と入力してください。上限値は入力しなくても構いません。空白でもグラフによる最適化は正しく機能します。

次の応答 “Activity” をクリックしてください。まだ入力していない場合は、下限値として Lower Limit に「60」を、上限値として Upper Limit に「66」を入力してください。

グラフによる最適化:反応率基準の設定例

それでは、“Graphs” タブをクリックして、“overlay”(重ね合わせ)プロットを作成してみましょう。指定した条件に合わない領域は影となり、機能窓すなわち “sweet spot” となる領域だけが残っている点に注目してください(恐らくそうなっているはずです!)。それでは、Factors Tool に移動して、“C:Catalyst” を右クリックしたら、それを “X2 axis” に変更してください。これにより、Temperature は、前の Solution 1 で実行したのと同じく、値が 90℃ の定数因子となります。

このときフラッグは、最適解の位置から少しも動いていない点に注目しましょう。実に好都合です!Design-Expert に表示されるこの画面は、3Dで描かれた望ましさに比べると見た目は劣るかもしれませんが、境界的特性の要件を満たし、なおかつ、機能する範囲を窓として示したいときにとても便利です。グラフによる最適化のプロットで示された陰の領域は、選択基準を「満たさない」部分です。黄色い窓 “Window” は、2つの応答の要件を同時に満たす因子を設定することのできる領域を表します。

オーバーレイプロット

 ウィンドウの操作における不確実性の追加
Criteria に戻り、Conversion と Activity の両方に対して “Show Interval(one-sided)” をクリックします。これにより、モデルで予測した境界の不確かさ(ソートの幅)の程度が示されます。これは一種のバッファーです。

機能窓の上に重なった信頼区間 (CI)

これを確認したら元に戻って、区間をオフにしてデフォルトの設定に戻してください。

P.S. FDAの定めに従い、その QBD(Quality by Design)の考え方を踏襲するなら、CIで境界が作成された機能窓は、機能的な設計空間であると考えることができます。つまり、任意の特定単位を安全に操作できる領域です。ただし、製造設計空間を構築するためには許容区間を課す必要があります。このチュートリアルにおける実験の場合、許容区間の制約をサポートするには、試行数が少なすぎます。QBD の製造に適したサイズを計画するには、Stat-Ease 社が開催しているワークショップ等で手に入る専門的知識が必要です。

さて現在、反応率の下限値 80 ですが、これを引き上げることは可能でしょうか。機能窓はそれによってどう変化するでしょうか?Conversion が 80 の等高線をマウスでドラッグして 90 になる位置を探します。見つかったら、それを右クリックして、contour valueを90に設定します。

Conversion の下限基準を 90% とするこの一歩踏み込んだ目標設定は、どうやら実現可能な様子です。この条件を変更することになれば、Activity の基準である下限値の指定は最早必要ありません。つまり、操作窓の境界条件にはなりません。

2因子については、グラフによる最適化を非常に有効に利用することができます。しかし、因子数が増えれば最適化の作業がそれだけ煩雑になります。数値計算による最適化の機能を使用する方が、よっぽど早く解を求めることができます。解を見つけることができたら、グラフによる最適化に戻って、処理ウィンドウを探索するためのさまざまな最適解の出力結果を見ていきましょう。

Conversionの下限値の指定を90に変更

4.応答の予測と確認

Design-Expert のこの機能を使用すると、任意の因子の組み合わせの応答予測を生成することができます。これがどのように機能するかを確認するには、“Point Prediction” ノードをクリックしてください(画面左下にあります)。デフォルトでは最初の解が画面に表示される点に注意してください(Design-Expert のプログラマーがこのような仕様にしてくれたので、解を Factors Tool で選択する手間が省けます)。

第1の解を表示するよう設定した Point Prediction 画面

確認

RSMモデルに基づく最適化の設定を確認した後の次のステップは、実際の動作の確認です。これを行うには、画面左側の “Confirmation” ノードをクリックします。

第1の解の予測値の確認

Activity 応答の 95% 予測区間(“PI low” から“PI high”)を見てください。 これは、この製品特性に関する個々(n = 1)の確認テストで、期待すべき内容が示されます。 変動のレベルに驚くかもしれませんが、期待値を管理するのに役立ちます(注意: この場合、日々のブロック効果は予測にカウントすることはできません)。

もちろん、たった1回の確認実験だけでは、多くの人々を納得させることはできません。 何回か試行するのが望ましいでしょう。 例えば、実験者は3回の確認テストを行うとします。“Confirmation Location #1” タブをクリックして、Runs の横に「3」と入力し、Tabキーを押します。これで、Response Data の下には3つの行が追加されます。Activity には「62」「63」「64」と入力してください。

確認実験の結果の入力

n が増えるにつれて、予測区間(PI)が狭くなることに注意してください。データの平均(63)は、範囲内に収まっていますか?そうであれば、モデルは確認されていますが、そうでない場合は赤色に変わります – DXの便利な機能です。

確認結果は活性の間隔内に収まっていません
 確認実験の回数の増加について
n の値を増やして行ってください。精度に関する値が狭まることを観測できます。つまり、点予測で見た信頼区間(CI)の限界に PI が近づきます。CI とは、モデルを導きだす実験の試行回数の関数です。実行結果はこの段階の内容ですので、指定した確認実験の回数までしか調べることができません。おおよそ4~5回程度行えば十分でしょう。

データファイルの保存

この計画に関する最適化のセットアップにこれまで多くの時間を費やしてきましたので、そろそろ作業内容を保存するのが良いでしょう。“File” メニューをクリックして、“Save As” を選択しましょう。ダイアログボックスで File name を指定し(「tut-RSM-opt」など)、Save as type には “*.dxpx” を、データフォルダには Design-Expert の Data フォルダを選択します。

ここで保存したデータは、このチュートリアルのPart3で使用することになります。

5.おわりに

多数の応答に関する多数の因子を調査する際には、数値計算による最適化が必要不可欠なものとなります。グラフによる分析と組み合わせることで、問題の本質を見抜くことができますが、その問題の背景にある知識を組み入れず、最適化をコンピュータのみで行おうとしても満足のいく結果を期待することはできません。例えば、現状を全く把握していない人なら、実際には全くあり得ない最適化の基準を設けてしまうと、あらゆる点で望ましさはゼロになります!これを回避するには、大まかな許容範囲を設けてみることです。そして、因子水準の変更を通じて応答にどのような影響がもたらされるかが分かってきたら、その都度、範囲を狭めてゆくのです。複数の応答に関して条件を同時に満足させる「最良の」因子水準を見つけるには、多くの場合、複数の選択肢を用意する必要があるでしょう。  

この応答曲面法のチュートリアルでは、Design-Expert ソフトウェアを使って RSM (応答曲面法) を実行する基本的知識を習得しました。多因子における RSM に関するソフトウェアの機能についてさらに詳しく学びたい方は、次の上級編のチュートリアルに進んでください。応答曲面法について詳しく知りたい場合は、Stat-Ease 社ワークショップに参加してください。