スピーカー | 成績証明書 |
| ミア・スティーブンス | JMP ディスカバリー サミットへようこそ。 私は Mia Stephens です。JMP プロダクト マネージャーです。 そして、システムエンジニアのジョーダン・ヒラーも加わりました。 そして今日は、データキュレーションワークフローの自動化についてお話します。 |
| これは参考のための要約です。それについては話すつもりはありません。 |
| この講演は 2 つの部分に分けて説明します。 まずは分析ワークフローについてお話します |
| データの作成、つまりデータキュレーションの意味について話します。 そして、データ内の潜在的なデータ品質の問題を特定する方法を見ていきます。 |
| それから私はそれをジョーダンに引き継ぎ、ジョーダンは再現性の必要性について話すつもりです。 |
| 彼はデータ キュレーションのためのチートシートを私たちと共有し、JMP でデータをキュレーションする方法を説明する予定です。 |
| アクションレコーダーと拡張ログ。 |
| それでは、分析ワークフローについて話しましょう。 |
| すべては、解決しようとしているビジネス上の問題から始まります。 |
| そしてもちろん、データをコンパイルする必要があります。さまざまなソースからデータをコンパイルし、そのデータを JMP に取り込むことができます。 |
| そして最終的には、結果を共有し、発見したことを他の人に伝えることができる必要があります。 場合によっては、これが 1 回限りのプロジェクトになることもありますが、 |
| しかし、多くの場合、分析を繰り返すことになります。 したがって、この講演で取り上げられる中心的な質問は、結果を簡単に再現できるかということです。 |
| 他の人があなたの結果を再現できますか? あるいは、新しいデータがある場合、またはデータが更新されている場合、分析、特にこれらの新しいデータに対するデータ キュレーション ステップを簡単に繰り返すことができますか? これがこの講演で取り上げることです。 |
| しかし、データキュレーションとは正確には何でしょうか? |
| そして、なぜそれについて心配する必要があるのでしょうか? |
| データのキュレーションとは、データが分析上の発見を促進するのに役立つことを保証することです。 基本的に、私たちは対処しようとしている問題を解決できる必要があります。 |
| そして、それは主にデータの編成、データ構造、そしてデータのクリーンアップに関するものです。 |
| データに関して遭遇する可能性のある問題について考えると、それらは 4 つの一般的なカテゴリに分類される傾向があります。 |
| 形式が正しくない、データが不完全、データが欠落している、またはデータが汚れているか乱雑である可能性があります。 |
| これらの問題について話し合うために、STIPS からいくつかのコンテンツを借用します。 STIPS に詳しくない場合は、STIPS は当社の無料コース「産業問題解決のための統計的思考」です。 |
| これは 7 つの独立したモジュールに基づいたコースで、2 番目のモジュールは探索的データ分析です。 |
| そして、探索的データ分析とデータキュレーションの反復的かつ対話型の性質のため、このモデルの最後のレッスンは...このモジュールでは「分析のためのデータ準備」と呼ばれているため、この講演全体を通じてこのレッスンから多大に借用しています。 |
| これらの問題をそれぞれ詳しく見てみましょう。 書式設定が正しくありません。 間違った形式とはどういう意味ですか? これは、データが間違った形式であるか、分析するには間違った形式である場合です。 これはデータテーブル全体に当てはまります。 たとえば、次のようになります。 |
| 「...別々の列に格納されるデータ」と呼ばれますが、実際には 1 つの列に格納されるデータが必要です。 |
| あるいは、データが別々のデータ テーブルにあり、データ テーブルを連結、更新、または結合する必要がある場合もあります。 |
| それは個々の変数に関係する可能性があります。 したがって、たとえば、モデリングの種類が間違っている可能性があります。 または、データ テーブルに日付が含まれているため、日付の列があり、それらが日として書式設定されていないため、分析でこれらが日付データであることが認識されない可能性があります。 |
| 書式設定は表面的なものになる場合もあります。 したがって、たとえば、大規模なデータ テーブルを扱っている場合は、多数の列が存在する可能性があります。 |
| 実際には認識できない名前を変更したい列名があるかもしれません。 |
| 列がたくさんある場合は、それらをグループ化して、もう少し管理しやすくすることができます。 |
| 応答列がデータ テーブルの最後にある場合、それを上に移動したい場合があります。 したがって、表面上の問題が必ずしも分析の邪魔になるわけではありませんが、これらの問題のいくつかに対処できれば、分析を少し容易にすることができます。 |
| 不完全なデータとは、データが不足していることです。 これは、重要な変数に関するデータが欠落している可能性があります。 したがって、たとえば、問題解決の基本となる変数に関するデータを取得していない可能性があります。 また、変数の組み合わせに関するデータが不足している可能性もあります。 |
| したがって、たとえば、インタラクションを推定するのに十分な情報がない可能性があります。 |
| または、不平衡なターゲット変数に興味があるため、欠陥などを研究している可能性があります。 それはあなたの観察のわずか 5% かもしれません |
| 欠陥のためのものであり、十分なデータがない可能性があります。ご存じのとおり、データの非常に小さなサブセットしか持っていない可能性があります。 |
| 欠陥が存在する場所。 欠陥の潜在的な原因を理解するのに十分なデータがない可能性があります。 また、サンプル サイズが十分に大きくなく、適切な推定値を得るのに十分なデータがないだけである可能性もあります。 |
| データ欠損とは、変数の値が欠落していることを指します。これにはいくつかの異なる形式が考えられます。 |
| データが欠落しており、データが欠落している場合、その欠落はランダムではなく、深刻な問題を引き起こす可能性があるため、推定に偏りが生じる可能性があります。 |
| 完全にランダムにデータが欠落している場合、少数の観測値しか欠落していない場合は問題にならない可能性がありますが、大量のデータが欠落している場合は問題になる可能性があります。 |
| 汚くて乱雑なデータは、観測または変数に問題がある場合です。 したがって、値が正しくない可能性があります。値が単に間違っているだけです。 |
| 矛盾があるかもしれません。 したがって、たとえば、人々が異なる方法で入力すると、タイプミスやタイプミスが発生する可能性があります。 |
| 値が不正確である可能性があります。 したがって、たとえば、測定システムに問題が発生する可能性があります。 エラーやタイプミスが存在する可能性があり、データが古い可能性もあります。 |
| 古いデータとは、たとえば、使用されなくなった施設やマシンに関するデータがある場合です。 |
| データが古い可能性があるため、2 ~ 3 年前のデータが存在する可能性がありますが、その期間内のどこかでプロセスが変更されている可能性があります。 |
| つまり、それらの履歴データは現在のプロセスには関連していない可能性があります。 データが検閲されたり、切り捨てられたりする可能性があります。 |
| 本質的に同じ情報を含む列である冗長列を作成できます。 または、重複した観測がある可能性があります。 |
| そのため、汚いデータや乱雑なデータはさまざまな形をとる可能性があります。 |
| では、潜在的な問題をどのように特定すればよいでしょうか? |
| 良い出発点は、データを探索することです。実際、問題を特定すると、データの探索と分析が始まります。 データの調査を開始すると、分析で問題の原因となる可能性のあるものが特定され始めます。 |
| したがって、明らかな問題がないかデータ テーブルをスキャンすることから始めるとよいでしょう。 |
| したがって、この講演の残りの部分では「コンポーネント」という例を使用します。これは STIPS コースの例です。 |
| ある企業は小型コンポーネントを生産しており、歩留まりに問題を抱えています。 データが収集されたため、369 のバッチがありました。 15 の特性が捕捉されており、私たちはこれらのデータを使用して、低歩留まりの潜在的な根本原因を理解したいと考えています。 |
| したがって、データ テーブル自体を調べ始めると、どのような種類のデータ品質の問題が発生する可能性があるかを示すいくつかの手がかりが得られます。 これは本当に素晴らしい出発点です (これは JMP 15 で追加されました) |
| ヘッダー グラフです。 私はヘッダーグラフが大好きです。 彼らが行うことは、ヒストグラムを表示する連続変数がある場合に、分布の中心、形状、広がりを確認できるようにすることです。 |
| 値の範囲も表示されます。 カテゴリ データがある場合は、最も人口の多い棒の値を含む棒グラフが表示されます。 それでは、これらのいくつかを見てみましょう。 バッチ番号から始めます。 バッチ番号はヒストグラムを表示していますが、実際には形状は均一です。 |
| バッチには識別子である可能性のあるものに番号が付けられているため、これらのデータがおそらく間違ってコーディングされていることがすぐにわかります。 |
| この分布が大きく歪んでいることがわかり、最低値が -6 であることもわかります。これにより、負のスクラップ数が実現可能かどうかについて疑問が生じます。 |
| プロセスは別です。 基本的に 2 つのバーがあり、実際には 2 つの値だけを含むヒストグラムが表示されます。 |
| これらの縦棒グラフやヘッダー グラフを見ていると、縦棒パネルを見ることができます。 |
| たとえば、バッチ番号、部品番号、プロセスがすべて連続してコード化されていることは非常に簡単です。 JMP にデータをインポートするときに、JMP が数値を認識すると、これらの列は自動的に連続数値としてコード化されます。 したがって、これらは変更が必要になる可能性があるものです。 |
| データ自体を確認することもできます。 たとえば、湿度に注目する場合 (データを見るときはコンテキストが非常に重要です)、湿度は連続データであると考えられます。 |
| しかし、N/A となっているフィールドがいくつかあります。 |
| 英数字データがある場合、数値列にテキスト データがある場合、データを JMP に取り込むときに列は公称としてコード化されます。 したがって、これはすぐに修正が必要であることがわかりました。 |
| 他の列も見ることができます。 たとえば、サプライヤー、いくつかの値が欠落していることがわかります。 JMP にデータを取り込むとき、 |
| カテゴリデータのセルが空の場合、値が欠損していることがわかります。 データの入力方法に一貫性がないエントリがいくつかあることがわかります。 |
| そのため、データに関する潜在的な問題を解決するための重大な手がかりを得ることができました。 |
| すべての点に注目してください。 温度は連続変数であり、ドットが表示される場合は、値が欠損していることを示しています。 したがって、温度は私の分析にとって非常に重要なものですが、これは問題になる可能性があります。 |
| これの自然な拡張として、一度に 1 つの変数ずつデータの探索を開始します。 データを調べ始めるときに私がよく使うツールの 1 つは、列ビューアーです。 また、列ビューアは、選択した変数の数値概要を表示します。 |
| 値が欠損している場合、N 個の欠損列が存在することになります。 ここで、温度の 369 個の値のうち 265 個が欠落していることがわかります。これは、解析において温度が重要であると考える場合、これは重大なギャップです。 |
| 奇妙な値を持っているかどうかもわかります。 したがって、廃棄数の最小値と最大値、廃棄率などを見ると、負の値が得られます。 これが不可能な場合は、データまたはデータ収集システムに問題があることになります。 |
| 変数のコーディングミスも非常に簡単に見つかります。 したがって、たとえば、公称値としてコード化されるはずの設備とバッチ番号は、平均と標準偏差を報告していました。 |
| これについて考える良い方法は、平均バッチ番号、(部品番号が他の変数でした)、または部品番号を取得することが物理的に不可能な場合、これらを連続変数ではなく公称変数に変更する必要があるということです。 |
| データに慣れ始めたときに次に行くのはディストリビューションです。 |
| また、連続データがある場合、分布を使用すると、データの形状、中心化、広がりを理解できるだけでなく、異常な値があるかどうかも確認できます。 |
| カテゴリ データの場合は、レベルの数も確認できます。 たとえば、顧客番号です。 顧客番号が重要な変数または潜在的に重要な場合、 |
| 顧客数にはさまざまなレベルや値があります。 データを準備するとき、あまりデータが多くない顧客向けに、これらを 4 つまたは 5 つのバケットと別のカテゴリに結合したい場合があります。 |
| 湿度。 列に N/A があることに問題があることがわかります。 ヒストグラムの代わりに棒グラフが表示されます。 |
| サプライヤーのデータで何を調べていたのかを簡単に確認できます。 たとえば、Cox Inc と Cox, Anderson は 3 つの異なる方法で綴られ、Hersh は 3 つの異なる方法で綴られます。 |
| 速度については、約 60 から 140 まで盛り上がった分布があることに注意してください。ただし、一番下には 1 つまたは 2 つの値があることがわかります。 |
| それはかなりゼロに近く、これはおそらく...データ入力エラーである可能性がありますが、それは間違いなく調査したいものです。 |
| これを拡張して、データを一度に 2 つの変数で調べ始めます。 たとえば、グラフ ビルダーや散布図を使用します。 |
| また、変数を一度に 2 つずつ見るとパターンがわかり、複数の変数にまたがる異常なパターンをより簡単に見つけることができます。 |
| たとえば、廃棄率と廃棄数を見ると、いくつかのバンドがあることがわかります。 そして、このパターンを説明できる何かがデータテーブルにあるかもしれません。 |
| この場合、バンディングはさまざまなバッチ サイズに起因するため、この紫色のバンドはバッチ サイズ 5,000 の場所です。 |
| そして、バッチサイズが小さい場合よりも、バッチサイズが大きい場合のほうがスクラップになる可能性がはるかに高くなります。 したがって、それはある程度意味があるかもしれませんが、意味がわからないものもあります。 これら 2 つの値は負の範囲にあります。 |
| したがって、データを 2 次元で見ると、これらを確認するのは非常に簡単です。 |
| 列スイッチャーとデータ フィルターを使用すると、グラフに次元を追加できます。 |
| これは潜在的な分析にもつながるので、スクラップ率に関連する可能性のある重要な x が何かを理解することに興味があるかもしれません。 |
| 同時に、データ品質の問題または潜在的な問題にも注目します。 したがって、スクラップ率については、圧力とスクラップ率の間には正の関係があるように見えます。 |
| あまり深い関係があるようには見えません。 スクラップ率と温度の関係はほぼフラットなので、あまり大きな変化はありません。 |
| ただし、スピードに注意してください。 負の関係がありますが、上部にはこれら 2 つの値が表示されます。ヒストグラムで見た 1 つの値ですが、目立つように見える 2 番目の値があります。 |
| したがって、この 60 付近の値は単に外れ値である可能性もありますが、有効な点である可能性があります。 おそらく、この 0 付近の点が有効かどうか疑問に思うでしょう。 |
| そこで、データテーブルを調べました。 一度に 1 つの変数ごとにデータを調べました。 一度に 2 つの変数を調べてデータを調べましたが、これらすべてがデータ探索にぴったりと合致し、分析につながります。 |
| このコースまたはこの講演の範囲を超えている、使用できるさらに高度なツール (外れ値の探索、欠落値の探索など) があります。 |
| データの分析を開始すると、さらに問題が見つかる可能性があります。 たとえば、カテゴリカル変数のカテゴリが多数ある場合、 |
| 相互作用を回帰モデルに適合させようとすると、JMP は実際にはこれを行うことはできないという警告を表示します。 したがって、データの分析を開始すると、このプロセス全体が反復され、プロセス全体で潜在的な問題を特定することになります。 |
| 重要なのは、データを確認するときに発生した問題を書き留めておくことです。 そして、これらのいくつかは、 |
| 途中で修正されるため、値を非表示にしたり除外したり、データの形状を変更したり、再クリーンアップしたりすることができますが、新しいデータを収集する必要があると判断する場合もあります。 データそのものに対する信頼性を高めるために、DOE を実施するとよいでしょう。 |
| あなたがこの分析を繰り返すつもりであるか、または他の誰かがこの分析を繰り返したいと考えていることがわかっている場合は、 |
| 次に、再現性を確保するために、実行している手順を確実に記録する必要があります。 他の人が結果を再現することも、後で自分が分析を繰り返すこともできます。 ここで私はジョーダンに引き渡します、そしてジョーダンはそうするつもりです |
| 再現可能なデータキュレーションについて話します。 |
| ジョーダン・ヒラー | わかりました、ありがとう、ミア。 |
| こんにちは、私はジョーダン・ヒラーです。 私はJMPのシステムエンジニアです。 再現性についてもう少し掘り下げて話しましょう |
| データキュレーションのために。 |
| Mia はこのアイデアを非常にうまく紹介しましたが、もう少し詳しく説明しましょう。 ここでのアイデアは、簡単に再実行できるようにしたいということです。 |
| これは、分析用のデータを準備するために使用するすべてのキュレーション手順であり、これを行うことには 3 つの主な利点があると私は考えています。 1つ目は効率性です。 データが変更され、今後新しいデータに対してこれらのキュレーション ステップを再実行する必要がある場合は、 |
| すべてのポイント アンド クリック アクティビティを再度実行するよりも、ワンクリック スクリプトで一度実行する方がはるかに効率的です。 2 番目の利点は精度です。 ポイント アンド クリックはエラーが発生しやすいため、スクリプトにすることで正確な再現が保証されます。 |
| そして最後はドキュメントですが、これはおそらく過小評価されています。 スクリプトがある場合は、実行する手順が文書化されています。 |
| 取った。これはパンくずリストであり、後で必然的にこのプロジェクトを再訪して、このデータを準備するために何をしたのかを思い出さなければならないときに再訪できるようにするためのものです。 |
| このスクリプトがあると非常に助かります。 そこで今日はケーススタディを見ていきます。 これらの再現可能なデータ キュレーション スクリプトの 1 つを生成する方法を説明します。 |
| ポイントアンドクリックのみを使用します。 そして、それを可能にするテクノロジーは JMP 16 の新しいものです。 これは、強化されたログと、強化されたログに含まれるアクションの記録です。 |
| それでは、これから行うことは次のとおりです。通常どおり、ポイント アンド クリックによってデータ キュレーション アクティビティを実行します。 これを行うと、 |
| 必要なスクリプト、コンピュータ コード (JSL コード、JMP スクリプト言語の JSL と呼ばれます) は自動的にキャプチャされます。 |
| 新しい強化されたログにあります。 そして、ポイント アンド クリックによるキュレーションが完了したら、そのコードを取得して保存するだけです。 もう少し強化するために、いくつかの調整や変更を加えたい場合もありますが、その部分はオプションです。 |
| さて、これは使えるチートシートです。 これは最も一般的なデータ クリーニング アクティビティの一部です |
| また、拡張ログに JSL スクリプトを残す方法で、ブレッドクラムの痕跡を残す方法で JMP 16 でそれらを実行する方法も説明します。 つまり、行の操作、列の操作、 |
| データ テーブルを変更する方法、すべてのデータ クリーニング操作、およびポイント アンド クリックでそれを行う方法。 |
| したがって、これはデータ クリーニングのために実行する必要がある可能性のあるすべてのリストではなく、拡張ログにキャプチャされるすべてのリストでもありませんが、ここですぐに使える最も重要なものです。 |
| それでは、Mia が紹介したコンポーネント ファイルを使用してケース スタディに進み、拡張されたログを使用して JMP 16 でデータ キュレーション スクリプトを作成しましょう。 |
| ここでは JMP 16 を使用します。 これは JMP 16 の早期採用プログラムの最後のバージョンであるため、プレリリースであることに注意してください。 ただし、これは JMP 16 の実際のリリース バージョンと非常によく似たものになると確信しています。 |
| したがって、ログにアクセスするには、 |
| ここでお見せします。 JMP の以前のバージョンのログに慣れている場合、これは異なって見えます。 この2つのパネルに分かれており、 |
| 上部にメッセージ パネル、下部にコード パネルがあります。 ここでしばらく時間を過ごすつもりです。 これがどのようなものかを説明しますが、ファイルのインポートやこの列の削除などの簡単なアクティビティを実行する場合の簡単なプレビューだけを示しましょう。 |
| 私が行った 2 つの手順 (データのインポートと列の削除) が、このメッセージ パネルにリストされていることがわかります。 |
| コードは、再現可能なデータ キュレーション スクリプトに必要な JSL コードであり、この下部パネルにあります。 そして |
| これは非常に興味深いことですが、このコードを用意しておき、必要なときにいつでもポイントしてクリックするだけで取得できる機能は、JMP 16 の大きな利点です。 |
| したがって、JMP 16 では、この新しい強化されたログ ビューがデフォルトでオンになります。 古いバージョンのログ (単純なテキスト ログ) に戻りたい場合は、ここの JMP 設定セクションで行うことができます。 新しいのがあります |
| ログのセクションをクリックすると、必要に応じてログの古いテキスト ビューに戻すことができます。 JMP 16 をインストールするときのデフォルトは拡張ログです。これらの他の機能のいくつかについては、後ほどケーススタディで説明します。 |
| わかった、じゃあ片づけるよ |
| 赤い三角のところからとりあえずログ。 ログをクリアして、ケーススタディを始めましょう。 Mia が共有していたコンポーネント データをインポートしましょう。 この csv ファイルから始めます。 |
| それで |
| ドラッグするだけで最も簡単なインポートを実行します。 ああ、私は...そのバージョンをすでに開いていました。 申し訳ありませんが、まず古いバージョンを閉じさせてください |
| そしてもう一度ログをクリアします。 |
| さて、簡単なインポート |
| それを JMP ウィンドウにドラッグします。 これで、369 個のバッチを含むファイル、コンポーネント A ができました。次に、データ クリーニング作業を進めましょう。 電源を入れます |
| ヘッダーグラフ。 そして最初にわかるのは、施設列には FabTech という 1 つのエントリと 1 つの値しか含まれていないため、バリエーションがなく、興味深いものは何もないということです。 右クリックして列を削除するだけです。 |
| そして、これも拡張ログに記録されます。 |
| さて、他には何がありますか? 表の最後近くにあるこの廃棄率の列が私たちにとって非常に重要であり、表の前半を見てみたいと想像してみましょう。 4番目の位置に移動します |
| 列パネルでそれをつかみ、顧客番号の直後にドラッグします。 それでは行きます。 |
| Mia は、主に N/A が原因で、この湿度列がインポート時に誤って表示されていると述べました。 |
| 文字変数として入力される原因となっているアルファベット文字。 それで、それを修正しましょう。 ここを右クリックして列情報に移動します |
| データ型を文字から数値に変更し、モデリング タイプを公称値から連続値に変更します。 「OK」をクリックします。 ここでログをクリックしてみましょう。これで 4 つのステップがキャプチャされたことがわかります。次に進みます。 |
| さて、次は何ですか? 連続変数から公称変数に変更する必要がある変数がいくつかあります。 それらは、バッチ番号、部品番号、およびプロセスです。 したがって、これら 3 つを選択した状態で右クリックし、連続から公称に変更します。 |
| そしてそれらはすべて修正されました。 |
| ここでも、これら 3 つのステップがログに記録されていることがわかります。 |
| わかりました、他に何かありますか? 他に少し表面的なものとして、このコラム「圧力」があります。 エンジニアはその列名を PSI として表示することを好むため、その列を選択して PSI と入力するだけで変更します。 そこからタブを押して別の場所に移動します。 それもログに記録されます。 |
| サプライヤー。 ミアは、一貫性のないスペルがいくつかあることを教えてくれました。 おそらくここには値が多すぎます。 文字値を修正する必要があります。 列に不正で一貫性のない文字値がある場合は、再コード化ツールを検討してください。 |
| recode ツールは、これに対処する非常に効率的な方法です。 そこで、サプライヤーを右クリックして、再コーディングに進みます。 |
| そして、これらを適切にグループ化しましょう。 赤い三角形のオプションから始めます。 すべての値をタイトルケースに変換しましょう。 |
| 空白部分もトリミングして、不均一な間隔を修正しましょう。 すでにいくつかの問題が修正されています。 他のすべてを手動で修正しましょう。 アンダーソンズをグループ化します。 コックスをグループ化します。 |
| ハーシーをグループ化します。 Trutna と Worley は、単一のカテゴリーに関してはすでに正しいです。 そして最後の修正は、単に空白または欠落としてリストされているものです。それらには明示的に修正します。 |
| ここにラベルがありません。 |
| わかりました。[再コード化] をクリックすると、 |
| これらの修正をサプライヤー 2 という新しい列に追加しました。 |
| これは、1、2、3、4、5、6 のカテゴリが修正され、折りたたまれているだけです。 |
| 良い。 |
| よし、計算してみよう。 ここでは、バッチサイズと廃棄数を使用して収量を計算します。 |
| 右。 はい、これは少し冗長であることは承知しています。 すでにスクラップ率があり、歩留まりは 1 からスクラップ率を引いたものですが、議論のために次のように実行します。 |
| 計算。 そこで、数値が廃棄された直後にその収益列を挿入したいので、廃棄された数値を強調表示してから、列メニューに移動し、新しい列を選択します。 |
| これを収量と呼ぶことにします。 |
| そして、選択した列の後ろ、番号が破棄された後に新しい列を挿入し、それに収量を計算する式を与えましょう。 |
| 優秀なユニットの数が必要です。 それはバッチサイズから廃棄される数を引いたものになります。 |
| これが良好なユニットの数であり、その全体を次の値で割ります。 |
| バッチサイズ。 |
| 良品の数をバッチサイズで割ったものが収率の計算です。 |
| そして「OK」をクリックします。 |
| そこに私たちの新しいものがあります |
| 収量欄。 スクラップ率が 1 マイナスであることがわかります。 それは...それは良いことです。ここでは、100% を超える利回りがあるという事実は無視しましょう。 |
| さて、ほぼ完了です。 さらにいくつかの変更があります。 プロセスが 2 つあることに気づきましたが、今のところ、プロセス 1 とプロセス 2 というラベルが付けられています。 |
| それはあまり説明的ではなく、あまり役に立ちません。 もっとわかりやすいラベルを付けてみましょう。 プロセス 1、ここでは生産プロセスと呼びます。プロセス 2 を実験的と呼びます。 したがって、再コーディングではなく、値ラベルを使用してこれを行います。 コラム情報に入ります |
| そして、値ラベルを 1 と 2 に割り当てます。 |
| この列の 1 つは生産を表します。 |
| それを付け加えてください。 |
| そして 2 つは実験を表します。 |
| それを付け加えてください。 |
| 「OK」をクリックします。 良い。 ヘッダー グラフには 1 と 2 が示されていますが、ここでのデータ テーブルでは実稼働および実験用です。 |
| さて、スクリプトを保存する前に、最後のステップをもう 1 つ行います。 議論のために、私はデータだけに興味があるとしましょう...真空がオフのときにのみ分析を進めたいと考えています。 |
| そうですね。データをサブセット化し、バキュームがオフになっている行のみを含む新しいデータ テーブルを作成します。 これを行うには、バキュームがオフになっているこれらのセルの 1 つを右クリックします。 |
| 一致するセルを選択します。 |
| これにより、バキュームがオフになっている 313 行が選択されます。 次に、テーブルのサブセットに進みます。 |
| 新しいデータテーブルを作成します。これに vac_off という名前を付けます。 |
| 「OK」をクリックします。 |
| わかりました。これが、バキュームがオフになっているデータのみを示す 313 行の新しいデータ テーブルです。 |
| それで終わりです。 すべてのデータのキュレーションが完了したので、ログに戻って再確認し、保有しているデータについてもう少し詳しく見てみましょう。 |
| さて、これらすべてのステップと、私が行うつもりはなかったいくつかのステップがここのログに記録されました。 |
| ここを見てください...すべての行が私たちが実行するステップの 1 つです。 |
| ある時点で行選択をクリアしたなど、無関係なものもいくつかあります。 本当に必要はありませんでした...その部分をスクリプトに含める必要はありませんでした。 |
| 選択した行をクリアするので、それを削除しましょう。 それを右クリックしてその項目をクリアして削除します。 それは良い。 |
| さて、メッセージはここに、JSL コードはここにあります。 その起源と結果に注目していただきたいと思います。 これはなかなか素敵ですね。 |
| ステップを実行するたび、ポイント アンド クリックでアクションを実行するたびに、そのアクションを実行する何かがあり、その結果として何かが生じます。 それが起源であり結果です。 それで、例えば施設の欄を削除すると……。 |
| まあ、これは悪い例かもしれません...代わりに、湿度の列情報を変更することを選択しましょう。 原点、僕らがやったこと |
| これはコンポーネント A テーブルであり、ここではデータ テーブルとしてリストされていることがわかります。 その上にカーソルを置くと、「コンポーネント A を最前面に表示」と表示されるので、それをクリックすると、はい、「コンポーネント A」テーブルが表示されます。 非常に素晴らしい。 |
| その結果が、湿度コラムに対して行った結果です。 湿度を変えてみました。 データ型を数値型、モデリング型を連続型に変更しました。 ここを見てください。 |
| ここをクリックして湿度の列に移動すると、それが強調表示され、選択されます。 JMP は湿度カラムを選択します。 |
| どこでも緑ですが、この最後の結果は青になります。 これは、さまざまなデータ テーブルでアクティビティを追跡するのに役立ちます。 これらのアクティビティはすべて、コンポーネント A データ テーブルで実行しました。 |
| 最後のアクティビティでは、コンポーネント A データ テーブルのサブセットを実行しました。その結果、vac_off という新しいデータ テーブルが作成されました。 したがって、vac_off は青色になります。 そうです。これらの色を使用して、物事を追跡できるようにすることができます。 |
| さて、ここでログでお見せしたい最後の機能は...それです |
| 非常に長い一連のステップがあり、その 1 つだけを見つける必要がある場合に、このフィルター ボックスを使用すると便利です。 サブセットを見つけたいとします。 そこにそれがある。 サブセット データ テーブルが見つかったので、必要なコードに直接アクセスできます。 |
| さて、これで...必要なものはこれですべてです。 データキュレーションの手順がキャプチャされました。 再現可能なデータ キュレーション スクリプトを作成するために必要なのは、赤い三角形に移動し、スクリプトを新しいスクリプト ウィンドウに保存することだけです。 |
| インポートステップ、列削除ステップ、スクラップ率の移動ステップ。 これらの手順はすべてスクリプト内にあります。 |
| スクリプトを読みやすくするための構文の色分けが用意されています。 これらの有益なコメントはすべて、各ステップで何を行ったかを正確に示しています。 |
| そうです、これですべてです。 必要なのはこれだけなので、保存しておきます。 これをインポートおよびクリーンとしてデスクトップに保存します...これをインポートおよびキュレートコンポーネントと呼びましょう。 |
| そうです、これが再現可能なデータ キュレーション スクリプトです。 したがって、JMP ホーム ウィンドウに戻って、新しいスクリプト以外のすべてを閉じた場合、 |
| これらのデータ キュレーション ステップを再実行する必要がある場合は、次のようにします。 スクリプト ファイルを開いたので、[スクリプトの実行] ボタンをクリックして実行できます。 データを開き、すべてのクリーニングを実行し、サブセット化を実行して、313 行の新しいデータ ファイルを作成します。 |
| これを新しいデータで再生する必要があると想像してみましょう。 |
| コンポーネント ファイルの別のバージョンがあります。 それをコンポーネントBといいます。 さらに 50 行あるため、369 行ではなく 419 行になります。 さらに 50 バッチのプロセスを実行し、より多くのデータが得られたと想像してください。 |
| したがって、これはコンポーネント B と呼ばれるもので、このスクリプトをコンポーネント B で実行したいと考えています。 ただし、スクリプト全体でコンポーネント A を複数回呼び出していることがわかります。 したがって、コンポーネント A を検索して置換し、コンポーネント B に変更するだけです。それでは、次に進みます。 編集。 |
| 検索。 |
| コンポーネント A を見つけて、コンポーネント B に置き換えます。すべて置き換えます。 15 件が置き換えられました。 |
| こことここで見ることができます。 |
| ここで、スクリプトを再実行するだけで、新しいバージョンのデータが作成されます。 より多くの行があることがわかりますが、実際にはオフになっています。 以前は 313 でしたが、現在は 358 です。 |
| 新しいデータに対して実行できる、再現可能なデータ キュレーション スクリプトです。 |
| さて、ここでもう一度そのチートシートを示します。 これは講演とともに保存される資料に含まれているので、ここにアクセスして見つけることができます。 これは、ポイント アンド クリックでデータ キュレーションを進め、再生可能で再現可能な優れたデータ キュレーション スクリプトを作成する方法を示しています。 |
| 私たちが作成したスクリプトでは、コーディングはまったく必要ありませんでしたが、いくつかのヒント、つまり使用できる 4 つのヒントを紹介します。 |
| スクリプトを少しだけ強化します。 最初のヒントは、スクリプトの先頭にこの行を挿入することです。 すべてのスクリプト作成にこれを行うのは良いことです。 ここにデフォルトの行名を挿入するだけです。 |
| これは、スクリプトが他のスクリプトと相互作用するのを防ぐためです。 これは名前空間の衝突と呼ばれるものですが、それが何をするのかを実際に理解する必要はなく、ただ実行してみてください。 それは良いことです。 良いプログラミングの練習になります。 |
| 2 番目のヒントは、JSL 式の間にセミコロンがあることを確認することです。 |
| 拡張ログはこれを自動的に実行します。 各ステップの間に必要なセミコロンを配置します。 ただし、自分で変更を行う場合は、セミコロンが適切に配置されていることを確認する必要があります。 そこで賢明な方に一言だけ。 |
| コメントを追加します。 |
| コメントは、プログラムにメモを残し、プログラムを台無しにしないように残すための方法ですよね。 それは方法です |
| JSL インタープリターによって解釈されないものをプログラム内に残します。 そして、強化されたログにはメモが残されています...強化されたログにはアクションの記録が残されていますが、必要に応じて修正したり、追加したりすることができます。 そこで、コメントに関する主なポイントを紹介します。 |
| 一般的な形式は 2 つのスラッシュであり、スラッシュに続くものはすべてコメントになります。 したがって、これを行の先頭でも行の末尾でも行うことができます。 したがって、インタプリタはこの X = 9 JSL 式を実行しますが、スラッシュ以降はすべて無視されます。 |
| また、長いコメントがある場合は、先頭に /* 、末尾に */ という形式を使用することもできます。 それはコメントを囲みます。 したがって、コメントは自分用のメモを残すのに便利ですが、JSL スクリプトのデバッグにも役立ちます。 |
| コード行を削除して実行されないようにしたい場合は、先頭に 2 つのスラッシュを付けるだけで済みます。コードのより大きな部分に対してそれを行いたい場合は、この形式を使用できます。 コメントの使い方について知っておくと良いでしょう。 |
| ここでお伝えする最後のヒントは、データ テーブル参照を一般化することです。 そのスクリプトを新しいファイル名「コンポーネント B」で実行するために、どのように検索して置換する必要があったのか覚えていますか? |
| スクリプト内でデータ テーブル内の 15 個のインスタンスを変更する必要がありました。 15 回ではなく、一度だけ変更すればよかったと思いませんか? したがって、スクリプトをより堅牢にすることができます |
| データテーブル参照を一般化することによって。 名前を使用する代わりに、JSL 変数を使用してテーブル名を保持します。 これが私が話していることです。 例を示します。 |
| 左側は、拡張ログに記録されたアクションによって生成されたコードの一部です。 |
| Big Class データテーブルを開きます。 年齢列を操作し、それを連続モデリング タイプに変更してから、新しい計算列を作成しています。 |
| オープン時に、年齢列の変更を実行するためにそれを使用し、ここでもそれを使用します。 |
| 非常にシンプルで、これをより堅牢かつ一般化するために何をする必要があるかということです。 |
| 3 つの変更を加える必要があります。 |
| ここでの最初の変更では、名前を割り当てています。 私はBCを選択しました。好きなものを選ぶことができます。 DTはよく見かけますね。 |
| したがって、BC は、スクリプトの残りの部分でビッグ クラス データ テーブルを参照する名前です。 それで、年齢を変えたいときは |
| age は、BC データ テーブルとそのデータ テーブルの age 列を意味します。 |
| ここでは、Big Class データ テーブルにメッセージを送信しています。これが二重矢印構文の意味です。 つまり、私たちはそれを一般化しているだけです、そのメッセージを送信するために新しい名前を使用するように一般化しています。 |
| データテーブルに。 ここで、Big Class 以外の名前が付けられた新しいデータ テーブルでこのスクリプトを実行する必要がある場合、必要な変更はここだけです。 スクリプト内の 1 か所だけを変更する必要があります。 検索や置換を行う必要はありません。 |
| さて、これら 4 つのヒントの後、キュレーション スクリプトを次のレベルに進める準備ができている場合は、次のステップをいくつか示します。 ファイルピッカーを追加することもできます。 コーディングはあまり必要ありません |
| 誰かがこのスクリプトを実行するときに、スクリプトを手動で編集する代わりに、実行したいファイルに移動するだけで済むように変更します。 |
| それはいいアイデアですね。 組織内の他のユーザーにスクリプトを配布する場合は、スクリプトを JMP アドインにラップすることができます。これにより、ユーザーは JMP 内のメニューからスクリプトを選択するだけでスクリプトを実行できるようになります。 |
| 本当に便利です。 最後に、ネットワーク上のどこかに保持しているマスター JMP データ テーブルを更新するために、このキュレーション スクリプトをスケジュールに従って実行する必要がある場合は、Windows のタスク スケジューラまたは Mac OS のオートメータを使用して実行できます。それはスケジュール上です。 |
| 要約すると、Mia は、データを探索し、問題を特定するために反復処理を行うことによってデータ キュレーションを行う方法について話しました。 |
| これらのステップを自動化すると、再現性、つまり効率、正確さ、作業の文書化といったメリットが得られます。 |
| JMP 16 でこれを行うには、通常どおりポイント アンド クリックするだけで、データ キュレーション ステップが拡張ログに発生するアクション記録によってキャプチャされます。 |
| 最後に、拡張ログからその JSL コードをエクスポートして変更し、再現可能なデータ キュレーション スクリプトを作成できます。 これで私たちの話は終わりです。 貴重なお時間を割いていただき、誠にありがとうございました。 |