JMP 18 标准版中的递归分析大家好
我是社区的新成员。我被分配了一项任务,对我们的数据进行递归分析。我从未使用过 JMP,也从未做过任何递归分析。所以我肯定会提出一些愚蠢的问题。
我们拥有的数据是机器人维修数据。我们想了解机器人的维修事件模式,我被告知要使用递归分析(不知道为什么)。
我们有大约 15000 个机器人,我使用了“bot_id”、“accumulated_transactions”、“site”、“cost”、“bot_type”和“component”列。“Site”表示机器人工作的不同位置。“cost”是 0 或 1 值(1 表示维修,0 表示机器人的最后一次事件)。“component”表示正在维修的不同部件。我们想观察站点、bot_type 和部件对 mcf 和维修模式的影响。我主要使用对数线性 NHPP 模型。
我对数据有些担忧。我们有大约 1000 个借用机器人在所有站点之间移动。如果我在分析中选择“站点”列作为“分组”角色来查看不同站点的 MCF,这会影响结果吗?我的理解是,现在每个站点都会将借用机器人视为一个独立的机器人。如果我想按“站点”进行“分组”,我应该排除这 1000 个借用机器人吗?
我收到的数据中,每个站点和机器人的最后一个事件的“成本”值为 0。因此,如果一个机器人在两个站点工作,那么该机器人将有两个 0 值,每个值代表每个站点的最后一个事件。这会影响 JMP 在计算 MCF 值时如何统计活跃机器人吗?我的理解是,成本值为 0 表示该机器人已结束工作。如果一个机器人有多个 0 值,该如何处理?
我还有其他问题,但我不想再问太久了。
感谢您的帮助。
基础数据分析与建模回复:JMP 18 标准版中的递归分析我认为你的“站点”变量在统计学术语中被称为“时变协变量”或“时变应力”。如果你想在你的递归模型中包含时变协变量,你需要在每次时变协变量的水平发生变化时添加一行。此时,成本列的值设置为零。例如,如果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)无论发生哪种故障,都置cost=1。
(2)仅当发生特定故障时,设置cost=1。
附件数据表仅展示了一个机器人的简单示例。成本由上述方法 1) 设置。运行附件数据表中的表格脚本。如果机器人始终仅在特定站点工作(例如始终仅在站点“A”工作),Profiler 将显示估计的累计故障次数。
我很担心我不太了解你的情况。但我希望我的以上评论能为你的分析提供一些思路。
回复:JMP 18 标准版中的递归分析感谢您的快速回复。我理解您提到的每次网站变更都包含零成本。我应该提供更多详细信息。
我认为现在的问题是 JMP 如何处理 0 成本。如果机器人早期成本为 0,JMP 似乎会过早地排除它们。JMP 认为有效的机器人数量越少,mcf 值就越高。以下是我看到的。上面是每个机器人只有一个 0 成本的数据。下面是多个 0 成本的数据(每个机器人每个站点一个)。下面的 mcf 值更大,因为 JMP 过早地排除了成本为 0 的机器人。这是我的理解,可能不对。


我向 ChatGPT 提出了同样的问题,以下是答案。我觉得我应该为上次看到的活动设置 0 的机器人费用。请告诉我你的想法。
选项 A —简单且强大(首先推荐)
每个事件保留一行(成本=1) with the Site value active at that event, 每个机器人最后花费 0 行 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
-
最终审查行(每个机器人一行): 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 标准版中的递归分析谢谢您的回复。
在此回复中,我想解释何时需要 Cost=0 的行。
有两种情况需要 Cost=0 的行。一种是用来表示上次观察每个机器人的时间。另一种是用来表示随时间变化的协变量的变化。
如果您观察到机器人直到“t”时刻,并且它在最后观察时间“t”没有发生故障,则需要包含最后一行,其中 Cost=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
还需要 Cost=0 的行来表示协变量的变化。例如,如果协变量 X 在 time=50 时从 A 变为 B,则需要下一行 Cost=0 的行。
ID t X 成本
001…………
001 50 A 0
001…B…
此行用于通知 JMP 协变量的变化。正如我在之前的回复中所写,这类协变量被称为“随时间变化的协变量”。
MCF 图会受到是否包含 Cost=0 的最后一行观测值的影响。对于时变协变量,MCF 图不会受到是否包含 Cost=0 的行的影响。但拟合模型的结果会受到两种 Cost=0 行的影响。
这个回复符合你的预期吗?如果不是,我希望你能再回复一次。
回复:JMP 18 标准版中的递归分析@Caozheng0115 -san,
更正我的第一个回复
您的“成分”变量看起来像统计学术语中所谓的“竞争风险”。JMP 的重复分析不支持竞争风险。您只能进行以下分析。
(1)无论发生哪种故障,都置cost=1。
(2)仅当发生特定故障时,设置cost=1。
如果您使用启动对话框中的“原因”列,则可以使用复发分析平台进行步骤 (2) 中的分析。附件中的数据表显示了一个示例。
回复:JMP 18 标准版中的递归分析
您好,感谢您的快速回复。您能解释一下为什么选择选项 2 而不是选项 1 吗?在您的示例数据中,两种方法(分别显示成本和两个原因的单独成本)似乎都有效,并且生成相同的结果。我想,如果我想在图 1 中显示一个原因,在图 2 中显示另一个原因,我需要为不同原因的成本创建新的列,以使结果一致。这是您的建议吗?那么,分组时类似的情况如何?例如,如果我按站点分组。有没有办法显示单个站点的结果和图表,使其与包含多个站点的数据生成的结果相同?
我检查了您发送的样本数据。看起来您在第一个保存的分析中将众数作为因果关系,将地点作为尺度效应。您使用的模型是比例 NHPP 模型。选择这个模型有什么原因吗?我的理解是,比例 NHPP 模型假设所有因果关系都有一个共同的基线MCF 曲线,并通过乘性因子进行放大或缩小。在我的案例中,不同的因果关系不被假设成比例,所以我使用了对数线性模型。请告诉我我是否应该使用对数线性模型。
我不太理解生成的拟合曲线。红色的拟合曲线是针对故障1的吗?拟合曲线与红色的MCF曲线相距甚远。为什么会这样?有两条蓝色的拟合曲线。哪一条是针对故障2的拟合曲线?为什么会生成两条拟合曲线?绿色的拟合曲线是什么?
或者拟合曲线是针对不同部位的。但红色的只有一条曲线,而不是两条。我不明白为什么会这样。
谢谢。

回复:JMP 18 标准版中的递归分析非常感谢。说得很清楚。你真是救命稻草。
我还有一个后续问题。如果我想比较不同站点的效应,我应该把站点设置为分组效应、尺度效应还是形状效应?我想显示每个站点的最小二乘因子 (MCF)、每个站点的拟合曲线以及参数估计值( γ 和 δ) 。
我看到了两个选择:
1. 不要将站点作为分组,而是将其填充为尺度和形状效应器。这样我就可以比较不同站点之间的模型参数(对数线性 NHPP)。但这种方法只为总体生成了一条 MCF 曲线。
2. 将站点添加到分组中,并将它们填充为比例和形状效应器(不知道是否可以这样做)。这种方法将为每个站点生成 MCF、每个站点的拟合曲线以及用于比较站点间效果的模型参数。我发现这种方法的问题是,分组会为每个站点生成单独的模型(我可能错了),这并非比较使用不同模型的站点效果的好方法。
我该怎么办?我应该在选项2中生成单独的曲线,然后使用选项1的结果表进行参数估计吗?这样一来,我显示的曲线将与参数表不完全匹配。
多谢。
回复:JMP 18 标准版中的递归分析再次感谢您的回复。
虽然我担心我误解了你的情况,但我认为选项 (1) 一定是正确的。
据我了解,我认为您的站点变量是一个随时间变化的协变量。
如果是这样,您不应该将站点变量设置为分组列。
如果在下表中设置 SITE,...
ID 站点时间
1 1 15
1 2 31
1 1 49
1 2 57
1 1 102
...然后,JMP 识别出有两个 ID。
ID 站点时间
1-1 1 15
2-1 2 31
1-1 1 49
2-1 2 57
1-1 1 102
因此,(如果我没有误解您的情况并且您的站点变量是一个随时间变化的协变量)您不应该将站点变量包含在分组列中。
还有一条补充说明。
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 标准版中的递归分析你好,
谢谢你的回复,这真的很有帮助。不知怎么的,我错过了JMP社区提醒我查看你回复的邮件。抱歉回复晚了。
我不会使用站点作为分组角色。
我已经完成了分析,并提交了部分结果。我的经理很高兴。非常感谢。
下一步是查看 MCF 中的 COST(实际金钱),以了解每次机器人修复的平均金钱。
所以我打算在成本角色栏中填写金额,而不是1(表示修复)。0仍将保留,以表示审查状态。
这是研究每次机器人修复平均花费的正确方法吗?以下是在“成本角色”列中包含实际金额的数据样本。
我正在使用 JMP 18 标准。
谢谢。

回复:JMP 18 标准版中的递归分析再次感谢您的回复, @Caozheng0115 -san
您可以指定任何正成本。在非参数估计中,计算累积成本。在参数估计中,成本用作对数似然函数的权重。(如果您想了解数学细节,我愿意进一步解释,所以请回复。)
我非常担心我误解了你的情况,并且可能没有解释清楚“时变效应”。在你最后一个例子里,“站点”列并不是“时变效应”。“随时间变化”的效果是指其值在每个ID内都会发生变化的效果。在以下数据中,“站点”列即为随时间变化的效果。

我也担心自己误解了机器人之间的区别。我假设所有机器人的版本、类型和等级都相同,所以我没有将“ID”设置为分组效果或模型效果。(例如,如果ID=001、ID=002和ID=003分别是《星球大战》中的C-3PO、R2-D2和BB-8,那么这三个机器人就是完全不同的类型。所以,我认为我们应该将ID列设置为分组列,并将其添加到模型效果中。)
在你最后这个例子中,“地点”和“身份”完全混淆了。所以我们无法区分地点和身份的影响。(例如,C-3PO 只能在沙漠中工作,R2-D2 只能在海边工作,BB-8 只能在舒适的建筑物内工作,我们无法区分身份效应和地点效应。)
虽然我可能仍然误解了您的情况,但以下是针对您最后一个例子的分析示例。我通过包含“ID 到分组”列,分别计算了 ID=001 和 002 的非参数累积成本。由于只有一次失败,我将 ID=003 的数据排除在分析之外。我为每个 ID 拟合了参数对数线性泊松过程模型。基于此模型,ID=001 在时间 =300 时的累积成本估算为 13300.37,而 ID=002 在时间 =300 时的累积成本估算为 550.007。


我附上了数据表,即您的最后一个例子,我用它来进行上述分析。
回复:JMP 18 标准版中的递归分析您好,感谢您的快速回复。您没有误解,机器人确实有两种类型,如果我想查看机器人类型的效果,我会在分组效果中使用机器人类型。我最后一个例子很简单,没有使用站点作为时间协变量,仅供参考。您没有误解,我也理解您的担忧。
对于似然函数权重中的金钱,我想我已经理解它是如何运作的了。使用成本作为权重意味着更昂贵的事件在塑造拟合模型方面会发挥更大的作用,而不仅仅是在累计总量中。现在我不专注于数学,我会把金钱用在成本角色上。祝一切顺利。
回复:JMP 18 标准版中的递归分析再次感谢您的回复, @Caozheng0115 -san。
听到这个消息我松了一口气。如果您还有其他关于递归分析的问题,欢迎您再次提问或回复此帖。
回复:JMP 18 标准版中的递归分析你好,
希望你一切都好。
我测试了成本栏中的美元价值。因为成本就像维修事件的缩放/权重。它改变了曲线,但并没有显示出任何意外情况。
另一项任务是预测未来的维修和成本。您认为JMP中的递归是进行预测的好方法吗?我一直在使用对数线性NHPP模型,但我注意到拟合曲线收敛很快,预测结果可能不太好。
我猜我可以使用比例 NHPP 模型。只是我觉得选择不多,而且用递归分析预测似乎不太准确。
还有其他分析可以帮助我进行预测吗?
谢谢。
回复:JMP 18 标准版中的递归分析Dear Cao Zheng-
我刚好看到这个帖子。JMP 网站上有一些非常好的学习资源。关于一般可靠性,可以看看“学习 JMP - JMP 用户社区” 。关于可修复系统分析,我的同事 Jerry Fish 做了一个非常棒的网络研讨会。您可以通过以下链接找到: 可修复系统可靠性分析。
希望这有帮助!
最好的,
查理
回复:JMP 18 标准版中的递归分析你好-
补充 Charlie 的帖子-
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 标准版中的递归分析嗨, 小野佑介
希望你一切都好。我在你的回复里想到了一些事情:
'如果您观察到“t”,并且机器人在“t”时刻发生故障,则无需包含 Cost=0 的最后一行。相反,您需要包含 Cost=1 的最后一行。
我的问题是,如果机器人在时间“t”之前失败,并被放入垃圾桶怎么办?这些机器人应该被纳入吗?
就我的情况来说,一个机器人在第 100 笔交易时失败了(我用的是交易而不是时间),而且无法修复,而且这发生在我观察之前。我想我会在交易 100 时为这个机器人填 1。不会填 0,因为这个机器人无法修复。对吗?目前我们没有纳入任何在观察之前失败且未修复的机器人。请告诉我是否应该纳入这些机器人。谢谢。