模型图上的置信带的 JSL,有更好的想法吗?我想要得到我的数据图,并与模型结果叠加,并带有阴影的置信带。
例如,类似于“拟合模型”中的这样的图,但在拟合线周围带有阴影的置信区间:

我知道对于这个特定的例子我可以在 FitYbyX 中得到我想要的东西:

所以这表明了我在寻找什么,但对于某些拟合来说这并不适用 - 例如如果我想做这个拟合并将其限制为每个性别相同的斜率。
此外,我看到一些帖子,其中其他人请求了类似的内容,但也涉及拟合曲线或非线性拟合:
已解决:如何将置信区间添加到逻辑回归图? - JMP 用户社区
在 JMP“拟合曲线”中绘制置信区间 - JMP 用户社区
这些帖子中的两个建议并不能完全令我满意:
一是剖析器中有置信区间。很好,但这对我想要叠加拟合的这种示例没有帮助。
(我也意识到,对于拟合模型来说,可能存在太多因素,甚至无法制作出回归图,这可能是为什么它功能不那么齐全的原因——您希望将它与需要用分析器探索的更复杂的模型一起使用?但在某些情况下,简单的图或带有叠加曲线的图很有用)。


另一种方法是使用已保存的预测值在图形生成器中的曲线之间进行阴影处理。
已解决:如何在图形生成器图上创建阴影置信区间? - JMP 用户社区
在某些情况下也很好,但我希望预测结果是一条超出实际数据的平滑曲线。
这似乎是从平台中捕获置信带的公式,然后在图形脚本中使用它们。
我认为我已经找到了实现该目标的途径,但这似乎太麻烦了,以至于我在深入研究之前怀疑自己是否错过了更聪明的方法。或者这已经在某个地方得到证实了?
在我的例子中,公式如下所示(仅适用于置信下限):

我需要对其进行一些替换,然后为每种性别绘制一条 Y 曲线:

这只是画出那些下限线,到目前为止一切顺利......

我可以对预测本身和上置信线重复此操作,然后进行着色...我可以使用每对曲线上的一系列点来制作一个多边形...呃,我知道我可以这样做,但它似乎过于复杂了...我是否错过了一些更简单的方法,即使只是想在 Y 函数之间进行着色的这一部分?或者这真的是正确的道路?
简而言之:
实际上是否有某种方法可以更直接地从这些建模平台中获取这种类型的图?(如果没有,我想这可能是一个有价值的愿望清单项目。)
如果没有,那么关于如何创建所需情节的更好的想法比我描述的图形脚本更好吗?
如果不是,我是否缺少比多边形更简单的东西来在图形脚本中在 Y 曲线之间进行阴影处理?
谢谢!
高级统计建模自动化和脚本基础数据分析与建模回复:模型图上置信带的 JSL,有更好的想法吗?嗨@hardner ,
我认为你应该能够通过 Fit Y by X 平台做你想做的事,至少我理解你想要什么。不确定非线性平台是否能做到同样的事情。
无论如何,如果您转到双变量拟合旁边的红色三角形并选择“特殊拟合...”而不是“拟合线”,那么您可以对数据进行变换或限制线性拟合以具有特定的斜率或截距。使用您的示例,我使用斜率为 0.113 来做到这一点。


并且,置信带将超出数据点,您只需调整轴上的范围。

根据您在帖子中描述的内容,我认为这就是您想要的。或者也许我没有完全理解您想要什么。
希望这可以帮助,
DS
回复:模型图上置信带的 JSL,有更好的想法吗?嗨@SDF1 ,
谢谢!问题在于这些置信区间非常紧,因为你告诉了它斜率是多少 - 它对那部分非常有信心,并且只拟合了截距。你可以在拟合模型中拟合斜率,然后在这里指定它以查看很好地叠加的拟合线 - 并看到与拟合模型相比很好地显示的拟合方程。它会很好地绘制置信区间。所以,是的,这正是我正在寻找的那种图像,并且对于某些拟合,FitYbyX 有效 - 但那些不是我想要的置信区间。
回复:模型图上置信带的 JSL,有更好的想法吗?嗨@hardner ,
我想我还是不明白你在追求什么。
您在原始帖子中提到:“...例如,如果我想进行这种拟合,并将其限制为每种性别相同的斜率。” 这就是为什么在我给出的例子中,我正是这样做的,即固定每种性别的斜率。
在您最近的帖子中,您说:“但那些不是我想要的置信区间。”您正在寻找哪些置信区间?在“以 X 拟合 Y”平台中有两条置信曲线:置信曲线拟合——用于平均值的预期值,置信曲线 Indiv——用于反映误差和参数估计值变化的单个预测值的置信限度。(摘自 JMP 在线帮助页面)。您想要的是 Indiv 曲线吗?
DS
回复:模型图上置信带的 JSL,有更好的想法吗?嗨@SDF1 ,
感谢您继续思考我的问题。抱歉,我没有更清楚地说明我的例子,据我所知,用 X 拟合 Y 不适用于置信区间。
问题是,对于将斜率限制为每种性别都相同,我仍然希望该斜率是拟合的。在“以 X 拟合 Y”中,您可以限制斜率,但必须指定值,而不仅仅是每组都相同(我认为)。
如果我在“拟合模型”中进行拟合,我实际上可以拟合斜率和截距,同时强制使每种性别的斜率(或截距)相同。

然后我可以(在“保存列”下)保存值或平均置信限度的公式。
下面我使用右侧的图形生成器绘制了这些限制(这是我的问题的解决方案,我不喜欢它,因为它仅限于表中的特定点,但它确实显示了我想要的这种情况下所需的置信区间,至少在有限的范围内)。左边是 FitYby X,我只是告诉它限制为从拟合模型中获得的斜率值。那些置信区间(我想要平均值 - 更暗更紧的带 - 但我也添加了 Indiv)是线性的 - 它们不会在较高或较低的权重下散开,因为在指定的斜率中有 100% 的置信度。在数据中间,它们非常接近,因为 Fit Y by X 都是关于垂直变化的 - 在截距的拟合中。

我想要的不是 Indiv 曲线,而是对落在区间内的单个点的置信度。我确实想要关于平均值的置信区间,但我希望它们与斜率和截距的拟合有关。
似乎 FitYbyX 是唯一一个可以完美叠加原始数据、拟合值和置信区间的平台,但有原因导致您无法在那里完成所有拟合。我认为其他平台(如 Fit Model、Nonlinear 和 Fit Curve)可以完成一些 FitYbyX 无法完成的拟合(例如,这只是其中一个例子),在某些情况下,您可以制作这样的图,因为只有一个 X,而它们只有保存拟合值置信区间的选项,但没有叠加图选项。
回复:模型图上置信带的 JSL,有更好的想法吗?嗨@hardner ,
我现在更好地理解了您的困境,感谢您花时间重新表述您所面临的问题。
简而言之,我相信您是对的,Fit Y by X 是唯一允许完美叠加拟合的平台,您可以在其中扩展绘图以查看置信区间如何变化。而且,保存到数据表中的预测公式只适用于该数据表中的行数,这往往是有道理的。
但是,可能存在一种非常接近您想要的解决方案。它并不完美,但由于您需要使用的不同平台的限制(例如其他非 Fit Y by X 的模型拟合平台),它可能是您可以获得的最接近的解决方案。
我想到的一个想法是在数据表中创建一些带有虚拟行的“虚拟”列,其中的值是预期的平均值 - 这样它就不会弄乱你的置信区间。
这是使用 Graph Builder 和相应的 JSL 代码的结果 - 就像您所展示的一样。

Graph Builder(
Graph Spacing( 4 ),
Variables(
X( :hidden weight ),
Y( :Lower 95% Mean height ),
Y( :Upper 95% Mean height, Position( 1 ) ),
Y( :Pred Formula height, Position( 1 ) ),
Y( :hidden height, Position( 1 ) ),
Overlay( :sex )
),
Elements(
Area( X, Y( 1 ), Y( 2 ), Legend( 2 ), Area Style( "Range" ) ),
Line( X, Y( 3 ), Legend( 1 ) ),
Points( X, Y( 4 ), Legend( 1 ) )
),
SendToReport( Dispatch( {}, "X title", TextEditBox, {Set Text( "weight" )} ) )
);
这是我实现该目标所采取的步骤(当然,这一切都可以用 JSL 编码,但对于您可能要处理的每个案例都需要一些时间)。
1. 按照之前的方式运行拟合模型后,保存感兴趣的公式列(预测平均值和 +/-95% 平均 CI)。
2. 创建两个虚拟列——我选择:hidden height 和 :hidden weight 作为名称。
2a. 在数据表中添加四行 - 这样您就可以获得针对男性和女性的两个点(低值和高值)。
3. 将每一列变成一个公式
3a. 对于 :hidden 高度,它看起来像这样:

3b. 对于 :hidden weight,它看起来像这样:

注意:我只是选择了 0 和 200 作为值,因为它们很容易(截距就是其一),而我选择另一个只是作为更高的极值,但这些将根据您的需要进行设置。
4. 更改预测平均值和 +/-95% 置信区间的公式,使其不再使用 :weight 进行计算,而是使用 :hidden weight 进行计算。预测平均值的示例如下。

5. 返回并重新运行您的 JSL 代码,但将 :height 和 :weight 列更改为相应的虚拟列,以便它在数据表中包含这额外的四行。
6. 我做的最后一件事是将最后四行从默认标记样式更改为“/”标记样式,这样这些平均值端点就不像数据本身那么明显了。您可以选择其他...并使用不同的字符。我刚刚尝试了 MS Word 中的双右引号 (»),效果很好。

请注意,我还将 x 轴重命名为“重量”,以便不显示“隐藏重量”。
但是,根据您的描述,我认为这应该可以满足您的要求。这不是最简单或最优雅的解决方案,但确实可以完成工作。例如,我发现这比在 Graph Builder 中尝试处理多边形更容易。
一些值得考虑和思考的事情。
希望这可以帮助,
DS
回复:模型图上置信带的 JSL,有更好的想法吗?谢谢!
你让它在图形生成器中看起来非常漂亮!我真的不想“篡改”表格(我的用例将成为其他人的工具),但表格的私人副本是可能的。无论如何,这是值得考虑的事情,即使我认为我至少必须尝试图形脚本方式,看看我是否可以让多边形足够平滑以看起来同样漂亮。
我特别感谢其他人对此表示同意,情况确实如此,并且没有我所忽略的一些明显的内置选项。