あなたがプログラマーでなければ、予測分析を使用してプロセス(工程)の問題の原因を特定するのはとても無理だと思えるかもしれません。
でも、それほど難しくないことをここでお見せします!この2番目のブログでは、MinitabでのRおよびPython統合を利用してプログラミング言語をより簡単に使用する方法をご紹介します。Pythonベースの可視化の作成に関する最初のブログもお読みください。
今回のブログでは、当社独自の予測分析モジュールの結果を補完し、それと比較しながら、R言語を使ってMinitabでニューラルネットワークを構築する方法についてご紹介します。
R言語とは?
Rはオープンソースのプログラミング言語です。これを使用して、データ変換、モデル化、視覚化など、データ関連のさまざまなタスクを実行できます。Rには、データ用および統計分析用のライブラリからなるカタログと、機械学習アルゴリズムがあります。もっとも、どれほど効果的にRを使えるかは、ユーザーが構文をどれほど理解できるかに依存します。
なぜRをMinitabと統合するか
Minitab Statistical Softwareは、欠陥を減らそうとしている専門家にとって頼りになるツールです。統計分析と予測分析の両方が、使いやすいインターフェイスで提供されています。
Minitab Statistical SoftwareとR言語の統合により、極めて強力なRスクリプトを利用できます。R言語のプログラマーでない場合にしばしば面倒になるデプロイ手順も、これで簡単になります。統合により、より多くの人がRスクリプトを利用し、メリットを得られるようになります。
Minitab Statistical Softwareのデスクトップアプリケーションには、mtbrと呼ばれるR統合用の特注パッケージがあります。https://support.minitab.com/en-us/minitab/21/integration/でご覧ください。
MinitabでR言語を使用してニューラルネットワークを構築する方法
シナリオ:
スーザンは部品メーカーの品質エンジニアです。最近、ある製品で品質の問題が発生した結果、不合格バッチが増加してコストと受注残も増しています。
その課題:
スーザンの課題は、工程の不良率を減らす方法を見つけることです。幸い、製造の各パラメータのデータと、各バッチの成否のデータを持っています。
スーザンは、予測分析を使用して、以下を理解しようとしています。
- 不良バッチの確率に影響を与える生産パラメータはどれか?
- バッチが不良になる確率を最小限に抑えるには、これらのパラメータをどんな水準に維持する必要があるのか?
さまざまな予測分析モデルを試して、手持ちのデータに最適なモデルを見つけたいと考えています。
スーザンはMinitab Statistical Softwareにある優れた回帰モデルとCART®を利用でき、予測分析アドオンで提供されるRandom Forests®とTreeNet®モデルも利用できます。
変化球
スーザン、焦らないで!スーザンの上司はニューラルネットワークのことを聞き、試してみたいと思っています。これはMinitabには含まれていませんが、幸いなことにRにはニューラルネットワークを構築する能力があります。
スーザンは経験豊かなR使用者ではないものの、Minitab のR統合の中でRスクリプトを実行できます。このメリットは多数あります。
MinitabのR統合により、すべてのデータと出力がMinitabに保持されるので、手順全体が簡単になります。
スーザンは、2つの異なるプログラムで個別に分析を実行するのではなく、Minitabですべてを実行して、異なるモデルの性能と結果を簡単に比較できます。
そこから、Minitabのすべての出力(表や図など)をPowerPointにエクスポートすることで、上司向けのプレゼンテーションを簡単にまとめることができます。
チュートリアル:分析の実行
スーザンは、Minitabの予測分析とR統合を使用してどのように分析を行うのでしょうか?
まず、データをMinitabに読み込みます。スーザンの会社はMinitab Connectを使用してさまざまなデータソースから生産データを自動収集していますから、このデータをMinitabに簡単に読み込むことができます。
データがMinitabに読み込まれ、始める準備が整いました!では、データを見てみましょう。
考え方としては、C1~C8列のデータを使用して、バッチが不合格(C9欠陥/不良列 = 1)になるかどうかを理解します。スーザンはMinitabで利用可能なモデルをいくつか使用します。
この目的で、スーザンはMinitab®の自動化機械学習を選択しました。これにより、Minitabのすべてのモデルがデータセットに対して使用され、最適な性能を発揮するモデルが選択されるので、多くの時間を節約できます。
Minitabで利用できる最適なモデルは、Random ForestsモデルとTreeNetモデルです。TreeNetモデルの誤分類率は0.8%(0.008)と最高です。これは、バッチ成否の予測を間違う確率が0.8%ということです。スーザンは、Random Forestsよりも有用で、より有意義な出力を提供するTreeNetモデルを選択します。
次に、MinitabのR統合を使用してRでニューラルネットワークを適合させます。これがスクリプトのサンプルです。
出力の一部として、ニューラルネットワークをこのように視覚化できます。
左側の入力層(ノードの最初の行)は、8つの入力変数のそれぞれから情報を受け取ります。各線の上にはシナプスの重みがあり、ネットワークの次の層に影響を与えます。2つのニューロンで構成される隠れ層が1つあり、青い円は偏りを表します。これは、標準的な回帰モデルの切片に対応します。この隠れ層で魔法が起きるのです!右側の出力ニューロンは、Defects(欠陥)変数を表します。
スクリプトはRスクリプト(.R)として保存されます。Minitab内で実行するには、コマンドRSCRIPTの後にスクリプト名を引用符で囲んで使用します。
モデルの誤分類誤差は7%で、TreeNetモデルほど正確ではありません。そのため、スーザンはTreeNetモデルを使用することにしました。
次に、TreeNetの出力を使用して、どのパラメータが不良バッチの原因に特に影響を与えているかを理解します。Minitabモデルの長所の1つは、多くの補足情報(下のグラフなど)が標準で提供され、モデルが何を意味するかを理解しやすいことです。
O2、生産率、腐食性、MgSO4は、不良率に大きな影響を与えるようです。改善するには、スーザンはこれらのパラメータがどのように影響するかを理解する必要があります。これに役立つのがTreeNetの出力です。
さて、バッチが不良になる確率を最小限に抑えるには、これらのパラメータをどんな水準に管理する必要があるのでしょうか?
グラフの値が高いほど、不良バッチの確率は下がります。このプロットでわかることは、以下のとおりです。
- O2を20.5~22%に維持する必要がある
- 生産率が低いほど、不良率が低くなる
- 腐食性を60~70%に維持する必要がある
- MgSO4値が6%を超えると、バッチが不良になる確率が低くなる
これに基づいて、スーザンは影響の大きい各パラメータの管理計画を実装し、これらが不良バッチの確率を低く保つ範囲に納まるように管理します。
そして不良率が減り、誰もが大喜びし、スーザンは昇進します 🤩👌
この分析をお試しになりませんか?
RとMinitabの統合に関するサポートページへのリンクはこちらです。
以下の動画で、インストール手順、MinitabでRを試す方法、MinitabでのニューラルネットRスクリプトの実行についてご覧ください。