当社の配合開発プロジェクトチームは、小規模な実験計画法(DOE)を作成しました。このプロジェクトでは、新しい実験用塗料配合における顔料の安定性を最適化するために、多数の異なる測定応答を検証する必要がありました。しかし、チームは結果の分析から明確な指針を得るのに苦労しました。JMPのデータ再構築ツールを使用することで、既存のデータをSLSおよびロジスティックモデリングを用いて容易に分析できる形式に再フォーマットすることが可能になり、安定性への主要な影響と、特定の要因の組み合わせが満足のいく結果をもたらす確率を算出できるようになりました。
こんにちは、ジョン・スティールです。アクゾノーベル社の装飾塗料事業部の研究開発部門に勤務しています。今回は、当社のチームが直面した顔料安定性最適化問題における実験計画法(DoE)データの再構築にJMPをどのように使用したかについて説明します。
そもそもこの問題は、塗料システムで使用される3種類の異なる安定化材料の影響を調査するために、実験計画法(DoE)に基づいて実施されました。これらの安定化材料は、顔料の凝集を防ぎ、最終製品に問題が生じるのを防止します。最初のDoEでは、これらの安定化材料のさまざまな相互作用とレベルを調べるために、17回の実験が行われました。顔料の安定性試験の一環として、これらのDoEの各実験で5種類の顔料が試験されました。これらの顔料は、せん断安定性と混合安定性の両方について試験され、3つの異なる時点で試験されました。
実験計画は、常識的な実験計画法(DoE)に期待される通りの方法で設計されました。すべての規則と考慮事項が遵守されました。しかし、データの分析段階になると、いくつかの問題に直面し始めました。
この実験計画法(DoE)では、せん断試験または混合試験、顔料材料、および試験実施時点のそれぞれの組み合わせを個別の応答として入力し、個別に分析しました。全体として、これら17回のDoE実行に対して、合計25個の個別の応答が得られました。
上のグラフに見られるように、これらの結果の中にはかなりうまくモデル化されているものもあります。線形性はほぼ直線的で、R²値もかなり良好です。しかし、下の2つのグラフに見られるように、うまくモデル化されていないものもあります。ノイズがかなり多く、R²値は非常に低くなっています。
残念ながら、どの回答が分析に適していて、どの回答が適していないかについて、明確なパターンは見られませんでした。その理由の一つは、回答の中には、非常に狭いデータ範囲しかカバーしておらず、値の範囲がそれほど大きく異ならないものがあったためです。
データの当初の構造を見てみると、3種類の安定剤の濃度レベルごとに個別のモデル実行結果が示されています。これらは、前述のとおり、5種類の顔料でテストされ、それぞれの顔料について、1時点、2時点、3時点の3つの時点でテストが行われました。このプロセスは、顔料と時点のあらゆる組み合わせ、および各テストタイプごとに繰り返されました。
これらは別々の回答として入力されましたが、検討しているデータ自体の中の要因とみなせるものかもしれません。このテストは品質管理テストのために実施されました。これらは、特定の時点で特定の色で常にテストする必要があるという従来の実験計画法の意味で、通常の要因として扱うことはできません。一方、設計の仕組み上、すべての可能な組み合わせを網羅することは明らかに不可能です。
分析の目的上、これらを擬似的な隠れた要因として扱い、データを再構成することで、より質の高い分析結果を得ることができます。では、どのようにしてこのデータを再構成すればよいのでしょうか?
JMPに移動すると、設計自体からの初期データが表示されます。ID実行結果、さまざまな安定化レベルという形で表された要因、そして個々の応答がすべて揃っています。これは説明のためにダミーデータで埋められています。ここでやりたいことは、これらの個々の応答をそれぞれ取り出して、実質的に単一の応答に変換することです。
JMPの非常に便利な表およびデータ操作ツールを使用すれば、これを実現できます。まず、スタック機能を使用し、個々の回答のすべての列を選択して、それらを1つの列に結合します。次に、「スタック列」をクリックすると、それらの列がすべてここに配置されます。
一番下のセクションまでスクロールすると、データテーブルの初期列のうち、保持したい列を選択できます。ここでは、IDと因子を保持します。必要に応じて、データと応答のラベル、および列ヘッダーを変更することもできます。OKをクリックすると、新しいデータテーブルが作成され、個々の実行のID、因子、そしてすべての応答が1つの列に表示され、対応する応答名がその隣の1つの列に表示されます。
初期データテーブルでは、ID1の結果はすべて1、ID2の結果はすべて2となるようにデータが設定されていました。ここで、ID1の行を選択すると、そのデータがすべて転送されていることがわかります。これは、定期的に実行する必要のあるプロセスやワークフロー機能の一部を使用する場合、JMPのスクリプトビルダーを使用して自動化できます。ただし、この例では、これはあくまで一度限りの検証です。
次の表を見ると、現在、シリアル番号、テスト時間、テストタイプが混在したラベルがあることがわかります。これだけでは、ファクターの観点からはあまり役に立ちません。この情報を分離する必要がありますが、これも組み込みツールを使って行うことができます。選択した列で、[列]、[ユーティリティ]、[テキスト列]の順に選択すると、区切り文字を定義できます。この場合はカンマを使用し、テキスト文字列を区切ります。
カンマを入力したら、「OK」をクリックします。すると、材料1、2、3など、材料番号のみが表示される新しい列ができたことがわかります。テストの種類と、それに関連付けられた時間ポイントのラベルが分離されました。これらを個別の要素として扱うことができるので、最初の列は完全に削除できます。
その後、さらに書式設定を行うことができます。列名を変更したり、時間ポイントの場合は、テキスト文字列を数値などに変換したりすることも可能です。これもまた、JMPの組み込み関数を使って行うことができます。
メニューの列で再コード化を行い、その場で変更すると、時間 1 を 1 に、時間 2 を 2 に、時間 3 を 3 に変更できます。その場で再コード化すると、すべての値が変更されます。次に、列情報で、それを文字型から数値変数または因子型に変更できます。名義尺度のままにするか、連続尺度または順序尺度に変更するかを選択できます。この場合は、順序尺度に変更します。
フォーマット変換がすべて完了したら、私自身の経験から言えるのは、この種のテスト、つまり実際に得られる基本的な数値自体はそれほど重要ではないということです。より重要なのは、テストが合格か不合格かということです。これらの個々の結果を、モデリングの目的で合格または不合格の条件に変換することができます。
このデータテーブルでは、結果の値が若干異なりますが、最後に合格か不合格かを示す別の列があります。列情報セクションに移動すると、列プロパティの下に、値の色セクションと数式セクションが追加されていることがわかります。
ここでは、if文を使って結果が特定の値より大きいか小さいかを判断し、その閾値に基づいて、結果が不合格か合格か、あるいはデータが入力されていない場合は空白になるかを返します。また、「値の色」セクションでは、その値に関連付けられたデータポイントやセルの色を指定できます。この場合、合格は緑、不合格は赤になります。
このデータのモデリング処理に移ると、データを現在の形式のままにしておき、テストの変数を使用してモデリングを行い、せん断テストと混合テストを別々にモデリングする方法(場合によってはより便利)と、データを分割する方法(これは基本的にスタック処理の逆で、せん断テストの結果を1つの列に、混合テストの結果を別の列に表示する)の2つの方法があります。
そのためには、JMPのテーブルツールにある分割機能を使用します。合格または不合格の結果に基づいて分割し、さらにテストの種類で分割します。次に、IDと材料の両方でグループ化を追加すると、データが同じ行内に保持されます。ここでも、保持する列を選択できます。ここでも、IDと係数を保持します。また、タイムポイントも必ず含めるようにします。こうして、混合テストとせん断テストの両方に対応する別々の列を持つデータテーブルが完成します。
次に、このデータの実際のモデリングについて検討を始めます。これで、これらの結果に対する合格または不合格の基準ができました。この特定の問題に対して最初に用いたアプローチ、つまり標準的な線形回帰タイプのメソッドを使用する方法とは対照的に、ロジスティック回帰とカテゴリ化メソッドを使用して検討を開始できます。すでに準備しておいたモデルの1つを実行すると、最初にR²がはるかに高くなります。0.9の範囲にまで上昇し、結果に影響を与えている要因の相対的な影響と、それらの要因間の相互作用も得られます。
もう1つの便利な機能は、下にスクロールすると混同行列と呼ばれるセクションがあることです。これは、分類型モデルの品質をより正確に表す方法と言えるでしょう。合格か不合格か、つまり1か0かに基づいて、1である結果のうち、いくつが1と予測されているか、0または不合格である結果のうち、いくつが不合格と予測されているかを示しています。この場合、このテストのデータセット全体で、誤分類されている結果はわずか2つです。
潜在的な挙動や相互作用についてさらに深く理解するために、データシミュレーションを用いてこのデータを視覚化することができます。ロジスティックモデルの場合、シミュレーションツールは、標準的な線形回帰モデルや数値型モデルの場合とは異なり、コンタープロファイラーの下にあります。
次に、シミュレーション対象とするデータ領域と、シミュレーションするデータポイントの数を指定します。そして、このシミュレーションを実行すると、要因と指定された材料レベル、時間点のランダムな組み合わせの範囲と、それらの最も可能性の高い結果が得られるだけでなく、合格か不合格かの確率も得られます。
ご覧のとおり、値が1のものはほぼ確実に合格することを意味しますが、合格する確率が約60%しかないものもあります。
ここでこれらの確率値をすべて取得し、次に、安定化材料、顔料、および時間点といった、私たちが注目している要因に対してプロットを開始して、次のようなグラフを作成できます。セルの選択を解除します。ここでは、1 つの軸に安定化剤 1 の安定化レベルがあります。安定化剤 2 と安定化剤 3 の閾値範囲があります。これらはボックス セルの軸の一部です。下部の軸に沿って、個別の異なる顔料材料があります。
そして、これらはすべて、合格するか不合格になるかの確率に基づいて色分けされています。当初は、特定の材料が特定の結果をもたらすかどうかについて、非常に曖昧な考えしかありませんでした。何が起こっているのか、少しぼやけていました。再構築されたデータからこのような視覚化を行うことで、非常に緑色の領域と非常に赤色の領域があることがすぐにわかり、潜在的な不合格の問題が発生する可能性のある領域について、より詳細な理解を得ることができます。
材料4と5については、特に安定剤2の濃度が低い場合、一般的に赤色が強く出ていることがわかります。これらは問題が発生する可能性が高いことを示しています。一方、材料1と材料3については、ほとんどの場合、ほぼ完全に緑色になっています。このグラフからより具体的な出力を得たい場合は、ローカルデータフィルタを追加して、例えば材料1と材料3だけに絞り込み、それらを比較することができます。
要約すると、実験計画の結果や出力には、当初考慮していなかった隠れた要因や要因のような属性が含まれている可能性があり、それらを考慮しないと、非常に不適切なモデル化データになってしまう可能性があります。しかし、だからといって、データに価値がないというわけではありません。時には、既に持っているデータを少し異なる方法で構造化するだけで、より多くの価値と有用性を引き出すことができる場合もあります。幸いなことに、JMPにはこのプロセスを非常に簡単にするための便利なツールが多数組み込まれています。
いったんそれができれば、データから有用な情報や結果を得るために、必ずしも非常に基本的で標準的な線形回帰や数値型モデリングだけを使う必要はありません。本日は以上が私が説明したかった内容です。お時間をいただきありがとうございました。