Python-statsmodel稳健线性回归(RLM)异常值选择

2024-04-20 14:23:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我在分析一组数据,我需要找到它的回归。数据集中的数据点数量很少(~15),我决定使用稳健的线性回归来完成这项工作。问题是程序是选择一些点作为离群值,这些点似乎没有那么大的影响。这是数据的散点图,其影响被用作大小:X vs Y. The Points B and C are selected as outliers, while point A is not.

选取B点和C点(图中用红色圆圈表示)作为离群值,而影响较大的A点则不选。虽然A点没有改变回归的总体趋势,但它基本上是沿着X最高的点定义斜率,而B点和C点只影响斜率的显著性。所以我的问题有两部分: 1) 如果没有选择最有影响的点,RLM包选择离群值的方法是什么?你知道我在考虑的其他包有离群值选择吗? 2) 你认为A点是异常值吗?在


Tags: 数据方法程序数量定义线性趋势红色
1条回答
网友
1楼 · 发布于 2024-04-20 14:23:34

stats模型中的RLM仅限于M估计量。默认的Huber范数仅对y中的异常值具有鲁棒性,而在x中不具有鲁棒性,即对不良影响点不具有鲁棒性。在

请参见示例http://www.statsmodels.org/devel/examples/notebooks/generated/robust_models_1.html 在[51]和之后的线路。在

像bisquare这样的重定准则能够去除不好的影响点,但解决方案是局部最优的,需要合适的起始值。那些具有较低崩溃点并且对诸如LTS这样的x异常值具有鲁棒性的方法目前在statsmodels中都不可用,在Python中也不存在。R有一套更广泛的稳健估计,可以处理这些情况。添加更多方法和模型的扩展statsmodels.健壮正在请求拉入,当前已暂停。在

总的来说,回答问题的第二部分:

在特定情况下,通常很难将观察结果声明或标识为异常值。研究人员通常使用稳健的方法来指出需要进一步调查的离群候选者。例如,一个原因可能是“离群值”是从不同的人群中取样的。在许多情况下,使用纯机械的统计识别可能并不合适。在

在这个例子中:如果我们拟合了一个陡坡,并将a点作为一个离群值,那么点B和C可能非常适合,并且不会被识别为异常值。另一方面,如果A是基于额外信息的合理点,那么这种关系可能是非线性的。 我的猜测是,它将声明A为唯一的异常值,并拟合一条陡峭的回归线。在

相关问题 更多 >