首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算学院化的删除残差和outlier_test()以预测OLS

计算学院化的删除残差和outlier_test()以预测OLS
EN

Stack Overflow用户
提问于 2019-12-24 09:28:48
回答 1查看 329关注 0票数 0

我正在使用statmodel OLS进行迭代异常值消除。我已经用来拟合模型了。

代码语言:javascript
运行
AI代码解释
复制
ols_result = sm.OLS(y,X).fit()

然后我可以得到学院化的删除残差外部和bonferroni

代码语言:javascript
运行
AI代码解释
复制
ols_result.outlier_test(method="bonf")

我正在删除超过bonferroni p> %10的样本,其中cooks距离在每次迭代中也是最高的。直到我没有得到bonf(p)>%10的样本,然后我得到了原始样本的子集。

假设我有400个样本,在删除异常值后,我得到了380个样本。现在我想找出学院化的删除残差和bonferroni,再用400个样本对380个样本进行回归拟合。以查看删除的异常值是否真的是异常值。

这就是问题所在。我正在寻找一种简单的方法来使用statmodels OLS模型来获得拟合值的残差和厨师距离,而不是自己编写这些函数。但是.outlier_test().get_influence()似乎可以处理OLS Result对象。

你们有没有什么简单的方法来实现这些测试而不需要太多的代码等等。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-26 15:42:57

经过对这种实用性的深入研究。我找不到用statmodels库做这件事的简单方法。相反,我编写了自己的代码,也得到了statmodel源代码的帮助。如果有人需要我在下面分享的代码

代码语言:javascript
运行
AI代码解释
复制
def internally_studentized_residual(X,Y,y_hat):
    """

    Calculate studentized residuals internal

    Parameters
    ______________________________________________________________________

    X:            List
                  Variable x-axis

    Y:            List
                  Response variable of the X 


    y_hat:        List
                  Predictions of the response variable with the given X

    Returns
    ______________________________________________________________________

    Dataframe :   List
                  Studentized Residuals   


    """

#     print(len(Y))
    X = np.array(X, dtype=float)
    Y = np.array(Y, dtype=float)
    y_hat = np.array(y_hat,dtype=float)
    mean_X = np.mean(X)
    mean_Y = np.mean(Y)
    n = len(X)

#     print(X.shape,Y.shape,y_hat.shape)

    residuals = Y - y_hat

    X_inverse = np.linalg.pinv(X.reshape(-1,1))[0]
    h_ii = X_inverse.T * X

    Var_e = math.sqrt(sum((Y - y_hat) ** 2)/(n-2))
    SE_regression = Var_e/((1-h_ii) ** 0.5)
    studentized_residuals = residuals/SE_regression
    return studentized_residuals

def deleted_studentized_residual(X,Y,y_hat):
    """

    Calculate studentized residuals external

    Parameters
    ______________________________________________________________________

    X:            List
                  Variable x-axis

    Y:            List
                  Response variable of the X 


    y_hat:        List
                  Predictions of the response variable with the given X

    Returns
    ______________________________________________________________________

    Dataframe :   List
                  Studentized Residuals External  


    """
    #formula from https://newonlinecourses.science.psu.edu/stat501/node/401/
    r = internally_studentized_residual(X,Y,y_hat)
    n = len(r)
    return [r_i*math.sqrt((n-2-1)/(n-2-r_i**2)) for r_i in r]


def outlier_test(X,Y,y_hat,alpha=0.1):
    """

    outlier test for the points

    Parameters
    ______________________________________________________________________

    X:            List
                  Variable x-axis

    Y:            List
                  Response variable of the X 


    y_hat:        List
                  Predictions of the response variable with the given X

    alpha:        float
                  alpha value for multiple test

    Returns
    ______________________________________________________________________

    Dataframe :   studentized, unadjusted p values and benferroni multiple 
                  test dataframe  


    """
    resid = deleted_studentized_residual(X,Y,y_hat)
    df = len(X) - 1 
    p_vals = stats.t.sf(np.abs(resid),df) * 2
    bonf_test = multipletests(p_vals,alpha,method="bonf")
    df_result = pd.DataFrame()
    df_result.loc[:,"student_resid"] = resid
    df_result.loc[:,"unadj_p"] = p_vals
    df_result.loc[:,"bonf(p)"] = bonf_test[1]
    df_result.index = X.index

    return df_result

这可能是一个有点脏的代码。我没有时间去清理和提高效率。它使用numpy模块和scipy.stats

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59466607

复制
相关文章
残差项的均值回归
作者知乎id: Wu Kevin
量化小白
2019/03/15
1K0
残差项的均值回归
Python数据科学:线性回归诊断
上面只是针对平均支出数据取对数,下面对收入数据也取对数,使得二者增加的百分比值大致一样。
小F
2020/10/09
2.3K0
Python数据科学:线性回归诊断
基于slim的残差网络
slim中给出了resnet、vgg卷积网络的快速实现方法,定义的位置为:D:\anaconda\envs\tensorflow\Lib\site-packages\tensorflow\contrib\slim\python\slim\nets,构建残差网络主要使用的模块为resnet_utils.py、resnet_v1.py、resnet_v2.py。下面
狼啸风云
2019/07/08
1.6K0
python生态系统中的线性回归
需求最大的受监督机器学习算法之一是线性回归。线性回归扎根于统计领域,因此必须检查模型的拟合优度。
代码医生工作室
2019/10/06
1.9K0
R语言如何和何时使用glmnet岭回归
这里向您展示如何在R中使用glmnet包进行岭回归(使用L2正则化的线性回归),并使用模拟来演示其相对于普通最小二乘回归的优势。
拓端
2020/08/17
5.2K0
R语言如何和何时使用glmnet岭回归
因果推断与反事实预测——利用DML进行价格弹性计算(二十三)
经济学课程里谈到价格需求弹性,描述需求数量随商品价格的变动而变化的弹性。价格一般不直接影响需求,而是被用户决策相关的中间变量所中介作用。假设 Q 为某个商品的需求的数量,P 为该商品的价格,则计算需求的价格弹性为,
悟乙己
2022/01/21
3.6K0
因果推断与反事实预测——利用DML进行价格弹性计算(二十三)
深度残差收缩网络:从删除冗余特征的灵活度进行探讨
本文介绍了一种新的深度学习方法——深度残差收缩网络(Deep Residual Shrinkage Network),从软阈值函数在删除冗余特征时的灵活度,进行了探讨。
用户7136653
2020/03/29
7590
深度残差收缩网络:从删除冗余特征的灵活度进行探讨
无处不在的残差网络
CW,广东深圳人,毕业于中山大学(SYSU)数据科学与计算机学院,毕业后就业于腾讯计算机系统有限公司技术工程与事业群(TEG)从事Devops工作,期间在AI LAB实习过,实操过道路交通元素与医疗病例图像分割、视频实时人脸检测与表情识别、OCR等项目。
深蓝学院
2020/12/04
1.2K0
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
我们需要2SLS回归的一些基本结果来开发诊断方法,因此我们在此简单回顾一下该方法。2SLS回归是由Basmann(1957)和Theil(引自Theil 1971)在20世纪50年代独立发明的,他们采取了略微不同但又相当的方法,都在下面描述,以得出2SLS估计器。
拓端
2022/03/05
4.1K0
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
【深度学习】残差网络理解
残差网络 ResNet 是在2015年开始火起来的,之前只是在书上看过它的大名,但是没有深入学习过。最近在参加kaggle竞赛,查资料的过程了解到 ResNet 在图像分类、目标检测等问题中作为 backbone 的效果很不错,所以打算深入学习下。
嵌入式视觉
2022/09/05
2.5K0
【深度学习】残差网络理解
深度学习: ResNet (残差) 网络
ResNet (残差) 网络 由He Kaiming、Sun jian等大佬在2015年的论文 Deep Residual Learning for Image Recognition 中提出。
JNingWei
2018/09/27
3.6K0
深度学习: ResNet (残差) 网络
基于学习的点云残差编码
最近,沉浸式媒体的呈现模态受到越来越多的关注,点云是其中的重要代表。然而,点云时常包含超过数百万个点,这增加了对高效压缩解决方案的需求。近来,深度学习用于点云压缩被不断研究,并成为点云压缩的重要工具,尤其是其较好的结果引起了编码社区的兴趣。然而,迄今为止提出的大多数解决方案都不支持可伸缩编码。
用户1324186
2021/11/23
1.5K0
【V课堂】R语言十八讲(十)–OLS回归
前面讲到了假设检验,可以检验某个简单的结论,判断两个总体是否显著不同,今天,讲统计学中非常经典的一个知识,这就是回归,回归的分类很多,今天主要讲其中的OLS回归,OLS回归包括三大部分,分别是简单线性回归,多项式回归,多元线性回归.回归在数据分析中应用的非常广泛,可以做分类,也可以做预测,当然,更注重预测.接下来,我们讲讲回归的原理及流程。 一.简单线性回归 1.要解决的问题 简单线性回归是要找出一个变量与另一个变量的函数关系,这比相关分析更高一级,相关分析只能找出两个变量是否有线性关系,
小莹莹
2018/04/23
1.4K0
【V课堂】R语言十八讲(十)–OLS回归
深度残差收缩网络详解
深度残差网络ResNet获得了2016年IEEE Conference on Computer Vision and Pattern Recognition的最佳论文奖,目前在谷歌学术的引用量已高达38295次。
用户6915903
2020/01/29
1.1K0
深度残差收缩网络详解
最小二乘回归的Python实现
写在前面 我们构建了非常强大的私募基金数据库,并基于这个数据库,衍生出了FOF Easy数据可视化终端和FOF Power组合基金管理系统,涉及到非常多复杂的模型及算法。在背后支撑着的,是我们可爱又有实力的研发同志们,他们大多有着非常深厚的金融统计背景。因此,私募云通将在接下来一段时间内,推出《用Python玩转统计模型》系列,用最通俗易懂的语言带你走进统计模型的世界。 赶快转发,让更多小伙伴知道这个消息吧! 什么是OLS回归? 回归分析是实现从数据到价值的不二法门。 它主要包括线性回归、0-1回归、定序
企鹅号小编
2018/01/29
2.7K0
因果推断与反事实预测——利用DML进行价格弹性计算(二十四)
经济学课程里谈到价格需求弹性,描述需求数量随商品价格的变动而变化的弹性。价格一般不直接影响需求,而是被用户决策相关的中间变量所中介作用。假设 Q 为某个商品的需求的数量,P 为该商品的价格,则计算需求的价格弹性为,
悟乙己
2022/05/09
4K0
因果推断与反事实预测——利用DML进行价格弹性计算(二十四)
从零开始学Pytorch(九)之批量归一化和残差网络
处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。 标准化处理输入数据使各个特征的分布相近
墨明棋妙27
2022/09/23
9300
逻辑回归(对数几率回归,Logistic)分析研究生录取数据实例
Logistic回归,也称为Logit模型,用于对二元结果变量进行建模。在Logit模型中,结果的对数概率被建模为预测变量的线性组合。
拓端
2021/12/31
2K0
逻辑回归(对数几率回归,Logistic)分析研究生录取数据实例
rlm:Robust regression by iterated reweighted least squares(IRLS)
Residual:残差,预测值(基于回归方程)与实际观测值之间的差值。 Outlier:在线性回归中,离群值是具有较大残差的观测值。 Leverage:在预测变量上具有极值的观测值是具有高杠杆的点。杠杆是衡量一个自变量偏离其均值的程度。高杠杆点对回归系数的估计有很大的影响。 Influence:如果移除观测结果会使回归系数的估计发生很大的变化,那么该观测结果就是有影响的。影响力可以被认为是杠杆和离群值的产物。 Cook’s distance:测量杠杆信息和残差的方法。
Listenlii-生物信息知识分享
2020/12/16
1.3K0
rlm:Robust regression by iterated reweighted least squares(IRLS)
注意力机制+软阈值化=深度残差收缩网络
深度残差网络ResNet获得了2016年IEEE Conference on Computer Vision and Pattern Recognition的最佳论文奖,目前在谷歌学术的引用量已经突破了4万次。
用户7096272
2020/03/18
8010
注意力机制+软阈值化=深度残差收缩网络

相似问题

循环以保存OLS回归中的残差。

19

用AR残差估计多个OLS

110

Python中残差与预测值的残差图

2317

如何从混合模型(lmer)中提取学院化残差?

10

附加预测残差和按组计算的熊猫数据平方

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档