| スピーカー |
トランスクリプト |
| マイステップ |
JMP Discovery サミットへようこそ。 |
| |
JMPプロダクトマネージャーのミア・スティーブンスです。JMPシステムエンジニアのジョーダン・ヒラーと一緒にお話を伺っています。本日は、データキュレーションワークフローの自動化についてお話します。 |
| |
講演は2つのパートに分かれています。まずは分析ワークフローと、その中でデータキュレーションがどのように機能するかについてお話しして、講演の土台を築いていきたいと思います。 |
| |
それでは、この講演の核心である、再現可能なデータキュレーションの必要性について、ジョーダンにバトンタッチしたいと思います。 |
| |
JMP 15 でこれを行う方法を見ていきます。その後、データキュレーションの手順と、分析用にデータを準備するために実行するアクションを記録するための、JMP 16 の新機能について少し紹介します。 |
| |
それでは、分析ワークフローについて考えてみましょう。よくあるワークフローの例を一つご紹介します。もちろん、すべてはビジネス上の課題を定義し、解決しようとしている問題を理解することから始まります。 |
| |
次に、データをまとめる必要があります。もちろん、様々なソースからデータを収集し、JMPに取り込むこともできます。そして最後に、結果を共有し、発見した内容を他の人と伝えられるようにする必要があります。 |
| |
おそらく、このプロセスで最も時間のかかる部分は、分析用のデータの準備、またはデータのキュレーションです。 |
| |
では、データキュレーションとは一体何でしょうか?データキュレーションとは、データが分析による発見を促進する上で有用であることを保証することです。基本的に、私たちは与えられた時間の中で問題を解決したいと考えています。 |
| |
これは主に、データの編成、データ構造、およびデータ品質の問題の解決に関するものです。 |
| |
データに関する問題、あるいはよくある問題について考えてみると、一般的に4つのカテゴリーに分類されます。フォーマットが間違っている、データが不完全、データが欠落している、あるいはデータが乱雑であるといった問題です。 |
| |
こうした問題について話し合い、データ内でこれらの問題をどのように特定するかを説明するために、STIPSというコースから引用します。 |
| |
STIPSについてまだよく知らないという方のために、STIPSとは、私たちの無料オンラインコース「産業問題解決のための統計的思考」であり、7つのコースで構成されています。 |
| |
個別のモジュール。モジュール2は探索的データ分析に関するものです。 |
| |
探索的データ分析とデータキュレーションはインタラクティブかつ反復的な性質を持つため、このモジュールの最後のレッスンは分析のためのデータ準備です。ここでは、データの品質問題を特定し、データをキュレーションするために実行できる手順について学びます。 |
| |
それでは、よくある問題についてもう少し詳しくお話ししましょう。「書式設定の誤り」についてですが、ここで言う「書式設定の誤り」とはどういう意味でしょうか? |
| |
これは、データが分析に適した形式、またはフォーマットになっていない場合に発生します。これはデータテーブル全体に当てはまります。例えば、データが別々の列に分かれているのに、分析のためにはデータを1つの列にまとめる必要がある場合などです。 |
| |
これは個々の変数に当てはまります。モデリングの種類やデータ型が間違っているか、日付データ、日付や時刻のデータがJMPで適切な形式に設定されていない可能性があります。 |
| |
化粧品にも使えます。データテーブルの先頭にある応答変数を削除したり、変数名を変更したり、因子をグループ化してデータテーブルで見つけやすくしたりすることもできます。 |
| |
不完全なデータとは、データが不足していることを意味します。これは重要な変数に当てはまる場合があり、最終的に問題解決に役立つ変数のデータが収集されていない可能性があります。 |
| |
あるいは変数の組み合わせにも影響します。あるいは、単に観測値が足りていない、あるいはデータテーブルに十分なデータが存在しないという可能性もあります。 |
| |
欠損データとは、変数の値が利用できない状態です。欠損データにはさまざまな形態があります。 |
| |
そして最後に、汚れたデータや乱雑なデータは、観測や変数に問題がある場合に発生します。 |
| |
つまり、データが間違っている可能性があります。単に値が間違っているだけです。データの記録方法やシステムへの入力方法に矛盾がある可能性があります。 |
| |
データが不正確であったり、適切な測定システムがなかったり、エラーやタイプミスがあったりする可能性があります。 |
| |
データが古くなっている可能性があります。つまり、すでに使用されていない施設や機械に関する情報を収集した可能性があります。 |
| |
データが古くなっている可能性があります。つまり、データを収集してからプロセスが大きく変化し、データがもはや役に立たなくなっている可能性があります。 |
| |
データは打ち切られたり、切り捨てられたりしている可能性があります。列同士が重複している場合もあります。列には同じ基本情報が含まれていたり、行が重複していたりする場合もあります。そのため、乱雑で不完全なデータは、様々な形態をとる可能性があります。 |
| |
では、潜在的な問題をどのように特定するのでしょうか?まず、データを確認することで、問題が特定され始めます。実際、このプロセスは反復的で、データをグラフや数値で調べ始めると、修正が必要な問題が見えてきます。 |
| |
あるいは解決する。まずはデータテーブルをざっと見てみるのが良い出発点です。データテーブルをざっと見てみると、明らかな問題が見つかることがよくあります。 |
| |
この例では、STIPS コースの「コンポーネント」というデータを使用します。シナリオは、会社が小型コンポーネントを製造しており、歩留まりの向上を目指しているというものです。 |
| |
彼らは369バッチの部品について15列のデータを収集しました。そのため、データを見ると、すぐに明らかな問題がいくつか見つかります。 |
| |
データテーブルの上部にある小さなグラフを見ると、分布の形状や値を確認できます。 |
| |
例えば、バッチ番号はヒストグラムで表示されます。バッチ番号は連続した値ではなく、識別子として考えられます。つまり、データのコード化が間違っていることがわかります。 |
| |
廃棄数を見ると、分布の形状が分かります。また、マイナスの値があることも分かりますが、これはあり得ないことかもしれません。 |
| |
プロセスのヒストグラムには 2 つの値があり、プロセスのモデリング タイプを連続から名義に変更する必要があることがわかります。 |
| |
列パネルを見ると、さらに詳しく分かります。例えば、バッチ番号と部品番号はどちらも連続番号としてコード化されています。これらはおそらく名目値です。 |
| |
データ自体を見ると、他にも問題が見られます。例えば、湿度は連続値であると考えられますが、N/Aという値を持つ観測値がいくつかあります。 |
| |
また、JMP はテキストを参照するため、列は名義としてコード化されます。そのため、これを修正する必要があるかもしれません。 |
| |
サプライヤーに問題があるようです。いくつか欠損値があり、誤字脱字もいくつかあります。そして温度ですが、すべてのドットは、これらの行の温度の値が欠損していることを示しています。これはさらに調査する必要がある問題です。 |
| |
したがって、データ テーブルをスキャンするだけで多くの問題を特定できますが、一度に 1 つの変数ごとにデータを視覚化すると、さらに多くの潜在的な問題を特定できます。 |
| |
非常に便利な出発点であり、私が特に気に入っているツールは、列ビューアです。列ビューアでは、選択したすべての変数の数値サマリーが表示されます。 |
| |
例えば、ここではいくつかの値が欠落しています。温度については、369個の値のうち265個が欠落していることがわかります。つまり、温度が重要な要素であると考える場合、これは潜在的に問題となります。 |
| |
データテーブルに記録された値に潜在的な問題があることも確認できます。例えば、スクラップ率とスクラップ数はどちらもマイナスの値になっています。 |
| |
そして、これが物理的に不可能である場合、データを収集したシステムに戻って調査する必要があるかもしれません。 |
| |
計算された統計情報の一部を見ると、他にも問題点が見つかります。例えば、バッチ番号と部品番号はカテゴリ化されているべきです。 |
| |
平均バッチ番号や平均部品番号を取得するのは意味がありません。したがって、データテーブルに戻ってモデリングの種類を変更する必要があると考えられます。 |
| |
分布は、データと潜在的な問題について多くのことを教えてくれます。分布の形状、中心化、広がりなどを確認できます。また、タイプミスも確認できます。 |
| |
ここでの顧客数ですが、特に問題となるのは、主要顧客が4~5社あり、小規模顧客もいくつかあることです。顧客数と分析を使用する場合は、再コードを使用して、これらの小規模顧客の一部を別のカテゴリにグループ化することをお勧めします。 |
| |
湿度の棒グラフが表示されていますが、これは列にN/A値があるためです。データテーブルをざっと見ただけでは気づかないかもしれませんが、分布を見るとはっきりと分かります。 |
| |
サプライヤーの誤字脱字がはっきりとわかります。 |
| |
連続変数を見ると、形状、中心、広がりを確認できますが、これらの変数内には異常な観察結果もいくつか見られます。 |
| |
したがって、一度に 1 つの変数のデータを調べた後は、一度に 2 つ以上の変数のデータを調べるのが自然な流れになります。 |
| |
たとえば、グラフ ビルダーでスクラップ率とスクラップ数を比較してみます。 |
| |
パターンに興味があるようですね。これらのバンドを見ると、データテーブルの中に、なぜこのパターンが見られるのかを説明する何かがあるのかもしれません。 |
| |
実際、バッチサイズで色分けすると、意味が分かります。つまり、部品が5000個あるバッチでは、200個しかないバッチよりも不良品が発生する可能性が高くなります。 |
| |
グラフの下部に奇妙な観測値があることも分かります。実は、これらはスクラップ数がマイナスの値を示した観測値であり、このグラフの中で特に目立っています。 |
| |
列スイッチャーやデータフィルタを追加すると、グラフに新たな次元を追加できます。圧力などを確認できます。 |
| |
たとえば、代わりに... |
| |
そうですね、圧力を確認したり、ドウェルに切り替えたりできます。ここで私が求めているのは、これらの変数と応答の一般的な関係を把握することです。 |
| |
圧力とスクラップ率には正の相関関係があるようです。一方、ドウェルに切り替えてみると、圧力とスクラップ率の間にはそれほど大きな関係はないようです。 |
| |
ドウェル率やスクラップ率、温度など。そのため、これらの変数は問題解決にそれほど役立たない可能性があります。 |
| |
しかし、速度を見てみると、速度と負の相関関係があります。また、上部にいくつか珍しい観察結果があり、調査してみる価値があるかもしれません。 |
| |
そのため、データを見るだけで、そのデータについて多くのことを知ることができます。 |
| |
もちろん、外れ値や欠損値を調査するためのより高度なツールもありますが、それはこの議論の範囲を超えています。 |
| |
分析段階に入り、データの分析やモデルの構築を開始すると、対処しなければならない潜在的な問題についてさらに多くのことを学ぶことができます。 |
| |
重要なのは、データを調べてこれらの問題を特定する際に、それらの問題をメモしておくことです。 |
| |
いくつかは作業を進めながら解決できるものもあるので、プロセスを進めながらデータの整形やクリーニングを行うことができるかもしれません。 |
| |
ただし、分析を繰り返す必要がある場合や、新しいデータや他のデータで分析を繰り返す必要がある場合に、後で手順を繰り返すことができるように、実行する手順を確実に記録しておく必要があります。 |
| |
ここで、再現可能なデータ キュレーションとそれが何であるかについて、Jordan に話を移したいと思います。 |
| ジョーダン・ヒラー |
ありがとう、ミア。とてもよかった。JMPでポイント&クリックだけでデータキュレーションを実現する方法も学びましたね。次は、それを再現可能にする方法についてお話ししましょう。 |
| |
再現性を懸念する理由は、データセットが新しいデータで定期的に更新されるからです。もしこれが一度きりの作業であれば、ポイントアンドクリック操作についてそれほど心配する必要はありません。しかし、データが何度も更新される場合、 |
| |
毎回ポイントアンドクリックでデータキュレーションを繰り返すのは、あまりにも手間がかかります。 |
| |
そのため、データキュレーションのステップをすべて実行するスクリプトを生成する方が効率的であり、そのスクリプトをボタンを1回クリックするだけで実行できます。 |
| |
一度に全部やります。効率性に加えて |
| |
プロセスを文書化します。これは、あなたが何をしたかの記録として機能します。そのため、後で自分自身で参照して、自分が何をしたかを思い出すことができます。また、後からこのプロセスを担当する人々にとっても、記録として役立ちます。 |
| |
このプレゼンテーションの残りの部分では、ポイントアンドクリックのみでデータキュレーション スクリプトを生成する方法を示すことを目標としています。 |
| |
これを実行するためにプログラミングは一切不要です。プログラムコードは自動的に抽出・保存されますので、その仕組みについて少し説明します。 |
| |
2つのセクションに分かれています。JMP 15でデータキュレーションスクリプトを取得するために今できることと、来年JMP 16がリリースされたらできることについてです。 |
| |
JMP 15 には、独自の再利用可能な JSL スクリプト コードを生成するデータ キュレーション タスクがいくつかあります。 |
| |
ポイントアンドクリックを実行するだけで、コードを取得するテクニックがあります。それを実演します。Recodeのようなツールを使えば、 |
| |
計算式を含む新しい数式列の生成、データテーブルの変形など、これらのツールはテーブルメニューにあります。スタック、分割、結合、連結、更新などの機能があります。これらのツールはすべて |
| |
JMP 15 では、ポイント アンド クリックで実行した後、独自のスクリプトが生成されます。 |
| |
独自のJSLスクリプトを生成しない一般的なタスクが他にもあり、これらのタスクをより簡単に実行し、再現可能にするために、 |
| |
そして、主に列に関する作業、列のデータ型の変更、モデリングの種類、表示形式の変更など、以下の作業に役立ちます。 |
| |
データ テーブルの列の名前変更、並べ替え、削除、また仕様制限や値ラベルなどの列のプロパティの設定も行います。 |
| |
そこで、JMP 15 でこれらのタスクを支援するために、データ クリーニング スクリプト アシスタントを使用します。 |
| |
JMP 16 のプレビューをお届けします。JMP 16 のログの新機能に非常に興奮しています。これは拡張ログ モードと呼ばれると思います。 |
| |
基本的な考え方は、JMP 16 では、通常どおりにポイントしてクリックするだけでデータ キュレーションの手順を実行できるということです。 |
| |
必要なJSLコードは自動的に生成され、ログに記録されます。あとはそれを取得して保存するだけです。とてもシンプルでとても便利なので、ぜひお見せしたいと思います。 |
| |
ご参考までに、チートシートをご用意しました。JMP 15では、左側に表示されているタスクが一般的なデータキュレーションタスクです。ただし、網羅的なリストではありません。 |
| |
真ん中の列は、JMPでポイントアンドクリックでこれらの操作を実行する方法を示しています。再利用可能なスクリプトを抽出する方法は右側に記載されています。そのため、ここではすべてを網羅するわけではありません。 |
| |
はい、これは後で皆さんにご参照いただくためのものです。それではデモを始めましょう。ミアがコンポーネントデータテーブルで指摘した問題のいくつかに対処する方法をお見せします。まずはJMP 15から始めます。 |
| |
まず最初にお話しするのは、列の問題、つまり変化についてです |
| |
変化 |
| |
データ型やモデリングの種類などです。ポイントアンドクリックだけで操作するのであれば |
| |
JMPでは通常、湿度の列を次のように入力します。 |
| |
そこにテキストが入っているのですが、誤って文字列の列として表示されてしまいます。ポイントアンドクリックでこれを修正するには、通常は右クリックして列情報を開き、ここで変更を加えます。 |
| |
これは、JMP 15では使えるスクリプトが残らないJMPタスクの一つです。そこで、代わりにデータクリーニングスクリプトアシスタントを使用します。それでは始めましょう。 |
| |
アドインメニューにあります。私はインストールしているので、皆さんもインストールできます。データクリーニングスクリプトアシスタント、これに必要なツールはVictor the Cleanerです。これは |
| |
列を変更するためのグラフィカルユーザーインターフェースです。データ型やモデリングの種類を指定できます。列名の変更、列の順序変更、列の削除など、スクリプトを保存できます。それでは、いくつか変更を加えてみましょう。 |
| |
湿度については、N/A値が含まれているためテキストとして入力されています。これを文字変数から数値変数に変更します。また、名目値から連続値に変更します。 |
| |
また、バッチ番号を公称値に変更する必要があることもわかりました。部品番号も公称値に変更する必要があり、現在は数字になっているプロセスも変更する必要があります。 |
| |
名目上の。 |
| |
fab techですね。これは私にとっては役に立ちません。では、facilities列を削除しましょう。ここで名前をクリックして選択し、「削除」をクリックします。 |
| |
ミアが言及した外観上の変更をいくつか紹介します。スクラップ率は表の最後尾にあります。これを前に移動させたいと思います。4番目に移動します。 |
| |
顧客番号です。これを選択し、矢印キーを使って顧客番号のすぐ後に移動します。 |
| |
最後に行う変更は、圧力変数を取得して、その名前を変更することです。 |
| |
私の組織のエンジニアたちはこの列を「psi」と呼んでいます。それで、私もこの列にこの名前を付けようと思います。さて、ここで変更したいのはこれだけです。 |
| |
いくつか選択肢があります。スクリプトをデータテーブル自体に保存するかどうかを指定します。そうすると、左上のパネルに小さなスクリプトセクションが表示されます。 |
| |
独自のウィンドウに保存する場所については、スクリプトウィンドウに保存しましょう。また、「OK」をクリックしたときに、指定したクリーニングアクションを実行するかどうかも選択できます。実行を保留にして「OK」をクリックします。 |
| |
これで、すべての変更が行われたことがわかります。並べ替えや列のプロパティの変更などが行われました。そして |
| |
スクリプトがあります。これを実現するためのスクリプトです。専用のウィンドウに表示され、この小さなプログラムがベースになります。これを基にデータキュレーションスクリプトを構築していきます。これを保存しましょう。デスクトップに保存します。このスクリプトを |
| |
v15 キュレーション スクリプト。 |
| |
モデリング タイプの変更、データ タイプの変更、名前の変更、順序の変更など。 |
| |
これらはすべてVictorから得たものです。コードに記録しておきます。後で読めるように、コードに少しコメントを残しておくと良いでしょう。Victorツールから得たものであることを示すメモを残しておきます。 |
| |
DCSAのデータクリーニングスクリプトアシスタントVictorからだとしましょう。これはコメントです。2つのスラッシュは |
| |
プログラム内の行。これはコメントです。つまり、プログラムインタープリタはそれをプログラムコードとして実行しようとしません。これは単なるメモとして認識され、上に緑色で表示されています。 |
| |
スクリプトにちょっとしたコメントを残しておくと良いですね。さて、次に進みましょう。 |
| |
次に取り組むキュレーションタスクは、このサプライヤーコラムです。ミアは、ここには対処すべき問題がいくつかあると教えてくれました。 |
| |
これには再コードツールを使います。再コードはJMP 15のツールの一つで、スクリプトが保存されます。必要なのは、そのスクリプトをどこで取得するかだけです。それでは、再コードを実行してスクリプトを取得し、右クリックします。 |
| |
再コード化します。 |
| |
これらのデータ値を修正します。赤い三角形から始めます。まず、テキスト全体をタイトルケースに変換します。これにより、下の小文字のHersch値が整理されます。 |
| |
余分な空白文字も削除しましょう。これで、このアンダーソンの先頭のスペースが整理されました。わかりました。 |
| |
そして、再コード ツールで行ったすべての変更はこのリストに記録され、必要に応じて、変更を循環して元に戻したりやり直したり、履歴を循環したりできます。 |
| |
よし、あと少し変更するだけだ。手動で変更する。ハーシーズ、コックス、アンダーソンをまとめてグループ化しよう。 |
| |
TrutnaとWorleyはすでに正しいです。最後に、これらの欠損値について考えてみましょう。欠損値にはそれぞれ独自のカテゴリを割り当てます。 |
| |
これが私の再コーディングのプロセスです。必要な作業はこれで完了です。ただポイントしてクリックするだけなら、「再コーディング」をクリックするだけで完了です。ただし、このスクリプトを取得する必要があることを覚えておいてください。そのためには、赤い三角形のところに移動します。 |
| |
スクリプト セクションに移動して、このスクリプトをスクリプト ウィンドウに保存します。 |
| |
ここでは、独自のスクリプト ウィンドウに保存されており、そのセクションを処理中のキュレーション スクリプトの下部に貼り付けるだけです。 |
| |
では、見てみましょう。ここから全部取得します。実際に見る必要すらありません。そうです。プログラマーである必要はありません。Ctrl + C を押して、一番下に貼り付けるだけです。そして、これは recode の赤い三角から取得したものだということをメモに残しておきましょう。 |
| |
わかりました。このウィンドウはもう必要ないので閉じます。そして、これらの更新をキュレーションスクリプトに保存します。これでコードの再作成が完了しました。 |
| |
取得する |
| |
それをコード化します。 |
| |
さて、次の課題は計算です |
| |
利回りですね。ああ、すみません。これから実際に再コードを実行します。スクリプトを保存したので、再コードを実行しましょう。すると、サプライヤー列が再コードされました。完璧です。 |
| |
では、歩留まりの列を計算してみましょう。これは少し冗長ですが、スクラップ率は既に計算済みです。 |
| |
議論の便宜上、新しい列を計算してそのスクリプトを抽出する方法を示しましょう。JMP 15では、スクリプトは場所さえ知っていれば簡単に取得できます。それでは、収量列を作成しましょう。 |
| |
新しい列、ここをダブルクリックして、列 16 の名前を yield に変更します。 |
| |
そして、それに数式を割り当ててみましょう。 |
| |
歩留まりを計算するには、各バッチに含まれる良品の数を調べる必要があります。つまり、バッチ サイズから廃棄された数を差し引いた数になります。 |
| |
これが各バッチの良品数です。これをバッチサイズ全体で割ると、収率の列が表示されます。収率は0.926です。 |
| |
スクラップ率は0.074、つまり1から歩留まりを引いた値です。よし、計算は正しいですね。歩留まりの列が作成されたので、スクリプトを取得しましょう。ここでポイントがあります。右クリックして列をコピーするのです。 |
| |
右クリックから列をコピーします。 |
| |
貼り付けます。これで完了です。データテーブルに新しい列を追加します。「yield」という列名で、その数式は次のとおりです。 |
| |
さて、プログラミングの知識は不要と言いましたが、ここには小さな例外があります。おそらくお気づきでしょうが |
| |
JSLでは、各ステップの最後にセミコロンが付きます。これはJSLの式を区切るものであり、スクリプトの最後に何か新しいものを追加する場合は、間にセミコロンを入れる必要があります。つまり、私はセミコロンを入力しているだけです。コピー列は |
| |
関数はセミコロンを追加しなかったため、手動で追加する必要があります。 |
| |
はい、わかりました。これが利回りの欄です。次にこれについてお話ししたいと思います。 |
| |
プロセスには1と2というラベルが付けられていますが、これではあまり分かりにくいので、もっと分かりやすいラベルを付けたいのです。プロセス1を「production(本番)」、プロセス2を「experimental(実験)」とします。これは値ラベルを使って行います。 |
| |
値ラベルは列プロパティの一例です。列に追加できる様々な列プロパティのリストがあります。 |
| |
これは測定単位のようなもので、グラフの表示順序を変更したい場合に値の順序付けを使用できます。 |
| |
品質分析のために管理限界や仕様限界、または履歴シグマを追加する場合も、ここで行うことができます。 |
| |
はい。これらはすべて、列に追加する列プロパティ、つまり列に追加するメタデータです。 |
| |
これらの列プロパティを追加するためのJSLスクリプトにアクセスするには、データクリーニングスクリプトアシスタントを使用する必要があります。手順は以下のとおりです。まず、いつものようにポイントアンドクリックで列プロパティを追加します。値ラベルを追加します。 |
| |
プロセス番号1は、productionを呼び出します。追加します。 |
| |
プロセス番号 2 を、実験的なものと呼びます。 |
| |
そして、値ラベル列プロパティを追加することで、 |
| |
データテーブルに分かりやすいラベルが表示されるようになりました。プロセス1とプロセス2の代わりに、本番環境と実験環境が表示されます。 |
| |
データクリーニングスクリプトアシスタント。プロパティコピー機能を選択します。 |
| |
列プロパティ スクリプトがクリップボードにコピーされたことを示す小さなメッセージがポップアップ表示されたら、処理中のスクリプトに戻ります。 |
| |
DCSA プロパティ コピー ツールから。 |
| |
そして貼り付けます。Ctrl + V で貼り付けます。2つの値ラベルを割り当てるためのスクリプトがあります。これで完了です。 |
| |
素晴らしいですね。さて、データキュレーションのステップがあと1つ残っています。これもデータクリーニングスクリプトアシスタントが必要になります。 |
| |
このデータテーブルの中で、例えば真空がオフになっている行だけを考えてみましょう。そうですね。そういう行は313行あります。 |
| |
このデータテーブルで、vacuumがオンになっている行を削除したいだけです。ポイントアンドクリックで削除するには、先ほどと同じように、該当する行を選択し、テーブルサブセットコマンドを実行します。 |
| |
使えるコードを得るために、もう一度データクリーニングスクリプトアシスタントを使う必要があります。このデータテーブルを、vacuumがオフになっている行のみにサブセット化する方法を説明します。まず、行メニューの行選択サブメニューにある「Select Where」を使用します。 |
| |
コマンドを実行して、選択範囲に再利用可能なスクリプトを作成します。ここでは、真空がオフになっている行を選択します。 |
| |
[OK] をクリックして選択を実行する前に、もう一度赤い三角形をクリックして、スクリプトをスクリプト ウィンドウに保存します。 |
| |
コントロールA、コントロールCでコピーして、もう一度貼り付けましょう |
| |
行から。 |
| |
場所を選択 |
| |
Ctrl+Vです。これで、真空がオフになっている行を選択するJSLコードができました。ここでもう一度、 |
| |
選択した行を取得するには、データクリーニングスクリプトアシスタントを使用する必要があります。まずは実際に選択を実行してみましょう。 |
| |
できました。行を選択した状態で、再度アドイン、データクリーニングスクリプトアシスタント、選択した行のサブセット化に進みます。 |
| |
データのサブセットを含む新しいデータテーブルに名前を付けるように求められています。「vacuum, vacuum off」としましょう。これが新しいデータテーブルの名前です。「OK」をクリックすると、サブセットスクリプトがクリップボードにコピーされたことを示す別のメッセージが表示されます。 |
| |
それでそれを一番下に貼り付けます。 |
| |
そこにあるよ。 |
| |
これでJMP 15で使えるデータキュレーションスクリプトが完成しました。実際に使ってみるとどうなるか見ていきましょう。キュレーションの修正作業を行ってきたデータテーブルを閉じます。閉じて、元の状態に戻しましょう。 |
| |
乱雑な状態。 |
| |
JMP の正しいバージョンであることを確認してください。 |
| |
はい、はい、これが乱雑なデータです。本番環境なので常に新しいデータが入ってくるので、新しい行がいくつか入ってきたとします。データキュレーションのワークフローを再度実行する必要があります。 |
| |
スクリプトを実行します。 |
| |
これらすべての操作を実行しました。値のラベルに注目してください。湿度は連続値であることに注目してください。真空がオフになっている行のみにサブセット化されていることに注意してください。ワークフロー全体 |
| |
JSLスクリプトで再現できるようになりました。JMP 15ではこの点に留意してください。ツールによってはJSLスクリプトを直接抽出できるものもありますが、そうでない場合は、私が作成したアドイン「データクリーニングスクリプトアシスタント」をご利用ください。 |
| |
それでは、JMP 16でこれがいかに楽しく、いかに簡単であるかをお見せします。ワークフロー全体を説明するつもりはありません。 |
| |
少し冗長になるのでもう一度説明は省きますが、これまで行ってきたことをいくつか確認してみましょう。JMP 16 でログを開きます。 |
| |
JMP 16ではログの見た目が異なり、その違いのいくつかをすぐに確認できます。では、乱雑なコンポーネントデータを開いてみましょう。 |
| |
これがそれです。ログを見ると、乱雑なデータテーブルを開いたというセクションがあります。そして、この下には、次の処理を実行するJSLスクリプトがあります。 |
| |
今やったことです。これは必要なスクリプトをすべて自動的にキャプチャする実行ログのようなものです。まだ完成していません。 |
| |
新しい機能はまだ追加され続けています。そして、それは今後も継続されると思います。 |
| |
しかし、この強化されたログ機能はすでに非常に便利であり、ほとんどのデータキュレーションアクティビティをカバーしています。 |
| |
今お見せしているのはJMPの早期導入版、つまりバージョン5です。正式リリース時には |
| |
来年初めにリリースされる JMP 16 の製品版は、おそらく現在ご覧いただいているものとは少し異なるものになるでしょう。 |
| |
では、データキュレーションの手順をもう一度確認してみましょう。ワークフロー全体を説明するのは冗長になるので、ここでは割愛します。いくつかだけ実行してみましょう。 |
| |
以前Victorが必要だった機能をいくつかご紹介します。JMP 16ではデータクリーニングスクリプトアシスタントは必要ありません。いつものようにポイント&クリック操作だけで済みます。 |
| |
湿度については、文字から数値、公称値から連続値に変更して「OK」をクリックします。構造化ログでは次のように表示されます。 |
| |
JSLをキャプチャしました。では、データテーブルに戻りましょう。バッチ番号、部品番号、プロセスのモデリングタイプを連続から名目値に変更します。 |
| |
完了です。ログにも記録されています。値が1つしかない「Facility」列を削除します。右クリックして「列の削除」を選択します。これで削除されました。 |
| |
PSI。 |
| |
はい、以上がJMP 15のVictorで実行したツールのすべてです。JMP 16では、これらすべてがJMPスクリプトとして残されているので、コピーして再利用できます。素晴らしいですね。 |
| |
わかりました。あと1ステップだけお見せしましょう。真空状態のサブセットがオフになっていることを確認しましょう。JMP 16ではずっと簡単です。必要なのは |
| |
オフになっているすべてのバキュームを選択します。行メニューを使う必要すらありません。オフになっている行の1つを右クリックして対応するセルを選択するだけで、バキュームがオフになっている313行が選択されます。そして、いつものようにサブセットを実行するには、選択した行のみをサブセット化します。 |
| |
選択した行のみを含む「vacuum off」という新しいテーブルを作成し、すべての列を保持します。さあ、始めましょう。 |
| |
これで完了です。データキュレーションの手順をすべて実行しました。構造化されたログでは次のように表示されます。 |
| |
これを再利用可能で再現可能なデータキュレーションスクリプトにするには、赤い三角のボタンをクリックして、スクリプトウィンドウに保存するだけです。今回は、v16 キュレーションスクリプトとしてデスクトップに保存します。 |
| |
これがスクリプト全体です。JMP 16ですべてのデータを閉じて、このスクリプトを再実行するとどうなるか見てみましょう。 |
| |
JMP 16のホームウィンドウに戻りました。これがキュレーションスクリプトです。最初の行がopenコマンドになっていることにお気づきでしょうか。データテーブルを開く必要すらありません。ここでインラインで処理されます。 |
| |
新しいデータが入ってきてこのファイルが更新されたときに、データキュレーションの手順を実行するために必要なのは、スクリプトを実行することだけです。 |
| |
できました。すべてのキュレーション手順と313行のサブセットです。JMP 16の拡張ログ機能を使用して、すべてのデータキュレーション作業を記録し、再現可能なスクリプトに変換します。 |
| |
さて、JMP 15のチートシートをもう一度お見せします。これは、JMP 15で再利用可能なコードを抽出するために知っておく必要があることです。JMP 16がリリースされたら、これについてそれほど心配する必要はありません。 |
| |
2021年初頭に。 |
| |
最後に、MiaはJMPでデータキュレーションを実現する方法を示しました。これは、ポイントアンドクリックで問題を特定し、修正していく探索的かつ反復的なプロセスです。 |
| |
データが定期的に新しいデータで更新される場合、時間を節約するためにそのワークフローを自動化する必要があります。 |
| |
また、プロセスを文書化して、後で戻って自分が何をしたかを確認できるように、履歴を残しておくこともできます。 |
| |
自動化のプロセスでは、ポイント アンド クリック アクティビティを再利用可能な JSL スクリプトに変換します。 |
| |
JMP 15 では、組み込みツールとデータ クリーニング スクリプト アシスタントのツールの両方を組み合わせて使用して、これらの目的を達成する方法について説明しました。 |
| |
また、JMP 16のプレビューと、強化されたログを使用してポイントアンドクリックによるデータキュレーションアクティビティを自動的にキャプチャし、美しく再利用可能なファイルを残す方法についてもご紹介しました。 |
| |
再現可能なデータキュレーションスクリプト。 |
| |
はい、これで私たちのプレゼンテーションは終わりです。お時間をいただきありがとうございました。 |