| スピーカー |
トランスクリプト |
| Cホイットマン |
では、本日は私の講演にご参加いただき、誠にありがとうございます。私はCorvoに所属するチャーリー・ホイットマンです。本日は、Rを用いたJMPのステップストレスモデリングについてお話します。 |
| |
それではまず、自己紹介から始めたいと思います。ストレステストとは何か、そしてなぜ私たちがそれを行うのかについて少しお話ししたいと思います。 |
| |
基本的な種類は2つあります。定常ストレスとステップストレスです。それぞれについて少し説明します。ステップストレスまたは定常ストレステストの結果が出たら |
| |
これらはモデルパラメータの推定値です。予測を行うにはこれが必要です。つまり、ストレステストでは、非常に高いストレスがかかる部分にストレスをかけ、そのデータを用いて使用条件に外挿しますが、そのためにはモデルパラメータが必要です。 |
| |
しかし、モデルパラメータは全体像の半分に過ぎません。推定値にはある程度の不確実性があることも認識する必要があります。そこで、信頼限界を用いて推定を行います。そのために私が用いたブートストラッピング法についてお話しします。 |
| |
そして一日の終わりには |
| |
最大尤度推定値とブートストラップ信頼限界を武器に、安全動作領域と呼ばれるものを作成できます。 |
| |
SOAは信頼性マップのようなものです。応答曲面とも考えられます。つまり、部品を安全に操作できる領域と安全でない領域を特定し、そこから結論を導き出します。 |
| |
では、ストレステストとは何でしょうか?ストレステストでは、部品に故障するまで負荷をかけます。故障しない部品もありますが、故障した場合はテストを開始し、停止して別の作業を行う必要があります。 |
| |
この場合、センサーデータポイントはありますが、シミュレーションで使用される最大尤度法ではセンサーの性能も考慮されるため、100%の故障を想定する必要はありません。一部の部品が故障しなくても問題ありません。 |
| |
では、これらの部品に、計画された実験やマトリックスなどに従って、様々な条件下でストレスをかけます。 |
| |
ストレスは温度や電力、電圧などであり、さまざまな条件、さまざまなストレス下で部品を実行し、モデルに適合したデータを取得して、使用条件に外挿します。 |
| |
mu = InA + 空気/kT。 |
| |
Muは分布の対数平均です。一般的には対数正規分布を使用します。これは定数項と温度項を組み合わせたものになります。 |
| |
ミューは温度と反比例関係にあることがわかります。つまり、温度が上昇するとミューは低下し、温度が下がるとミューは上昇します。対数正規分布を使用すれば、形状係数シグマという追加のパラメータも得られます。 |
| |
テストを実行した後、いくつかの部品を非常に高いストレス条件下で動作させ、モデルに当てはめます。そして、これら2つを組み合わせることで、使用条件下での挙動を予測できるようになります。これがまさにゲームの核心です。 |
| |
最も一般的な方法は、一定応力試験です。これは基本的に、試験期間中、応力が一定です。これはその一例です。ここには温度と時間のグラフがあります。 |
| |
温度が非常に低い場合、長時間にわたる故障が発生する可能性があります。 |
| |
故障時間は、例えば対数正規分布のような分布に従ってランダムになることがあります。温度をある程度高くすると、 |
| |
故障時間の分布の終わりが得られますが、平均すると故障時間は短くなります。 |
| |
さらに温度を上げると、同じような現象が起こりますが、故障時間はそれよりもさらに短くなります。つまり、例えば複数の部品を異なる温度で動作させれば、その結果を確率プロットに当てはめることができます。これは次のようなものです。 |
| |
最高温度における確率と故障までの時間の関係を示しています。この例では330℃で、対数正規分布に設定した故障時間があります。温度が下がっていくにつれて、故障時間はどんどん長くなります。 |
| |
次に、このすべてのデータを温度範囲にわたって取得し、アレニウスモデルに当てはめて外挿します。すると、使用条件下での予測値が得られることがわかります。これが私たちの目指すものです。 |
| |
加速試験、この試験を行う際には、非常に高いストレスで実行する必要があることを指摘したいと思います。例えば、 |
| |
これは1000時間程度持続すると言われていますが、私たちの予測では、使用条件下では部品は10億時間も持続するはずで、 |
| |
10億時間かけてテストを実行します。そのため、テストを妥当な時間内に完了させる必要があり、そのために加速テストを行っています。 |
| |
では、ステップストレスとは何でしょうか?ご想像のとおり、ステップストレスとは、段階的にストレスを増加させていくものです。 |
| |
あるいはランプのようなものですね。メリットは、時間の節約になるということです。前の図で示したように、 |
| |
これらのテストは非常に長時間に及ぶ場合があり、1000時間にも及ぶことがあります。つまり、テストが終了するまでには数週間から数ヶ月かかる可能性があります。ステップストレステスト |
| |
もっと短くなるかもしれませんし、数時間や数日で完了するかもしれません。つまり、これは本当に時間の節約になります。しかし、分析はより複雑で、それについては後ほど説明します。 |
| |
Corvoで私たちが取り組んでいる研究では、音響フィルタの信頼性について研究しています。音響フィルタはRFデバイスです。RFにおけるストレスはRF電力です。 |
| |
そして私たちは失敗するまでパワーを増強します。 |
| |
出力を上げたい場合、この式を使ってモデル化できます。基本的にはアレニウスの式と同じですが、n log pという項が追加されます。 |
| |
Nは電力加速パラメータ、pは電力です。対数正規分布の場合、4つ目のパラメータであるシグマ(形状係数)が加わります。つまり、パラメータは1、2、3、4つになります。 |
| |
これがどのようになるか、簡単な例を挙げて説明しましょう。 |
| |
まず、電力と時間の関係です。電力の単位はdBmです。33.5dBmのような電力からスタートし、徐々に上げていき、最終的には失敗に至ります。 |
| |
そして私が指摘したいのは |
| |
部品への電力が変化すると、温度も変化します。つまり、電力が上昇すると温度も上昇します。つまり、電力と温度は混同されてしまうのです。 |
| |
ですから、温度と電力の影響を分離できるような方法で実験を行う必要があります。そこで私が指摘したいのは、 |
| |
温度と電力という2つの用語がありますが、部品への電力を増加させると部品が熱くなり、温度が原因となるだけではありません。電力自体も故障率を高めます。 |
| |
そうですね。それでは、ステップストレスのプロットについてもう少し詳しく見てみましょう。 |
| |
ここでも出力と時間の関係が出てきます。例えば、ある部品をある出力で5時間動作させ、その後負荷を上げ、さらに5時間動作させ、故障するまで負荷を上げていきます。 |
| |
先ほども申し上げたように、電力が増加すると温度も上昇します。ですから、それを何らかの形で考慮しなければなりません。 |
| |
t = T 周囲温度 + R 番目 × p |
| |
T 周囲温度は周囲温度、P は電力、R th は熱インピーダンスと呼ばれる定数です。つまり、電力を設定すると、実際の電力がわかるので、各ステップの温度も推定できるということです。 |
| |
そこで私たちがやりたいのは、ステップ ストレス パターンから得られるこれらの障害時間を何らかの方法で取得し、それを使用条件に外挿することです。 |
| |
ここで時間デルタtだけ走っていたら |
| |
これを外挿して条件を適用したいと思ったのですが、等価の時間量Δtに加速係数を掛けます。これが加速係数です。活性化エネルギー、温度、そして電力の項があります。 |
| |
そこで、AFを掛け合わせます。高応力から低応力へと変化していくので、AFは1より大きくなります。これは説明の便宜上、1よりそれほど大きくはありませんが、お分かりいただけると思います。 |
| |
そして、電力を上げると、温度と電力が変化するため、AF は各ステップごとに変化します。 |
| |
使用条件における同等の時間を求めるには、合計する必要があります。つまり、各セグメントを合計するということです。 |
| |
加速度係数と、おそらくデルタtもそれぞれ異なります。それらを合計すれば、等価時間が得られます。 |
| |
つまり、この式を使って機器の稼働時間を予測するのですが、Eaとnが正確に分かれば、等価稼働時間も予測できるということです。これがその考え方です。 |
| |
それで、先ほど言ったように、温度と電力は混同されていることがわかりました。そのため、推定するためには、2つの異なる周囲温度で動作させる必要があります。 |
| |
周囲温度を十分に分離すれば、電力と温度の影響を実際に分離することができます。 |
| |
また、少なくとも2つのランプレートが必要です。つまり、少なくとも、ランプレートと周囲温度の2行2列のマトリックスが必要になります。 |
| |
私が行ったシミュレーションでは、ここに示すように3つの異なるレートを選択しました。dBm単位のパワーとストレス時間の関係を示しています。 |
| |
3つの異なるランプがありますが、それぞれ速度が異なります。高速、中速、低速の3つのランプ速度です。実際には、破断するまでこれを延々と続けることになりますが、ここでは数時間後に恣意的に停止しています。ここでも上限が設定されているのがわかります。 |
| |
上限は 4 です。これは、ストレスまたは電力を任意に増加させると、故障のメカニズムを変更できることがわかったためです。 |
| |
加速条件下での故障メカニズムが、使用条件下での故障メカニズムと同じであることを確認する必要があります。そして、 |
| |
外挿できない故障メカニズム。外挿は有効ではないでしょう。 |
| |
したがって、ここでは 34.4 dBm までの上限が設定されており、これに近づかないように少し余裕を持たせています。 |
| |
周囲温度は45℃、出力は33.5dBmでスタートするので、別の条件も設定します。 |
| |
135度です。ご覧の通り、パターンは同じです。天井があり、バッファ領域もあります。すべて同じですが、今回は低い電力からスタートしています。つまり、以前は33dBmを超えていたのに対し、ここでは32dBmを下回っています。 |
| |
私たちがそうする理由は、この高温で電力を下げなければ、注意しないとすぐに故障が発生し、そのデータを使用して外挿を行うことができなくなるからです。 |
| |
さて、ここで必要なのは、先ほど示した等価時間を表す式です。これがその式です。 |
| |
ちょっと厄介な問題で、等価使用時間条件の分布を表す式を第一原理からどのように導出すればいいのか分かりませんでした。そこで、このような難しい問題に直面したとき、私はブートストラップ法を使うことにしました。 |
| |
ではブートストラッピングとは何でしょうか? |
| |
ブートストラップ法では、データセットを何度も復元抽出しながらリサンプリングします。つまり、元の観測データセットから、元のデータセットの複製を取得したり、観測値が必ずしも全てではないデータを取得したりできるということです。 |
| |
私が用いるアプローチは、分布を仮定しないため、ノンパラメトリックと呼ばれます。データの根本的な分布を知る必要はありません。 |
| |
このように多数のブートストラップ標本を生成すると、パラメータのおおよその分布が得られ、統計的推論が可能になります。特に、信頼限界を設定することに興味があります。それが必要なことです。 |
| |
ブートストラップの簡単な例はパーセンタイルブートストラップと呼ばれます。例えば、ある推定値に対して90%の信頼限界値を求めるとします。 |
| |
私がやろうとしたのは、非常に多くのブートストラップ反復を作成し、各ブートストラップ標本からパラメータを抽出し、それをソートして、そのベクトルからどのシフトと95パーセンタイルがどれかを計算し、それらから90%信頼区間を形成します。 |
| |
私が実際に研究で行ったのは、パーセンタイル改善という手法を用いたことです。これはバイアス補正・加速の略で、BCaと呼ばれます。 |
| |
偏りがあるのは、推定値が偏っている場合があり、この方法ではそれが考慮されるためです。 |
| |
加速試験ですが、残念ながら加速試験という言葉はここでは混乱を招きます。加速試験とは全く関係なく、方法、つまり調整方法に関係しています。 |
| |
分布の歪みについては、しかし最終的に得られるのは… |
| |
異なるパーセンタイル値が自動的に選択されます。繰り返しますが、パーセンタイル手法では5位と95位を使用しました。 |
| |
ブートストラップ法やBCaブートストラップ法では、3パーセンタイルや96%など、異なる結果が得られるかもしれません。そして、90%信頼区間を求めるには、これらの値を選択する必要があります。 |
| |
これを明確にするために、簡単な例を挙げて説明したいと思います。 |
| |
10個の観測値があり、そこからブートストラップ標本を作成したいとします。例えば、最初の観測値24.93は、最初の標本では2回、2番目の標本では1回、といった具合です。 |
| |
25.06は2回出現します。25.89は全く出現しません。この場合は100回実行できます。 |
| |
そして、それぞれのブートストラップ標本について、例えば平均値を求めます。平均値の分布に興味があります。さて、ここに平均値の分布があります。 |
| |
そして、それがどのように見えるか見てみましょう。ここにあります。 |
| |
かなりベルの形をしており、ここにハイライト表示されたポイントがいくつかあります。これらは、パーセンタイル手法を使用した場合の 90% 信頼限界になります。 |
| |
これがソートされたベクトルです。5 パーセンタイルは 25.84、95 パーセンタイルは 27.68 です。 |
| |
BCa法を使うと、異なるパーセンタイルが得られるかもしれません。この場合は25.78と27.73です。 |
| |
BCa法とは何か、簡単に説明します。私たちの場合、サンプルは… |
| |
ストレスパターンのブートストラップを行います。複数のサンプルを異なるストレスパターンで実行し、シミュレーションを行い、 |
| |
これらをブートストラップして、前回の推定値、つまり前回のパラメータ、logA、EA、シグマの分布を取得します。 |
| |
右。 |
| Cホイットマン |
もう一度、これが私たちの方程式です。 |
| |
繰り返しになりますが、JMP |
| |
私が持っているJMPのバージョンはブートストラップに対応していません。JMP Proは対応していますが、私が持っているバージョンは対応していません。しかし、幸いなことにRはブートストラップに対応しています。そして、JMPからRを呼び出すこともできます。そのため、この方法を選択しました。 |
| |
私はできるけど、Rは大変な仕事を全部やってくれる。だから見せたいんだ |
| |
例えば、logA、EA、シグマについて、既知の真の値をいくつか選びました。ある範囲からランダムに選びました。 |
| |
そして、これらのパラメータに同じ値を数回選択し、そのたびにサンプルを生成します。例えば、logA trueに-28.7を3回選択し、 |
| |
ここからデータを取得します。テストレベルごとに合計5つの部品、つまり6つのテストレベルがありました。覚えていると思いますが、3つの傾斜、2つの異なる温度、6つのレベル、つまり6×5で30です。 |
| |
したがって、このテストでは合計 30 個のパーツが実行され、logA ハットを見ると、最大尤度推定値は約 28 程度です。 |
| |
実際にかなりうまくいきました。次のサンプルを見てみましょう。例えば、マイナス5.7で3回繰り返して、そのマイナス5.7付近の最大値に対して私の方法を実行したとき、どのように変化したかを見てみましょう。この方法は非常にうまく機能しているようです。 |
| |
しかし、もう少し詳しく説明しましょう。 |
| |
ここで私は走った |
| |
シミュレーションは各グループに 5 回ずつ、合計 250 回実施しました。 |
| |
LogA true、EA true が 5 回繰り返され、logA ハット、EA などに異なる推定値が得られます。 |
| |
また、BCa法を用いて各パラメータの信頼限界と、故障までの中央値も算出しました。それでは、このデータをプロットして、どれだけうまくいったか見てみましょう。 |
| |
ここでlogAハットとlogAトゥルーを比較すると、傾きはほぼ1で、切片は0と有意差がないことがわかります。これは実際にはかなり良い結果です。もしlogAトゥルーが |
| |
マイナス15では、推定値はほぼマイナス15前後になります。EA、n、シグマなどの他のパラメータについても同様で、特定のpゼロでも推定値を求めました。つまり、すべて非常に良好な状態です。 |
| |
BCa法はどれほど効果があるのか、という点も知りたいところです。結果は、かなりうまくいきました。 |
| |
質問したいのは…BCa法がどれほど成功したかということです。ここに分布があります。既知の真の値を正しく括弧で囲んだ場合は1、間違えた場合は0になります。 |
| |
logAについては、91%の確率で既知の真の値を正しく括弧で囲んでいます。95%の確率で選択しているので、かなり近い値です。90%台前半で、活性化、エネルギーなどについてもほぼ同じ値が得られています。いずれも90%台半ばから前半です。つまり、実際にはかなり良い一致と言えるでしょう。 |
| |
ここで、ブートストラップの反復回数とブート回数を 100 から 500 に増やした場合に何が起こるかを確認したいとします。どのようになるでしょうか。 |
| |
MLE と真の値をプロットすると、ほぼ同じものが得られます。 |
| |
推定値は非常に良好です。傾きは常に1付近、切片は常に0付近です。つまり、非常に良好な状態です。 |
| |
そして信頼限界の幅を見てみると、 |
| |
平均すると、信頼限界幅は23くらい、muは20くらい、そして8くらいです。 |
| |
値nです。そのため、これらの信頼区間は実際にはやや広くなっています。 |
| |
それで、何が起こるか見たいんです。サンプル数を50に増やしてみます |
| |
50個ではなく、50個というサンプル数は現実的ではありません。そんなに多くのサンプルを分析するのは不可能です。非常に困難で、時間もかかります。 |
| |
これはシミュレーションなので、好きなだけ実行できます。念のため確認ですが、最尤推定値は既知の真の値とほぼ一致しています。傾きは1で、切片はほぼ0です。 |
| |
そしてBCa、 |
| |
予想通り、約95%の確率でブラケティングが成功しています。これもかなり良好な動作で、信頼限界の幅も |
| |
今ではずっと低くなっています。つまり、サンプル数を増やすと、当然のことながら、カンファレンスの境界もそれに応じて低くなります。 |
| |
当初は20代後半でしたが、今は7くらいです。また、muも20代後半でしたが、今は5くらいです。nは当初10くらいでしたが、今は2.3くらいです。つまり、サンプル数を増やすことで、このような改善が見られるようになったということです。 |
| |
これは要約がどのようになるかを示したものです。 |
| |
ここでは、これらの異なるグループに対する成功率を示します。n はテスト レベルごとのパーツ数です。 |
| |
bootは私が作成したブートストラップサンプルの数です。5_100、5_500、50_500です。これはかなり平坦であることがわかります。 |
| |
カバレッジが大幅に改善されました。90台前半から中盤くらいの数値が得られています。これは予想通りの数値です。 |
| |
つまり、ブートストラップ反復回数やサンプルサイズを変えても、それほど大きな変化はありません。BCaは、テストレベルごとに5つの部品を使用し、ブートストラップ反復を100回行った場合でも、かなり良い結果を出すのと同等です。 |
| |
幅について。 |
| |
しかし、ここで利点が見られます。ブートストラップの反復回数が増えるにつれて、信頼限界の幅が狭くなっています。そしてそれに加えて、 |
| |
サンプルサイズを大きくすると、信頼限界の幅は大きく減少します。したがって、これらの挙動はすべて予想通りです。 |
| |
しかし、ここでのポイントは、このシミュレーションにより、サンプル サイズをどのくらい大きくすればよいかを事前に知ることができるということです。 |
| |
条件ごとに3つのパーツで十分でしょうか? 必要な信頼限界の幅を得るには、条件ごとに5つまたは10つのパーツを実行する必要がありますか? |
| |
同様に、分析を行う際に、110回で済むようにするにはブートストラップの反復を何回行う必要があるか、1000回必要かなどを検討します。これにより、分析を行う際に必要な作業についてもある程度の見通しが得られます。 |
| |
さて、これで最大尤度推定値と信頼限界が揃いました。それでは |
| |
安全動作領域を使って結果をまとめると、 |
| |
ここで得られるのは、信頼性マップ、つまり温度と電力の関係を表す応答曲面のようなものです。これにより、様々な条件下での部品の信頼性がどの程度かが分かります。 |
| |
これは設計者や顧客にとって非常に役立ちます。設計者は、部品を作ったり、部品を模倣したりする際に、それが長持ちするかどうかを知りたいのです。 |
| |
故障までの平均時間が短くなるように、部品を高温または高電力で動作するように設計しているのでしょうか。 |
| |
また、顧客は、この部品をいつ実行するか、その部品がどれくらいの期間持続するかを知りたいと考えています。そこで、SOA はまさにその情報を提供します。 |
| |
ここで示す指標は、故障までの時間の中央値です。他の指標も使用できます。適合率や???などを使用することもできますが、説明のため、ここでは故障までの時間の中央値のみを使用しています。 |
| |
さらに良い指標は、後ほど示すように、故障までの時間の中央値に対する信頼度下限値です。これはより保守的な推定値を与えます。 |
| |
最終的には、SOAによって温度と電力のトレードオフが可能になります。こちらがSOAを示す等高線図です。 |
| |
これらの等高線は、故障までの時間の中央値を10を底とする対数です。これは電力と温度の関係を表しており、温度が下がり、電力が低下するにつれて、これらの等高線はどんどん大きくなります。つまり、予想通り、応力が低下すると、故障までの時間の中央値は長くなります。 |
| |
そして、企業目標があり、その企業目標が、部品の寿命を延ばすこと、または故障までの平均時間を 10 ~ 6 時間以上にすることだとします。 |
| |
このマップを見ると、私たちが選択した電力と温度の範囲では、問題ないように見えます。問題はありません。故障までの時間の中央値は、10時間から6時間以上と、優に超えています。 |
| |
つまり、故障までの時間の中央値は平均値であり、平均値だけでは全体像を半分しか把握できないことを認識する必要があるということです。この推定値には不確実性があることを考慮し、何らかの対策を講じる必要があります。そこで、実際には、故障までの時間の中央値に下限値(Conference Bound)を適用しています。 |
| |
このように等高線が変化し、信頼限界の下限を使用しているため非常に低くなっていることがわかります。ここでは、10 の 6 乗がこの線によって示されています。 |
| |
ご覧の通り、今はリーチの一部にしかなっていないのが分かります。ここの緑色は良好です。そうです。ここは安全に操作できますが、赤色は危険です。ここでの運転は安全ではありません。モンスターが潜んでいる場所です。自分の部品をこんなに高温で運転すべきではありません。 |
| |
また、これによりトレードオフが可能になります。例えば、設計者が部品を80℃で動作させたいとします。 |
| |
電力レベルを約 29.5 dBm 未満に維持する限り、問題ありません。 |
| |
同様に、部品を90℃で動作させたいとします。出力を十分に低く抑える限り、例えば27.5dBm程度であれば問題ありません。なるほど。つまり、温度と出力の間でトレードオフが可能なわけですね。 |
| |
さて、それではまとめていきましょう。 |
| |
そこで、一定ストレス テストとステップ ストレス テストの違いを示し、シミュレートされたステップ ストレス データから最大尤度推定値と BCa 信頼限界を抽出する方法を示しました。 |
| |
そして、推定値と既知の真の値の間には、かなり良い一致があることを証明しました。さらに、 |
| |
BCa メソッドは非常にうまく機能し、n ブートが 100 個でテスト レベルごとに 5 つのパーツしかない場合でも、約 95% の範囲をカバーできました。 |
| |
ブートストラップの反復回数を増やしたり、サンプルサイズを増やしたりしても、カバレッジはあまり変化しませんでした。しかし、信頼限界の幅には大きな変化が見られました。 |
| |
そして、その結果から、ある種のトレードオフが可能であることが示されました。繰り返しになりますが、シミュレーションから、ブートストラップの反復回数や、テスト条件ごとに実行する必要がある部品数を把握できます。 |
| |
そして最終的に、私たちはそれらの最大尤度推定値とブートストラップ信頼限界を採用し、特定の T0/P0 の組み合わせがどれだけ安全であるかに関するガイダンスを顧客と設計者に提供する SOA を作成しました。 |
| |
そして、その信頼性マップから、温度と電力の間でトレードオフを行うことができます。 |
| |
そして最後に、故障までの時間の中央値の信頼限界の下限値を使用して、 |
| |
SOAのより保守的な推定値を提供します。つまり、下側信頼限界値を使用することで、SOA、つまり安全動作領域が若干安全になります。これで私の講演は終了です。お時間をいただき、ありがとうございました。 |