|
スピーカー
|
トランスクリプト
|
| 金持ち |
こんにちは。私は Intel の統計学者、Rich Newman です。今日は、K 最近傍法を使用して同時 95% 境界を決定する JMP スクリプトについて紹介します。 |
| |
このプレゼンテーションは、同じく Intel に所属する Don Kent 氏との共同執筆です。私たちは 2 人ともニューメキシコ州リオランチョに住んでいます。 |
| |
今日のプレゼンテーションは、まず問題の原因を説明することから始め、そこからいくつかの解決策を紹介し、最終的に私たちが採用した解決策にたどり着きたいと思います。 |
| |
途中で、ポイントをさらに説明するためにいくつかのグラフを示し、最後に、問題を解決するために使用する JMP アドインとスクリプトを示すスクリーンショットをいくつか示します。 |
| |
私たちはデバイスを設計しており、4 つの抵抗値と 4 つの静電容量値の最悪の組み合わせが何であるかを知る必要があります。 |
| |
私たちにとって最悪のケースは、低抵抗/高容量と高抵抗/低容量の組み合わせとして定義されます。わかりやすくするために、 |
| |
変数は 8 つあり、4 つの低抵抗値と 4 つの高静電容量値の同時境界が必要になる場合があります。これを使用してデバイスの設計に役立てることができます。最悪のケースは 95% の信頼度または 99% の信頼度として定義される可能性があり、最終的にはユーザー次第です。 |
| |
さて、この問題を説明するために、抵抗値と静電容量値を1つだけ使用してみましょう。X軸に抵抗、Y軸に静電容量があり、2つのことを知りたいのです。黄色い星、つまり最悪の値です。 |
| |
低抵抗/高静電容量の組み合わせ、そして紫色の五角形は高抵抗/低静電容量の組み合わせであることがわかります。 |
| |
さて、私たちの問題に関して、これら 8 つの変数、これら 8 つの応答は独立していないことを認識していることを指摘したいと思います。それらの間には相関関係があります。 |
| |
さらに、これらの応答はそれぞれ、正規分布または多変量正規分布に従う場合と従わない場合があります。 |
| |
私たちはこのような質問をよくします。つまり、一度解決して終わりにして、二度と対処したくないのです。私たちはこのような質問をよく受けます |
| |
頻繁に発生するため、使いやすい堅牢なソリューションが本当に必要です。私たちの場合、幸運なことに、少なくとも400ポイントの比較的大きなデータセットがあり、通常は |
| |
1,000ポイントです。私たちにとって、実用的なソリューションは、何らかの統計的手法に基づいている限り機能します。前のグラフに戻って、グラフにダーツを投げて、どこに落ちても、 |
| |
これは最悪のケースを想定した数値です。もう少し詳しく知りたいところですが、99% であろうと 95% であろうと、必ずしも最悪のケースの定義があるわけではないことを指摘しておきます。 |
| |
そして、実際に機能し、将来的に問題が生じないデバイスを設計するためには、少し保守的になる方が良いと私たちは知っています。 |
| |
さて、この種の問題はどの業界でも起こり得るということを説明するために、完全に作り話の例を挙げたいと思います。 |
| |
そこで、教室用に高さ調節可能な机を作ったと想像してください。そして、その机が生徒の 99% にとって使いやすいものになることを望んでいます。 |
| |
人の身長と人の幅。 |
| |
JMPにはサンプルデータが付属しており、そのデータセットの1つはBigClassと呼ばれています。BigClassには |
| |
そこには何人かの生徒とその身長と体重が記録されています。このデータセットを使用して、人口の 99% をカバーする身長と体重の範囲を決定することができます。 |
| |
右下のグラフを見ると、各点が生徒一人の身長と体重の組み合わせを表していることがわかります。 |
| |
さて、問題に戻ると |
| |
私たちの現在のアプローチは、抵抗と静電容量の 95% または 99% の予測境界を独立して見つけるというものであり、改善の余地があると考えています。 |
| |
この例では、抵抗と静電容量を 1 つずつ見ているだけなので、2 つの別々の境界が見つかります。 |
| |
たとえば、抵抗の 95% 予測境界は 4.52 と 4.97 で、濃い青の線で示されています。 |
| |
そして、静電容量の 95% 予測バランスを見つけます。これは 15.6 と 16.5 で、緑がかった青の線で示されます。次に、最悪のケースを表す黄色の星と紫の五角形を得るための組み合わせを見つけます。 |
| |
さて、このアプローチには少し懸念があります。最初の懸念は、タイプ I のエラー率に関するものです。抵抗 1 の 95% 境界と抵抗の 95% 境界を見つけたとき... |
| |
容量 1 については、8 つの変数があり、全体として 95% ではなく信頼度レベルがわかっていることに注意してください。信頼度レベルは、変数の相関関係によって異なります。 |
| |
アルファ調整を行うことでこのハードルを乗り越えることができますが、私たちにとってもう少し大きな懸念事項となる別のハードルについてお話ししたいと思います。 |
| |
さて、この黄色い円で示されている高/高の組み合わせに興味がある場合はどうなるでしょうか? |
| |
この例では、最悪のケースの境界に近いデータが存在しないことがわかります。したがって、これを使用する場合、これは非常に保守的です。 |
| |
デバイスを設計する際には、コストと時間の要素が伴うため、少しは保守的になりたいのですが、この黄色い円を使用するほど保守的になりたくはありません。なぜなら、その周囲には実際にはデータ ポイントがないからです。 |
| |
さて、この問題の解決策として検討したい、JMP で簡単に実行できる代替アプローチがいくつかあります。最初のアプローチは密度楕円です。 |
| |
これは、Y と X の適合プラットフォームで見つかります。二変量適合の赤い三角形をクリックすると、密度楕円を選択できます。この場合は、95% の楕円を選択しました。グラフに赤い楕円が表示されます。 |
| |
JMP がこの密度楕円を表示する場合、プレゼンテーションの右下隅を見ると、2 つの変数の平均標準偏差と相関関係が表示されます。 |
| |
JMP では楕円の方程式は提供されません。これは乗り越えられるハードルです。解くには、少し計算するだけです。 |
| |
しかし、より大きなハードルは、2つ以上の変数がある場合に何が起こるかということです。この場合、JMPには簡単なオプションがありません。 |
| |
この問題を解決するには、ペアワイズ楕円を実行するか、一度に 2 つの変数を実行する必要がありますが、同じアルファ問題が発生し、??? として使用するポイントを選択するのがかなり難しくなります。 |
| |
さて、このアプローチにはもう一つ、非常に小さな懸念事項があります。それは、もし私たちがその高い/高いコーナーやその黄色い円に興味があったらどうなるかということです。楕円上のどの点を選択すればよいのでしょうか。 |
| |
繰り返しになりますが、これは乗り越えられるハードルだと思いますが、2 つ... 2 つ以上の変数がある場合、これはかなり難しいハードルになります。簡単に解決できるかどうかはわかりません。 |
| |
さて、JMP で簡単に実行できる別のアプローチがあります。それは主成分分析です。 |
| |
主成分分析では新しい変数を作成し、JMPはそれをPrin 1とPrin 2とラベル付けします。 |
| |
新しい変数は互いに直交します。そして、それらが直交しているという事実を利用して、最悪のケースの境界を解くことができます。 |
| |
これは多変量法プラットフォームにあります。多変量法、主成分分析に進むと、これらの主成分を求めることができます。 |
| |
主成分アプローチに関する懸念は、変数が 2 つ以上ある場合、計算が非常に困難になることです。 |
| |
さらに、理論的には主成分は次元を減らそうとします。言い換えれば、最悪のケースの同時境界を見つけたい8つの変数があったとすると、 |
| |
しかし、JMP は戻ってきて、何が起こっているかを説明するのに役立つ 3 つの主要な原則が見つかったと報告するかもしれません。 |
| |
この場合、方程式が 3 つあり、未知数が 8 つあるため、問題を解くのが非常に困難になります。そのため、主成分アプローチは使用しません。 |
| |
それで、私たちはどこにいるのでしょうか? 私たちの目標は、同時最悪のケースの境界、つまり高/高、低/高、または低/低/高/高の組み合わせを見つけることです。 |
| |
問題を解決するために、JMP を使いたいと思っています。3 つ以上の変数を処理できる必要があります。 |
| |
各変数は正規分布している場合もそうでない場合もあります。何らかの相関関係があることが予想されます。幸い、データセットは比較的大規模になる傾向があります。 |
| |
このコーナーを要求した場合に、その周辺にデータがあり、データがない状況に陥らないようにしたいのです。また、簡単で実用的な解決策で十分かもしれません。 |
| |
さて、これから私がやりたいのは、概念を説明し、その概念がどのように問題を解決するために使われるかをお見せすることです。 |
| |
そこで、K 最近傍法と呼ばれる概念があります。これは、ある点があり、その点から他のすべての点までの距離を求めるという考え方です。 |
| |
そして、その点のk近傍点、つまり最短距離のk点を決定します。これを理解するために、例を見てみましょう。赤で強調表示されている点に注目しましょう。濃い赤で、その座標は |
| |
4.51 と 15.66。青色の点を取ると、座標は 4.67 と 15.54 となり、これらの点間の距離を見つけることができます。 |
| |
または、最近傍点の考え方は、赤で示された点について、データセット内の他のすべての点におけるその点からの距離を見つけることができるというものです。 |
| |
そして、距離を最小から最大まで並べ替えて、必要なものを取り出すことができます。 |
| |
たとえば、k=2 のとき、赤色の点に最も近い 2 つの点を知りたい場合は、ピンク色の 2 つの点が赤色の点に最も近い点であることがわかります。 |
| |
さて、これからソリューションについてお話ししたいと思います。まずは概要から、そしてゆっくり時間をかけてステップを追っていきます。私たちのソリューションは、大規模なデータセットがある場合、 |
| |
まず、各変数の中央値+/-3標準偏差を見つけることができます(また、mmeanを使用することもできます)。 |
| |
そうすることで、私たちは目標コーナー、または望ましいコーナーと呼んでいるものを定義します。それは、各変数の最高点の下限に基づいて、最低の最高点です。 |
| |
次に、各ポイントからターゲットコーナーまでの距離を計算し、距離を小さい順から大きい順に並べます。 |
| |
そして、私たちの場合、ニーズに合わせて (これについては次のスライドでもう少し詳しく説明します)、対象のコーナーに k 近傍点を取得します。そして、一般的に、必要な信頼性を表す k 近傍点を収集できます。これについても、すぐにもう少し詳しく説明します。 |
| |
次に、k 近傍の平均を取り、それが解になります。 |
| |
さて、考え方としては、まず 2 つの変数から始めて、平均 +/-... すみません、中央値 +/-3 標準偏差を見つけ、平均を使用することもできます。 |
| |
そうすることで、私たちはそれらをターゲット コーナーと呼んでいます。つまり、私がロー/ハイ コーナー、つまりペンタゴンの黄色い星のハイ/ロー コーナーに興味があったとしたら、それらは私たちが定義したターゲット コーナーと呼ばれるものから始まります。 |
| |
次のステップでは、すべてのデータ ポイントを取得し、データ セット内のすべてのポイントから対象のコーナーまでの距離を計算します。 |
| |
そして、それらの距離を取得したら、それを最小から最大の順に並べ替えます。 |
| |
そして、この例では、ターゲットコーナーに最も近いk近傍点を見つけます。図では、黄色の5つの点が示されています。 |
| |
黄色の星に最も近い 5 つの点であり、紫色の 5 つの点は紫色の五角形に最も近い点です。 |
| |
次に、これら 5 つのポイントの平均をそれぞれ取得します。そうすると、これらの黒い楕円が最悪のケースの値として使用されるものを表します。 |
| |
そして、それを活用してデバイスの設計に役立てていきます。 |
| |
ここで、密度楕円とターゲットコーナーを基準としたポイントをお見せしたいと思います。黄色の星と紫色の五角形は、私たちの元の方法です。 |
| |
密度楕円は悪くなく、少し良くなっていることがわかります。この特定のソリューションの本当に素晴らしい点は、その近くにデータ ポイントがあり、それがまさに設計どおりであることです。 |
| |
さらに、私たちにとってはそれほど保守的ではないので、デバイスを設計するときに余分なコストを支払う必要はなく、データの分布について心配する必要もありません。相関関係は、私たちが問題を解決する方法にはまったく関係ありません。 |
| |
さて、高/高と低/低の境界、つまり明るい青色の五角形または濃い青色の星に興味があるとします。この方法も同様に機能します。 |
| |
黒い楕円の中に私たちの解決策が示されていますが、ここにもデータ ポイントがあります。 |
| |
ですから、私たちにとって、これは素晴らしいアプローチです。特に現在のアプローチと比較すると、保守的すぎるわけではないからです。少し保守的かもしれませんが、この五角形と星ほど保守的ではありません。 |
| |
さて、先ほど、どのようにアプローチするかについていくつかコメントしましたが、選択肢がいくつかあります。そこで、K の選択と平均を取るべきかどうかについて議論したいと思います。 |
| |
そして私にとって、その K は、信頼度、サンプル サイズ、哲学の種類に基づいている可能性があります。説明させてください。 |
| |
たとえば、データ ポイントが 1,000 個あり、95% の信頼性を確保したいとします。 |
| |
その場合、2 つのコーナーの 25 番目に近い距離を取ると、低い側または低い/高い側で 2.5%、反対側で 22.5% の誤差が生じ、これらを合わせると 95% の信頼度が得られます。 |
| |
したがって、25番目に近い距離を取得して完了することができます。これが1つの方法です。また、23番目、24番目、25番目、26番目、27番目の距離を取得して平均することもできます。 |
| |
そして、5 つの値の平均を取り、それをアプローチとして使用します。つまり、これを処理するにはいくつかの方法があります。 |
| |
私たちの特別なニーズでは、サンプルサイズが非常に大きく、少し保守的になりたいので、95%や99%の信頼性にこだわっていません。説明のために、 |
| |
右側のグラフにあるオレンジ色の円は、たとえば 95% の信頼区間を表している可能性があり、5 つのポイントの平均、または 25 番目に近い距離を表している可能性もあります。 |
| |
そこで私たちが行うことは、そのアプローチを使用する代わりに、最初の 25 ポイントの平均を取ることです。そうすると、黒い楕円が表示され、楕円が外側に移動していることがわかり、少し保守的になります。 |
| |
そのため、私たちは意図的に、より保守的にそれを行います。 |
| |
繰り返しになりますが、これは選択であり、私たちにとって良いのは、現在のアプローチが、望ましいコーナーほど保守的ではないことです。そのため、少し保守的な性質を取り入れていますが、極端に保守的というわけではありません。 |
| |
わかりました。では、このアプローチの長所と短所は何でしょうか? 長所は、変数の分布を知る必要がないことです。 |
| |
いくつかの相関変数や従属変数を簡単に処理でき、複数の変数、特に 2 つ以上の変数を簡単に処理できます。 |
| |
その解に近いデータがあり、その一部がその大きなデータ サイズに依存していることがわかっており、JMP のアドインでスクリプトを作成して簡単に計算を実行できます。 |
| |
欠点は、かなり大きなサイズのデータ セットが必要になることです。たとえば、99% の信頼度、つまり本当に高い信頼度レベルが必要な場合は、大量のデータが必要になるからです。 |
| |
さて、これが私たちのアドインの外観です。このユーザー インターフェイスでは、左上隅に可能な変数が表示されます。 |
| |
そして、高側には、たとえば抵抗の高い値を入力します。これは緑色でハイライトされています。紫色のハイライトに移動すると、低側にいくつかの値を追加できます。この例では、静電容量の低い組み合わせが必要になります。 |
| |
次にあなたがしなければならないことは、あなたが望む自信を入力することです。 |
| |
また、リコールボタンも付いているので、ユーザーにとって便利です。 |
| |
そして、チームのロゴがあるので、アイテムは素敵でプロフェッショナルに見えます。 |
| |
さて、このアドインを実行すると、スクリプトがトリガーされ、出力は JMP テーブルになります。 |
| |
この JMP 表で、この緑色のハイライト部分で最初に指摘したいのは、8 つの変数すべてについて、中央値、標準偏差、そして関心のある低値側か高値側かがわかることです。 |
| |
そこから、目的のコーナーを構築します。つまり、低い側では中央値から 3 標準偏差を引いた値、高い側では中央値に 3 標準偏差を加えた値になります。ここでも紫色で示したのが、目標のコーナーです。 |
| |
次に、すべての点の距離を求めます |
| |
目的のコーナーまで移動します。そして、この例では、目的のコーナーに最も近い 5 つのポイントを見つけます。これが近隣値です。これらは 5 つの値のベクトルになります。近隣インデックスについては、次のスライドでもう少し詳しく説明します。 |
| |
次に、青色の部分で、これら 5 つの最も近い値の平均を取り、それが問題の解決策になります。青色の列は最悪のケースの値、つまりデバイスの設計に役立つ最悪のケースの値です。 |
| |
また、ここには「近傍 Z スコア」という列もあります。これは、近傍の平均、つまりソリューションを取得し、逆方向に処理して、中央値から標準偏差がいくつ離れているかを確認します。 |
| |
私たちがそうする理由は、当初のアプローチでは、この中央値におよそ 3 つの標準偏差をプラスまたはマイナスするというものだったからです。 |
| |
そして、私たちが見つけたのは、私たちが望む結果を得るためには、実際にはもっと小さな乗数を使用できるということです。つまり、これは、現在の方法がどれだけ保守的か、あるいは過度に保守的かを知るのに役立つだけです。理解を助ける以外に、計算には使用されていません。 |
| |
さて、私は近隣地域、すみません、近隣地域のインデックスについて言及しました。右上に 109 と 126 を紫色で強調表示しました。 |
| |
これはデータの行に対応します。したがって、このアドインを実行すると、JMP テーブルが取得されます。 |
| |
5つの行が5つの最も近い隣接行を表すことがわかります。 |
| |
また、元のデータ セットでも選択できます。この機能の優れた点は、色分けが簡単になることです。先ほど、黄色の例を示しました。黄色が 5 つ、紫が 5 つあります。 |
| |
このアドインを実行すると、アドインを実行した直後に色を変更するのが簡単になります。 |
| |
さて、8 つの変数の出力は次のようになります。 |
| |
ご覧のとおり、緑の点は低抵抗/高容量値、赤の点は高抵抗/低容量値を表しています。このグラフの右下、紫色で強調した部分に注目してください。 |
| |
たとえば、緑と赤の点は、特定の変数に対してそれほど極端な点ではないことがわかります。これが、この問題の同時的な側面です。 |
| |
これは実際には 8 つの変数すべてにわたって問題を解決しています。したがって、一部の変数にとっては極端かもしれませんが、他の変数にとってはそうではないかもしれませんが、それは私たちにとっては問題ありません。 |
| |
しかし、繰り返しになりますが、そうすることで変数間の関係を理解するのに役立ち、最終的な解決策、最悪のケース、最悪のケースの値がグラフィカルに表示されます。 |
| |
さて、このアドインを説明するために BigClass データ セットに戻ると、これは小さなデータ セットであることがわかります。これは説明目的のみです。スクリプトを実行して、high/high 側を要求したり、low/low 側を要求したりできます。 |
| |
もう一度これを行うと、前と同様に、中央値と標準偏差が得られます。これを使用して境界を見つけます。 |
| |
これが私が求めているコーナーです。次に、その境界に最も近い 5 つの近傍を探します。緑色で表示されているのが実際の値で、グラフ上では黄色と紫色でプロットされています。 |
| |
隣接インデックスは行を参照し、これによりデータをすばやく色分けできます。 |
| |
近傍平均は黄色の星と紫色の五角形で、これが問題の解決策になります。また、この方法がどれだけ保守的であるかを内部的に把握するために、Z スコアを実行します。 |
| |
さて、この時点で、スクリプトのいくつかのポイントを強調したいと思います。スクリプトを作成したとき、右上に表示されているように、このパネル ボックスを作成しました。 |
| |
水色は、ユーザーに、高い側で検出する変数と低い側で検出する変数を入力するよう求める部分です。 |
| |
この銅色の部分には、パーセンタイルの入力が示されており、これは実際には数値です。 |
| |
また、222 行目と 223 行目を見ると、リコール関数を構築していることがわかります。 |
| |
さて、私たちがやりたいことの 1 つはデータ品質チェックです。ですから、私たちはこれをできる限り間違いのない、エラーのないものにしたいと考えています。 |
| |
たとえば、信頼度レベルを数値として入力する必要があります。その場合、その数値が 0 から 100 の間であるかどうかをチェックし、そうでない場合は、入力を変更する必要があるというエラー メッセージをユーザーに表示します。 |
| |
同様に、下部では、これを実行するには、低リストまたは高リストに何かが必要なので、何かが入力されていることを確認するためのデータ チェックがあります。 |
| |
さて、次に行うことは、sumcols 関数と呼ばれるものを使用することです。 |
| |
sumcols関数は過去の列をループします。言い換えれば、入力した安値と高値を取得します。 |
| |
そして、私たちにとって重要な情報を含む辞書または連想配列を返します。右側の右下を見てみると、 |
| |
すみません、右下を見てみると、例えばオレンジ色のところはデータタイプに関する情報を収集するところです。 |
| |
データポイントはいくつあったか、中央値はいくらか、標準偏差はいくらか。紫色で計算して、希望する値を取得します。 |
| |
コーナーまたはターゲットコーナーは、境界と呼ぶことにします。そして、青色の AA は連想配列で、次のステップに必要なすべての情報を取得または保存します。 |
| |
さて、ここからは距離を計算していきます。青いハイライト部分でわかるように、 |
| |
これは低い側で、その真下に行くと高い側になります。各ポイントからターゲットのコーナーまでの距離を計算し始めます。 |
| |
そして、先ほど示したように、二乗して平方根を取るという計算を行う必要がありますが、本質的には、ポイントから 3 シグマまでの距離を求めているだけです。 |
| |
そして、下部では、それらを並べ替え、距離を順序付けし、必要なものを取り出すプロセスを実行します。 |
| |
そして、オレンジ色で強調表示されている 6、7、8 を指摘したいと思います。 |
| |
私たちは脚本を書くときはいつも、コメントをもらうようにしています。そして、残念なことに、ある人が脚本に取り組んでいるときに、別のことに引き込まれてしまい、別の人が |
| |
完成するまでに時間がかかるので、他の人が引き継いで何が起こっているのかを本当に理解できるように、このようなコメントがあると本当に助かります。 |
| |
さらに、コメントがあると、たとえ自分が 1 人で作業している場合でも、何年か後にその作業に戻らなければならないときに、各ステップで何が行われていたかを思い出すことができるので便利です。そのため、私たちはコメントを入れるように最善を尽くしています。 |
| |
さて、最後に、ローサイドとハイサイドを実行して、いくつかの値を辞書に返します。青で示されているように、最小近傍を抜き出すと、それが出力に出てくるベクトルになります。 |
| |
次にそれらの平均を取ります。これが私たちの解です。オレンジ色で示されています。例として、紫色でZスコアを見つけます。つまり、情報、つまりすべての距離を取得し、それらを並べ替えたら、 |
| |
次に、必要な情報を抽出して、テーブルを構築します。 |
| |
さて、これらすべてをまとめると、私たちの動機となる問題は、デバイスの設計に役立つこれらの同時最悪のケースの境界を見つけたいと考えていたのですが、現在のソリューションは保守的すぎるため、お金と時間がかかります。 |
| |
そして、この問題を解決するときには、データが多変量正規分布に従う場合も従わない場合もあることがわかっており、データは独立していません。 |
| |
そして、この頻度には、本当にシンプルな解決策が必要であり、できればJMPを使用する必要があるため、私たちの解決策は |
| |
目的は、使いやすく、k 近傍法の概念を使用し、出力がわかりやすく、色分けして他の人に見せることができるグラフをすばやく作成できる JMP アドインを作成することでした。 |
| |
わかりました。ありがとうございました。 |