搜索
首页后端开发Python教程如何在Python中计算学生化残差?

如何在Python中计算学生化残差?

Sep 24, 2023 pm 06:45 PM
python编程学生化残差计算学生化残差

学生化残差通常用于回归分析,以识别数据中潜在的异常值。异常值是与数据总体趋势显着不同的点,它可以对拟合模型产生重大影响。通过识别和分析异常值,您可以更好地了解数据中的潜在模式并提高模型的准确性。在这篇文章中,我们将仔细研究学生化残差以及如何在 python 中实现它。

什么是学生化残差?

术语“学生化残差”是指一类特定的残差,其标准差除以估计值。回归分析残差用于描述响应变量的观测值与其模型生成的预期值之间的差异。为了找到数据中可能显着影响拟合模型的异常值,采用了学生化残差。

以下公式通常用于计算学生化残差 -

studentized residual = residual / (standard deviation of residuals * (1 - hii)^(1/2))

其中“残差”是指观测到的响应值与预期响应值之间的差异,“残差标准差”是指残差标准差的估计值,“hii”是指每个数据点的杠杆因子。

用 Python 计算学生化残差

statsmodels 包可用于计算 Python 中的学生化残差。作为说明,请考虑以下内容 -

语法

OLSResults.outlier_test()

其中 OLSResults 指的是使用 statsmodels 的 ols() 方法拟合的线性模型。

df = pd.DataFrame({'rating': [95, 82, 92, 90, 97, 85, 80, 70, 82, 83],
   'points': [22, 25, 17, 19, 26, 24, 9, 19, 11, 16]})

model = ols('rating ~ points', data=df).fit()
stud_res = model.outlier_test()

其中“评级”和“分数”指的是简单线性回归。

算法

  • 导入 numpy、pandas、Statsmodel api。

  • 创建数据集。

  • 对数据集执行简单的线性回归模型。

  • 计算学生化残差。

  • 打印学生化残差。

示例

此处演示了使用 scikit−posthocs 库来运行 Dunn 的测试 -

#import necessary packages and functions
import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import ols

#create dataset
df = pd.DataFrame({'rating': [95, 82, 92, 90, 97, 85, 80, 70, 82, 83], 'points': [22, 25, 17, 19, 26, 24, 9, 19, 11, 16]})

接下来使用 statsmodels OLS 类创建线性回归模型 -

#fit simple linear regression model
model = ols('rating ~ points', data=df).fit()

使用离群值 test() 方法,可以在 DataFrame 中生成数据集中每个观察值的学生化残差 -

#calculate studentized residuals
stud_res = model.outlier_test()

#display studentized residuals
print(stud_res)

输出

  student_resid   unadj_p   bonf(p)
0       1.048218  0.329376  1.000000
1      -1.018535  0.342328  1.000000
2       0.994962  0.352896  1.000000
3       0.548454  0.600426  1.000000
4       1.125756  0.297380  1.000000
5      -0.465472  0.655728  1.000000
6      -0.029670  0.977158  1.000000
7      -2.940743  0.021690  0.216903
8       0.100759  0.922567  1.000000
9      -0.134123  0.897080  1.000000

我们还可以根据学生化残差快速绘制预测变量值 -

语法

x = df['points']
y = stud_res['student_resid']

plt.scatter(x, y)
plt.axhline(y=0, color='black', linestyle='--')
plt.xlabel('Points')
plt.ylabel('Studentized Residuals')

这里我们将使用 matpotlib 库来绘制颜色 = 'black' 和生活方式 = '--' 的图表

算法

  • 导入matplotlib的pyplot库

  • 定义预测变量值

  • 定义学生化残差

  • 创建预测变量与学生化残差的散点图

示例

import matplotlib.pyplot as plt

#define predictor variable values and studentized residuals
x = df['points']
y = stud_res['student_resid']

#create scatterplot of predictor variable vs. studentized residuals
plt.scatter(x, y)
plt.axhline(y=0, color='black', linestyle='--')
plt.xlabel('Points')
plt.ylabel('Studentized Residuals')

输出

如何在Python中计算学生化残差?

结论

识别和评估可能的数据异常值。检查学生化残差可以让您找到与数据总体趋势有很大偏差的点,并探索它们影响拟合模型的原因。识别显着观测值 学生化残差可用于发现和评估有影响力的数据,这些数据对拟合模型有重大影响。寻找高杠杆点。学生化残差可用于识别高杠杆点。杠杆是衡量某个点对拟合模型影响程度的指标。总体而言,使用学生化残差有助于分析和提高回归模型的性能。

以上是如何在Python中计算学生化残差?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:tutorialspoint。如有侵权,请联系admin@php.cn删除
Python vs.C:申请和用例Python vs.C:申请和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

2小时的Python计划:一种现实的方法2小时的Python计划:一种现实的方法Apr 11, 2025 am 12:04 AM

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python:探索其主要应用程序Python:探索其主要应用程序Apr 10, 2025 am 09:41 AM

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

您可以在2小时内学到多少python?您可以在2小时内学到多少python?Apr 09, 2025 pm 04:33 PM

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础?如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础?Apr 02, 2025 am 07:18 AM

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到?如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到?Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

Python 3.6加载Pickle文件报错"__builtin__"模块未找到怎么办?Python 3.6加载Pickle文件报错"__builtin__"模块未找到怎么办?Apr 02, 2025 am 07:12 AM

Python3.6环境下加载Pickle文件报错:ModuleNotFoundError:Nomodulenamed...

如何提高jieba分词在景区评论分析中的准确性?如何提高jieba分词在景区评论分析中的准确性?Apr 02, 2025 am 07:09 AM

如何解决jieba分词在景区评论分析中的问题?当我们在进行景区评论分析时,往往会使用jieba分词工具来处理文�...

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器