1

我有一个关于 SAS-proc nlin 的问题。

我正在执行 10000 次模拟的过程。他们中的许多人没有收敛并给我错误的结果。

我想在我的输出表中添加一个二进制变量,表示此迭代没有收敛。

有谁知道这是怎么做到的吗 ?

非常感谢,

佩里

4

1 回答 1

1

您需要使用 ODS 从 PROC NLIN 中提取 ConvergenceStatus 输出。将其添加到您的过程代码中,如下所示:

PROC NLIN data = ...;
  ...;
  ods output ConvergenceStatus = conv;
RUN;

这为您提供了一个包含两个变量的数据集:

  1. 状态(0 表示收敛,否则此处描述 1、2 或 3:https: //support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_nlin_sect031.htm)。
  2. 原因(收敛问题的描述)。

因此,将该数据集的结果附加到每个模拟轮次,并为状态是否 > 0 创建一个二进制指标,您应该已经准备就绪。

于 2013-12-17T18:45:22.393 回答