JMP 18 Standardの再帰分析こんにちは、みんな
コミュニティの新メンバーです。データの再帰分析を行うというタスクを割り当てられました。JMPを使ったことも、再帰分析をやったこともないので、きっと馬鹿げた質問も出てくると思います。
我々が持っているデータはロボットの修理に関するものです。ロボットの修理イベントパターンを確認したいのですが、再発分析を使用するように言われました(理由は分かりません)。
ロボットは約15,000台あります。「bot_id」、「accumulated_transactions」、「site」、「cost」、「bot_type」、「component」の各列を使用しました。「site」には、ロボットが稼働する様々な場所が含まれます。「cost」は0または1の値です(1は修理、0はボットの最後のイベントを意味します)。「component」は修理中の様々な部品です。sites、bot_type、部品がmcfと修理パターンに与える影響を確認したいのです。私は主に対数線形NHPPモデルを使用しています。
データについて懸念があります。約1000台の貸出ボットが全拠点を巡回しています。分析で「グループ化」の役割として「サイト」列を選択し、各拠点のMCFを確認した場合、結果に影響はありますか?私の理解では、各拠点は貸出ボットを独立したボットとして扱うようです。「サイト」で「グループ化」する場合、1000台程度の貸出ボットを除外した方が良いでしょうか?
受け取ったデータでは、各サイトと各ボットの最後のイベントで「コスト」値が0になっています。つまり、ボットが2つのサイトで動作した場合、このボットには2つの0値があり、それぞれがサイトごとの最後のイベントになります。これは、JMPがMCF値を計算するときにアクティブなボットをカウントする方法に影響しますか?私の理解では、コスト値が0はボットの終了を意味するはずです。1つのボットに複数の0値がある場合、どのように処理されますか?
他にも質問はあるのですが、長くなりすぎる前にここでやめておきます。
ご協力ありがとうございます。
基本的なデータ分析とモデリングJMP 18 Standardにおける再帰分析について「サイト」変数は、統計用語では「時間変動共変量」または「時間変動ストレス」と呼ばれるものだと思います。時間変動共変量を回帰モデルに含める場合は、時間変動共変量のいずれかの水準が変化するたびに行を追加する必要があります。その際、コスト列の値は0に設定されます。例えば、ID1のロボットがそれぞれ時刻1、4、5にAからB、BからC、Cからどこかに移動した場合、以下の表を準備する必要があります。
bot_idサイトの時間コスト
1 A 1 0
1 B 4 0
1 C 5 0
「構成要素」変数は、統計用語で言うところの「競合リスク」のようなもののようです。JMPの回帰分析では競合リスクはサポートされていません。以下の分析のみ可能です。
(1)あらゆる種類の障害が発生した場合にコストを1に設定する。
(2)特定の障害が発生したときのみcost=1に設定する。
添付のデータテーブルは、ロボット1台のみの簡単な例を示しています。コストは上記の方法1)で設定されています。添付のデータテーブルにあるテーブルスクリプトを実行してください。プロファイラーは、ロボットが常に特定のサイトでのみ動作する場合(常にsite="A"でのみ動作する場合など)の推定累積故障数を表示します。
大変申し訳ございませんが、あなたの状況を十分に理解できておりません。しかし、上記のコメントがあなたの分析に少しでもお役に立てれば幸いです。
JMP 18 Standardにおける再帰分析について迅速なご返信ありがとうございます。サイト変更ごとに費用を0円と記載されている点につきましては、ご理解いただけました。詳細をもう少しご説明いたします。
現時点で懸念されているのは、JMPが0コストをどのように処理するかです。JMPは、ボットが初期段階で0コストの場合、本来よりも早くボットを除外してしまうようです。JMPが有効と判断するボットの数が少なくなると、mcf値は増加します。以下は私が見ているデータです。上はボット1つにつき0コストが1つあるデータです。下はボット1つにつき0コストが複数あるデータ(サイトごとにボット1つ)です。下側のmcf値が大きいのは、JMPが0コストのボットを早期に除外しすぎているためです。これは私の理解ですが、間違っているかもしれません。


ChatGPTにも同じ質問をしたところ、以下の回答をいただきました。前回のイベントでは、ボット1体につきコストを0にするのが良いと思いました。ご意見をお聞かせください。
オプションA -シンプルかつ堅牢(最初に推奨)
イベントごとに1行保持する(コスト=1) with the Site value active at that event, そしてボットごとにコスト=0の最後の行が1つ at the bot’s last observed transaction.
This approach uses the event rows to carry the time-varying Site value. It’s simple, avoids multiple right-censor rows per bot, and JMP will correctly use the Site value that was in effect at each event.
使用する場合:最も一般的。イベント時にのみ共変量が必要な場合には十分です (通常はこれに該当します)。
利点:簡単で、 JMP が複数の 0 を誤って解釈することを回避します。
短所:共変量が変化したイベントのない間隔を明示的にモデル化しません。ただし、これは NHPP 推定ではほとんど必要ありません。
データの形状
各行は次のいずれかです。
-
イベント行: BotID, AccumulatedTransactions (event time), Cost = 1, Site = site_at_event
-
最終検閲行(ボットごとに 1 つ): BotID, AccumulatedTransactions (last observed), Cost = 0, Site =
<LAST site="" or="" na=""></LAST>
JMPがこれをどのように利用するか
-
When you add Site スケール/形状に影響を与える列として, JMP uses the Site value on each event row to estimate how Site shifts the log-rate and/or shape. Because each event row carries the site at that time, you have effectively encoded a time-varying covariate.
JMP 18 Standardにおける再帰分析についてご返信ありがとうございます。
この返信では、Cost=0 の行がどのような場合に必要になるかを説明したいと思います。
Cost=0の行が必要になる状況は2つあります。1つは、各ロボットを最後に観測した時刻を表す場合です。もう1つは、時間とともに変化する共変量の変化を表す場合です。
ロボットが「t」まで観測し、最後の観測時刻「t」で故障しなかった場合、コストが0の最後の行を含める必要があります。この状況は統計用語で「右打ち切り」と呼ばれます。リカレント解析では、各ロボットが死亡する可能性があるため、ロボットの「真の死」または「完全な死」を観測できないため、通常、右打ち切りが行われます。例えば、ID001のロボットを最後に観測した時刻が100で、t=100の時点でロボットが故障しなかった場合、次の行を含める必要があります。
ID t コスト
001……
001……
001 100 0
この行は、このロボットがいつまで生きていたかを JMP に通知するために必要です。
時刻「t」まで観測し、時刻「t」でロボットが故障した場合、コストが0の最後の行を含める必要はありません。代わりに、コストが1の最後の行を含める必要があります。例えば、ID001のロボットを最後に観測した時刻が100で、t=100でロボットが故障した場合、コストが1の次の行を含める必要があります。
ID t コスト
001 ... ...
001 ... ...
001 100 1
共変量の変化を表すために、コストが0の行も必要です。例えば、共変量Xが時刻50にAからBに変化した場合、コストが0の次の行が必要になります。
ID t × コスト
001…………
001 50 A 0
001 ... B ...
この行は、共変量の変化をJMPに通知するために必要です。前回の回答でも書いたように、この種の共変量は「時間変動共変量」と呼ばれます。
MCFプロットは、Cost=0の最後の観測行を含めるかどうかによって影響を受けます。MCFプロットは、時間変動共変量のCost=0の行を含めるかどうかには影響を受けません。ただし、Fit Modelの結果は、Cost=0の行の種類に関係なく影響を受けます。
この返信はご期待どおりでしょうか?もしそうでない場合は、再度ご返信をお願いいたします。
JMP 18 Standardにおける再帰分析について@Caozheng0115さん
最初の返信の訂正
「構成要素」変数は、統計用語で言うところの「競合リスク」のようなもののようです。JMPの回帰分析では競合リスクはサポートされていません。以下の分析のみ可能です。
(1)あらゆる種類の障害が発生した場合にコストを1に設定する。
(2)特定の障害が発生したときのみcost=1に設定する。
起動ダイアログの「原因」列を使用すると、(2)の分析をRecurrence Analysisプラットフォームで実行できます。添付のデータ表に例を示します。
JMP 18 Standardにおける再帰分析について
こんにちは。迅速なご返信ありがとうございます。オプション1ではなくオプション2を選択する理由を説明していただけますか?サンプルデータでは、どちらの方法(コストの列と2つの原因に対する個別のコスト)も機能し、同じ結果が生成されているようです。図1に1つの原因を表示し、図2にもう1つの原因を表示する場合、結果の一貫性を保つために、異なる原因のコストに新しい列を作成する必要があると思います。これがあなたの提案ですか?グループ化についても同様の状況はどうでしょうか?例えば、サイトごとにグループ化する場合、複数のサイトを含むデータから生成された結果と同じ、単一のサイトの結果と数値を表示する方法はありますか?
お送りいただいたサンプルデータを確認しました。最初の保存済み分析では、モードを原因、サイトをスケール効果として使用しているようです。使用されたモデルは比例NHPPです。このモデルを選択した理由はありますか?私の理解では、比例NHPPモデルは、全ての原因に対して共通のベースラインMCF曲線を仮定し、乗法係数でスケールアップまたはスケールダウンするものとされています。私のケースでは、異なる原因効果が比例するとは想定されていなかったため、対数線形モデルを使用しました。このモデルを使用すべきかどうか教えてください。
生成されたフィット曲線の意味が分かりません。赤いフィット曲線はFail 1のものですかね?フィット曲線は赤いMCF曲線からかなり離れています。なぜでしょうか?青いフィット曲線が2つあります。どちらがFail 2のフィット曲線でしょうか?なぜ2つのフィット曲線が生成されているのでしょうか?緑のフィット曲線とは何でしょうか?
あるいは、フィッティング曲線が異なる部位のものである可能性があります。しかし、赤い線の方では曲線が2つではなく1つしかありません。なぜそうなったのか理解できません。
ありがとう。

JMP 18 Standardにおける再帰分析について本当にありがとうございます。とても分かりやすく、本当に助かりました。
これについてもう一つ質問があります。サイトの効果を比較する場合、サイトをグループ化の役割、スケール効果、それとも形状効果のどれに分類すべきでしょうか?各サイトのMCF、各サイトの近似曲線、そしてパラメータ推定値( γとδ)も表示したいのですが。
2つの選択肢が見えました:
1. サイトをグループ化に含めず、スケールエフェクターと形状エフェクターとして入力します。これにより、異なるサイト間でモデル(対数線形NHPP)のパラメータを比較できます。ただし、この方法では、全体で1つのMCF曲線しか生成されません。
2. サイトをグループ化に含め、スケールエフェクターとシェイプエフェクターも入力します(できるかどうかは分かりません)。この方法では、サイトごとにMCF、フィッティングカーブ、そしてサイト間の効果を比較するためのモデルパラメータが生成されます。この方法の問題点は、グループ化によってサイトごとに個別のモデルが生成されてしまうことです(私の考えが間違っている可能性があります)。これは、異なるモデルを用いてサイトの効果を比較するのには適していません。
どうすればいいでしょうか。オプション2で個別の曲線を生成し、オプション1でパラメータ推定に結果テーブルを使用するべきでしょうか?そうすると、表示される曲線はパラメータテーブルと完全に一致しなくなります。
どうもありがとう。
JMP 18 Standardにおける再帰分析についてご返信ありがとうございます。
あなたの状況を誤解しているかもしれませんが、選択肢(1)が正しいと思います。
私の理解する限りでは、サイト変数は時間によって変化する共変量だと思います。
その場合は、サイト変数をグループ化列として設定しないでください。
以下の表のようにSITEを設定すると、...
IDサイト時間
1 1 15
1 2 31
1 1 49
1 2 57
1 1 102
...すると、JMP は ID が 2 つあることを認識します。
IDサイト時間
1-1 1 15
2-1 2 31
1-1 1 49
2-1 2 57
1-1 1 102
したがって、(私が状況を誤解しておらず、サイト変数が時間によって変化する共変量である場合)、グループ化列にサイト変数を含めるべきではありません。
追加の注意事項が1つあります。
モデルを当てはめる前に最初に表示されるMCFプロットのノンパラメトリック推定値は、時間変動共変量を考慮していません。また、モデルによって推定された曲線は、すべての時間変動共変量が各サイト値に固定されている場合の曲線を示しています。そのため、モデルに時間変動共変量が含まれている場合、MCFプロットを使用してモデルの適合度を確認することはできません。
以下のスクリプトは簡単な例です。このシミュレーションデータでは、スケール(シータ)と形状(ベータ)のパラメータが最初の30時点以降に変化しています。サイト変数がその変化を示しており、このサイトは時間変動変数です。簡略化のため、べき乗非同次ポアソン過程を使用しています。
時間によって変化する共変量「サイト」はグループ化列に含めるべきではありません。
Names Default To Here(1);
Random Reset(111111);
n = 30;
nid = 100;
data = J(2*n*nid, 4, .);
b1 = 3;
theta1 = 5;
b2 = 8;
theta2 = 8;
k = 0;
For( id = 1, id <= nid, id++,
x = 0;
For( i = 1, i <= n - 1, i++,
x = (x ^ b1 + Random Exp() * theta1 ^ b1) ^ (1 / b1);
k++;
data[k, 1] = id;
data[k, 2] = 1;
data[k, 3] = x;
data[k, 4] = 1;
);
k++;
data[k, 1] = id;
data[k, 2] = 1;
data[k, 3] = x;
data[k, 4] = 0;
For( i = 1, i <= n - 1, i++,
x = (x ^ b2 + Random Exp() * theta2 ^ b2) ^ (1 / b2);
k++;
data[k, 1] = id;
data[k, 2] = 2;
data[k, 3] = x;
data[k, 4] = 1;
);
k++;
data[k, 1] = id;
data[k, 2] = 2;
data[k, 3] = x;
data[k, 4] = 0;
);
dt = As Table(data,<
<COLUMN names=""></COLUMN>
<DIV>
</DIV>
<DIV>この単純なおもちゃの例では、真のモデルが当てはめられています。つまり、モデルの適合度は非常に良好です。しかし、MCFプロットでは適合度を示すことができません。</DIV> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yusuke_ono_0-1754960081412.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_0-1754960081412.png" style="width: 390px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_0-1754960081412.png" style="width: 390px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_0-1754960081412.png" style="width: 390px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_0-1754960081412.png" style="width: 390px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_0-1754960081412.png" style="width: 390px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_0-1754960081412.png" style="width: 390px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_0-1754960081412.png" style="width: 390px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_0-1754960081412.png" style="width: 390px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_0-1754960081412.png" style="width: 390px;"><span class="lia-inline-image-display-wrapper" image-alt="yusuke_ono_0-1754960081412.png" style="width: 390px;"><img src="https://us.v-cdn.net/6038925/uploads/images/80136i9723A629E7469671/yusuke_ono_0-1754960081412.png" role="button" title="yusuke_ono_0-1754960081412.png" alt="yusuke_ono_0-1754960081412.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></P> <BR />
<DIV>つまり、グループ化列に時間とともに変化する共変量を含めないでください。また、モデルに時間とともに変化する共変量がある場合は、MCF プロットを使用して適合度をチェックしないでください。</DIV>
<DIV>
</DIV> <BR />
JMP 18 Standardにおける再帰分析についてこんにちは、
ご返信ありがとうございます。本当に助かりました。JMPコミュニティからのメールを見逃してしまい、返信を確認するようにリマインダーを送っていただいていました。返信が遅くなり申し訳ありません。
サイトを GROUPING ロールとして使用しません。
分析を実施し、その結果の一部を発表しました。上司も喜んでくれました。本当にありがとうございます。
次のステップは、MCF の COST (実際の金額) を確認して、ボットの修理 1 回あたりの平均金額を確認することです。
そこで、コストロールの列に、修理を示す1ではなく金額を入力する予定です。0は検閲済みとして保持されます。
ボット修理あたりの平均費用を調べる正しい方法は何でしょうか?以下は、コストロール列に実際の金額が記入されたデータサンプルです。
私はJMP 18標準を使用しています。
ありがとう。

JMP 18 Standardにおける再帰分析について@Caozheng0115さん、返信ありがとうございます。
任意の正のコストを指定できます。ノンパラメトリック推定では累積コストが計算されます。パラメトリック推定では、コストは対数尤度関数の重みとして使用されます。(数学的な詳細を知りたい場合は、さらに説明したいと思いますので、そのように返信してください。)
大変恐れ入りますが、ご状況を誤解しており、「時間変動効果」について説明が不十分だった可能性があります。最後の例では、「サイト」列は「時間変動効果」ではありません。「時間変動」効果とは、各ID内で値が変化する効果です。以下のデータでは、「サイト」列が時間変動効果です。

ロボットの違いについて誤解しているようで申し訳ありません。全てのロボットは同じバージョン、タイプ、グレードであると想定していたため、「ID」をグループ化効果やモデル効果として設定していませんでした。(例えば、ID=001、ID=002、ID=003がそれぞれスターウォーズのC-3PO、R2-D2、BB-8だとすると、これら3つのロボットは全く異なる種類です。そのため、ID列をグループ化列に設定し、モデル効果にも含める必要があると思います。)
最後の例では、「場所」は「ID」と完全に混同されています。そのため、場所の効果をIDから切り離すことはできません。(例えば、C-3POは砂漠でのみ、R2-D2は海の近くでのみ、BB-8は快適な建物の中でのみ活動していたため、ID効果を場所効果から切り離すことはできません。)
まだ状況を誤解しているようですが、最後の例に対する分析例を以下に示します。ID=001と002のそれぞれについて、IDをグループ化列に含めることで、ノンパラメトリック累積コストを個別に計算します。ID=003は故障が1件しかないため、分析から除外します。各IDについて、パラメトリック対数線形ポアソン過程モデルを適用します。このモデルに基づくと、ID=001の時刻=300における累積コストは13300.37と推定され、ID=002の時刻=300における累積コストは550.007と推定されます。


上記の分析に使用した最後の例のデータ テーブルを添付します。
JMP 18 Standardにおける再帰分析についてこんにちは。迅速なご返信ありがとうございます。誤解はございません。ボットには確かに2種類あり、ボットの種類による影響を確認したい場合は、GROUPING効果でボットの種類を使用します。最後の例は、サイトを時間共変量として考慮しない単純な例です。これは単なる例です。誤解はございませんし、ご懸念も理解しております。
尤度関数の重み付けにおけるお金については、仕組みがなんとなく分かってきたような気がします。コストを重み付けとして使うということは、よりコストの高いイベントは、累積合計だけでなく、当てはめモデルの形成においてより重要視されるということです。今は数学的なことは気にせず、お金をコストの役割として使うことにします。それでは、よろしくお願いします。
JMP 18 Standardにおける再帰分析について@Caozheng0115さん、再度のご返信ありがとうございます。
安心しました。リカレント解析に関して追加のご質問がありましたら、再度ご質問いただくか、このスレッドに返信していただければ幸いです。
JMP 18 Standardにおける再帰分析についてこんにちは、
あなたの調子が良いといいのですが。
コスト列のドル値をテストしました。コストは修復イベントのスケーリング/重み付けのようなものなので、曲線はシフトしましたが、特に予想外のことは示されませんでした。
もう一つのタスクは、将来の修理と費用を予測することです。JMPの再帰モデルは予測を行うのに適した方法だと思いますか?対数線型NHPPモデルを使っていますが、近似曲線がすぐに収束してしまい、おそらく予測精度が悪くなることに気づきました。
比例NHPPモデルが使えると思います。ただ、選択肢があまりないのと、回帰分析を使った予測は正確ではないような気がします。
予測を行うことができる他の分析はありますか?
ありがとう。
JMP 18 Standardにおける再帰分析について親愛なる曹正様、
たまたまこのスレッドを見ました。JMPのウェブサイトには非常に優れた学習リソースがいくつかあります。信頼性全般については、 「Learn JMP - JMP User Community」をご覧ください。修復可能システムの分析については、同僚のJerry Fishが素晴らしいウェビナーを開催しました。こちらのリンクからご覧いただけます: 修復可能システムの信頼性分析
これが役に立つことを願います!
最高、
チャーリー
JMP 18 Standardにおける再帰分析についてこんにちは-
チャーリーの投稿に付け加えると、
Learn JMPには素晴らしいリソースが満載
こちらのリンクをご覧くださいhttps://community.jmp.com/t5/Learn-JMP-Events/Analyzing-Reliability-for-Non-Repairable-Systems/ec-p/810009#M452
また、再発に関するいくつかのセグメントを含むこのシリーズもご覧ください https://community.jmp.com/t5/Deeper-Dives/A-Deeper-Dive-into-Reliability-Analysis-for-Repairable-Systems/ta-p/738833
JMP 18 Standardにおける再帰分析についてこんにちは、 yusuke_ono
お元気でいらっしゃいますか?お返事を見て、ちょっと思ったことがあります。
'時刻tまで観測し、その時刻tでロボットが故障した場合、コスト0の最後の行を含める必要はありません。代わりに、コスト1の最後の行を含める必要があります。
質問なのですが、もしボットが時刻「t」より前に故障してゴミ箱に捨てられたらどうなるのでしょうか?そのようなボットも含めるべきでしょうか?
例えば、私の場合、ボットが100番目のトランザクション(時間ではなくトランザクションを使用しています)で失敗し、修復不可能でした。これは私の観察前に発生しました。このボットの100番目のトランザクションには1が入ると思います。このボットは修復不可能なので、0は入りません。正しいでしょうか?現在、観察前に失敗して修復されなかったボットは含まれていません。それらのボットを含めるべきかどうか教えてください。ありがとうございます。