cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP will suspend normal business operations for our Winter Holiday beginning on Wednesday, Dec. 24, 2025, at 5:00 p.m. ET (2:00 p.m. ET for JMP Accounts Receivable).
    Regular business hours will resume at 9:00 a.m. EST on Friday, Jan. 2, 2026.
  • We’re retiring the File Exchange at the end of this year. The JMP Marketplace is now your destination for add-ins and extensions.

Naohiro Masukawa

Choose Language Hide Translation Bar
仕様限界内に収めるための因子設定  ~「シミュレーション実験」によるアプローチ~

JMPの「予測プロファイル」では、「満足度の最大化」を用いることで、各応答の目的(大きい方が良い・小さい方が良い・目標値に合わせる)をできるだけ同時に満たすような因子(説明変数)の組み合わせ、いわゆる最適条件を求められます。

Masukawa_Nao_0-1766036540365.png

ただし求められた因子の最適値は、あくまで1つの点であり、実際の工程では、温度や湿度などを最適値ぴったりに制御するのは難しく、さらに環境要因などにより、因子は最適値のまわりでばらつきをもって変動すると考えるのが自然です。

因子がばらつくのであれば、それに応じて応答もばらつくことになるので、応答の値も分布を構成します。もし応答に仕様範囲(LSL:下側、USL:上側)が設定されている場合、その分布の一部が仕様限界を超え、不適合が発生する可能性があります。

下図は、因子がばらつくことを想定したときの応答(Error1)の分布の例です。ヒストグラムを見ると、仕様範囲外に位置するデータが一定数存在しています。このような場合、因子を最適値に設定したとしても、ある割合で仕様限界から外れる、すなわち不適合が発生する可能性があります。

Masukawa_Nao_3-1766045262375.png

そのため、「満足度の最適化」で求めた最適値は平均的に良い条件ではあっても、仕様範囲内にできるだけ収めるという観点では最適でない場合があります。

では、仕様範囲内にできるだけ収まるような因子の値を求めるにはどうしたら良いでしょうか?

JMPでは「シミュレーション実験」という機能があり、因子のばらつきを仮定して多数回のシミュレーションを行い、不適合率(仕様範囲に収まらない割合)を最小化する条件を検討できます。

 

最適化までの例

ここでは、実験計画法により次のような設定を行います。
応答は2つの誤差(Error1、Error2)とし、いずれも誤差であるため目標値は0とします。ただし、仕様限界として -1.5 ~ 1.5 の範囲を設定しています。

Masukawa_Nao_0-1766026438443.png

応答曲面計画に基づいて実験を行い、得られた実験点と応答値(Error1、Error2)をまとめたデータテーブルを示します。このデータを用いて、Error1、Error2それぞれに応答曲面モデルをあてはめます。

Masukawa_Nao_1-1766026467581.png

「予測プロファイル」で「満足度の最大化」を実行したときのレポートを示します。応答のError1、Error2はいずれもほぼ0となり、誤差をゼロにしたいという要望をよく満たしています。このときの因子の最適値はTemp1 = 73.2、Temp2 = 102.4、Humidity = 15.6と求められました。

Masukawa_Nao_1-1766037316638.png

 

シミュレータによるばらつきの評価

最適値の周りで因子がばらつく分布を表現するために、予測プロファイルのオプションである[シミュレータ]を用います。各因子について最適値を平均、一定の標準偏差をパラメータとしてもつ正規分布に従うと仮定します。

シミュレーションでは、これらの分布から10,000組の乱数を発生させ、応答曲面の予測式に基づいて応答値を計算します。こうして得られた10,000個の応答値のうち、仕様範囲(-1.5~1.5)を外れる割合が、不適合率として算出されます。

下図は、シミュレーション結果の一例です。「Error1」の不適合率は0.4051、「Error2」の不適合率は0.286となっています。すなわち、最適値に設定したとしても、それぞれ40%、29%程度の割合で不適合が発生する可能性があることが分かります。

Masukawa_Nao_3-1766038317336.png

※乱数を用いたシミュレーションのため、実行のたびに数値は多少変動します。

 

「シミュレーション実験」による不適合を最小にする条件

そこで、ある程度応答の目標値(Error1=0、Error2=0)から多少ずれても良いので、不適合率をもっと小さくする因子設定をシミュレーション実験によって求めてみます。

Masukawa_Nao_1-1766039477646.png

シミュレーション実験のウィンドウではさまざまな実験設定が指定できますが、ここでは実験回数が128回、1実験あたりのシミュレーション回数が10,000回と設定していることを意識しておきます。

Masukawa_Nao_2-1766039645706.png

[OK]をクリックし実行すると、128行からなるデータテーブルが出力されます。各行が1つの実験に対応し、それぞれについて10,000回のシミュレーション結果がまとめられています。

Masukawa_Nao_7-1766040528498.png

ここでのシミュレーション実験とは、因子分布の位置(平均)を変化させたときに、不適合率がどのように変わるのかを調べていることになります。

例えば1行目では、Temp1= 73.21、Temp2=107.9、Humidity = 14.00 を平均とし、シミュレータと同じ標準偏差をもつ正規分布(正確には加重正規分布)から10,000個乱数を生成して、応答値を計算しています。その値が仕様限界外になっている割合を算出します。

その結果、Error1の不適合率は0.202、Error2の不適合率は0.654となり、少なくともどちらか一方が不適合となる「全体 不適合率」が0.670であることを示します。同様の実験を128通り行った結果が上記のデータテーブルになります。

これら128個の実験点は、実験空間全体を広く均等にカバーするSpace Filling計画に基づいて選ばれています。

Masukawa_Nao_0-1766041563748.png

 

不適合率モデルの作成

得られたシミュレーション結果から、不適合率を3つの因子(Temp1, Temp2, Humidity)で予測するモデルを作成します。JMPでは、シミュレーション実験のモデル化に適したGauss過程モデルを用います。あてはめたモデルを用いた、不適合率を最小にする因子設定を求めます。

目的変数には、不適合率そのものではなく、常用対数をとった「Log10 不適合率」を使用します。このモデルを用いて、「満足度の最適化」により「Log10 不適合率」を最小とする因子設定を求めます。

Gauss過程モデルをあてはめ、「満足度の最適化」を用い「Log 10 不適合率」を最小とする因子設定を求めた状態を示します。このときの因子の値は、Temp1 = 71.7、Temp2=106.9、Humidity = 15.3となり、冒頭で求めた最適値とはやや異なることが分かります。 

Masukawa_Nao_0-1766043334903.png

この因子設定を平均として再度シミュレータを実行すると、Error1、Error2の予測値はいずれも0からは少し離れますが、不適合率はそれぞれ0.1179、0.119となり、最初の最適化結果(0.4051、0.286)と比べて大きく改善されます。

Masukawa_Nao_4-1766043768436.png

 

まとめ

この例から分かるように、仕様限界内に収めることが重要な場合には、応答の目標値を最もよく満たす条件が、必ずしも不適合率を最小にする条件とは限りません。

因子がばらつくことを前提にシミュレーション実験を行うことで、不適合率を小さく抑える因子設定を検討できます。
「きちんと仕様を満たす製品を作ることが重要だ」という視点で考えると、今回紹介したアプローチは、多くの現場で有効な手法となるでしょう。

 

by 増川 直裕(JMP Japan)

Naohiro Masukawa - JMP User Community

Last Modified: Dec 18, 2025 7:03 PM
Comments