非线性平台自定义损失函数-收缩估计我想尝试使用非线性平台进行非线性模型拟合,使用自定义损失函数进行收缩参数估计,这与回归的 LASSO 损失函数类似。
例如,如果我有这个非线性模型(名为“NLFunction”,其中a , g , c和茨作为模型中的参数)

我想使用这样的损失函数

这有点类似于 Lasso 损失函数。其思想是稍微“缩小”参数估计值,以便找到更好的模型拟合,并使模型拟合不那么病态。
我认为 我可以通过在启动对话框中指定损失函数来手动执行此操作,但不确定它是否按照我想要的方式实际使用损失函数。

如果我运行它,它确实会运行并给出结果,但是从分析中保存脚本不会返回我指定的手动损失函数。
如果这可行并且允许在非线性模型拟合中进行收缩估计,有人能给出意见吗?
高级统计建模自动化和脚本回复:非线性平台自定义损失函数 - 收缩估计你好@MathStatChem ,
我猜你已经阅读过有关自定义损失函数的统计细节的文档了?
查看泊松损失函数的示例,似乎在启动模型时应该在“损失”参数中使用自定义损失函数:

在分析窗口打开的时候就可以查看是否直接使用自定义的损失函数:

我无法深入探讨该主题,因为可能没有足够的信息/结果/数据来重现分析并为您提供帮助。您是否尝试过运行没有自定义损失函数的非线性建模?结果有多相似/不同?
我对你创建的自定义损失函数没有任何意见,我只是觉得在非线性建模的情况下使用系数的“线性惩罚”很奇怪:你试图以相同的方式减小系数的大小,无论这些系数的相对大小如何,如果这些系数是指数函数或线性函数的一部分,则可能会有很大不同。也许考虑使用这些系数并使用非线性惩罚(使用 |a|、exp/ln(g),...)会有所帮助?
希望这些想法能对你有所帮助,
回复:非线性平台自定义损失函数 - 收缩估计我读过文档,也广泛使用过该平台,但对使用自定义损失函数不太熟悉。根据我尝试和试验的情况,我认为我的问题的答案是“不”,你不能这样做。我认为这是因为自定义损失函数可以是模型中已有参数的函数,但我对此不确定。
这样做的动机是,对于非线性模型,参数估计往往高度相关,而目标(损失)函数在找到最佳损失的区域中可能非常平坦,这使得算法很难收敛。我想我真正想做的是更类似于岭回归的东西,其中添加到 SSE 的惩罚是参数估计平方和的倍数。
回复:非线性平台自定义损失函数 - 收缩估计我联系了 JMP 技术支持,他们分享了一种实现此目的的方法。我没有意识到,当您使用非线性时,只需在底部提供损失函数即可拟合非线性模型,而无需将任何列放入角色中。这样,您会在平台中失去一些功能(例如无法绘制图表,无法使用剖析器),但您可以进行参数估计。因此,使用自定义损失函数(如上所示)是可行的。