返回顶部
首页 > 资讯 > 后端开发 > Python >使用python怎么实现逐步回归
  • 344
分享到

使用python怎么实现逐步回归

2023-06-14 10:06:55 344人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本篇文章为大家展示了使用python怎么实现逐步回归,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。算法介绍逐步回归是一种线性回归模型自变量选择方法;逐步回归的基本思想是将变量逐个引入模型,每引入一个

本篇文章为大家展示了使用python怎么实现逐步回归,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

算法介绍

逐步回归是一种线性回归模型自变量选择方法;
逐步回归的基本思想是将变量逐个引入模型,每引入一个解释变量后都要进行F检验,并对已经选入的解释变量逐个进行t检验,当原来引入的解释变量由于后面解释变量的引入变得不再显著时,则将其删除。以确保每次引入新的变量之前回归方程中只包含显著性变量。这是一个反复的过程,直到既没有显著的解释变量选入回归方程,也没有不显著的解释变量从回归方程中剔除为止。以保证最后所得到的解释变量集是最优的。
这里我们选择赤池信息量(Akaike InfORMation Criterion)来作为自变量选择的准则,赤池信息量(AIC)达到最小:基于最大似然估计原理的模型选择准则。

数据情况

案例

在现实生活中,影响一个地区居民消费的因素有很多,例如一个地区的人均生产总值、收入水平等等,本案例选取了9个解释变量研究城镇居民家庭平均每人全年的消费新支出y,解释变量为:
x1——居民的食品花费
x2——居民的衣着消费
x3——居民的居住花费
x4——居民的医疗保健花费
x5——居民的文教娱乐花费
x6——地区的职工平均工资
x7——地区的人均GDP
x8——地区的消费价格指数
x9——地区的失业率(%)

数据

使用python怎么实现逐步回归

代码

# -*- coding: UTF-8 -*-import numpy as npimport statsmodels.api as smimport statsmodels.formula.api as smffrom statsmodels.stats.api import anova_lmimport matplotlib.pyplot as pltimport pandas as pdfrom patsy import dmatricesimport itertools as itimport random# Load data 读取数据df = pd.read_csv('data3.1.csv',encoding='gbk')print(df)target = 'y'variate = set(df.columns) #获取列名variate.remove(target) #去除无关列variate.remove('地区')#定义多个数组,用来分别用来添加变量,删除变量x = []variate_add = []variate_del = variate.copy()# print(variate_del)y = random.sample(variate,3) #随机生成一个选模型,3为变量的个数print(y)#将随机生成的三个变量分别输入到 添加变量和删除变量的数组for i in y: variate_add.append(i) x.append(i) variate_del.remove(i)global aic #设置全局变量 这里选择AIC值作为指标formula="{}~{}".format("y","+".join(variate_add)) #将自变量名连接起来aic=smf.ols(formula=formula,data=df).fit().aic #获取随机函数的AIC值,与后面的进行对比print("随机化选模型为:{}~{},对应的AIC值为:{}".format("y","+".join(variate_add), aic))print("\n")#添加变量def forwark(): score_add = [] global best_add_score global best_add_c print("添加变量") for c in variate_del:  formula = "{}~{}".format("y", "+".join(variate_add+[c]))  score = smf.ols(formula = formula, data = df).fit().aic  score_add.append((score, c)) #将添加的变量,以及新的AIC值一起存储在数组中    print('自变量为{},对应的AIC值为:{}'.format("+".join(variate_add+[c]), score)) score_add.sort(reverse=True) #对数组内的数据进行排序,选择出AIC值最小的 best_add_score, best_add_c = score_add.pop()  print("最小AIC值为:{}".format(best_add_score)) print("\n")#删除变量def back(): score_del = [] global best_del_score global best_del_c print("剔除变量") for i in x:  select = x.copy() #copy一个集合,避免重复修改到原集合  select.remove(i)  formula = "{}~{}".format("y","+".join(select))  score = smf.ols(formula = formula, data = df).fit().aic  print('自变量为{},对应的AIC值为:{}'.format("+".join(select), score))  score_del.append((score, i)) score_del.sort(reverse=True) #排序,方便将最小值输出 best_del_score, best_del_c = score_del.pop() #将最小的AIC值以及对应剔除的变量分别赋值 print("最小AIC值为:{}".format(best_del_score)) print("\n")print("剩余变量为:{}".format(variate_del))forwark()back()while variate:  #  forwark()#  back() if(aic < best_add_score < best_del_score or aic < best_del_score < best_add_score):  print("当前回归方程为最优回归方程,为{}~{},AIC值为:{}".format("y","+".join(variate_add), aic))  break elif(best_add_score < best_del_score < aic or best_add_score < aic < best_del_score):  print("目前最小的aic值为{}".format(best_add_score))  print('选择自变量:{}'.format("+".join(variate_add + [best_add_c])))   print('\n')  variate_del.remove(best_add_c)  variate_add.append(best_add_c)  print("剩余变量为:{}".format(variate_del))  aic = best_add_score  forwark() else:  print('当前最小AIC值为:{}'.format(best_del_score))  print('需要剔除的变量为:{}'.format(best_del_c))  aic = best_del_score #将AIC值较小的选模型AIC值赋给aic再接着下一轮的对比  x.remove(best_del_c) #在原集合上剔除选模型所对应剔除的变量  back()

结果

使用python怎么实现逐步回归

使用python怎么实现逐步回归

使用python怎么实现逐步回归

上述内容就是使用Python怎么实现逐步回归,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网Python频道。

--结束END--

本文标题: 使用python怎么实现逐步回归

本文链接: https://lsjlt.com/news/270025.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用python怎么实现逐步回归
    本篇文章为大家展示了使用python怎么实现逐步回归,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。算法介绍逐步回归是一种线性回归模型自变量选择方法;逐步回归的基本思想是将变量逐个引入模型,每引入一个...
    99+
    2023-06-14
  • 如何用python做逐步回归
    目录算法介绍数据情况案例数据代码结果算法介绍 逐步回归是一种线性回归模型自变量选择方法; 逐步回归的基本思想是将变量逐个引入模型,每引入一个解释变量后都要进行F检验,并对已经选入的...
    99+
    2024-04-02
  • R语言如何实现前向逐步回归
    这篇文章主要介绍了R语言如何实现前向逐步回归,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前向逐步回归原理前向逐步回归的过程是:遍历属性的一列子集,选择使模型效果最好的那一列...
    99+
    2023-06-20
  • python的自变量选择(所有子集回归,后退法,逐步回归)
    目录1、为什么需要自变量选择?2、自变量选择的几个准则(1)自由度调整复决定系数达到最大(2)赤池信息量AIC达到最小3、所有子集回归(1)算法思想(2)数据集情况(3)代码部分(4...
    99+
    2024-04-02
  • Python怎么实现线性回归
    Python怎么实现线性回归,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、概述(1)人工智能学习        &n...
    99+
    2023-06-26
  • 详解R语言实现前向逐步回归(前向选择模型)
    目录前向逐步回归原理数据导入并分组导入数据特征与标签分开存放前向逐步回归构建输出特征集合从空开始一次创建属性列表模型效果评估前向逐步回归原理 前向逐步回归的过程是:遍历属性的一列子集...
    99+
    2024-04-02
  • python一元线性回归怎么实现
    在Python中,可以使用NumPy和Scikit-learn库来实现一元线性回归。以下是一元线性回归的实现步骤:1. 导入所需的库...
    99+
    2023-08-18
    python
  • python多元线性回归怎么实现
    在Python中,可以使用`scikit-learn`库来实现多元线性回归。首先,需要导入所需的库和模块:```pythonfrom...
    99+
    2023-08-18
    python
  • Logistic回归(逻辑回归)及python代码实现
    文章目录 Logistic(Logistic Regression,LR)回归原理讲解参数计算 python代码实现生成数据集不使用其他库实现定义激活函数(标准Logistic函数即Sig...
    99+
    2023-10-24
    回归 逻辑回归 人工智能 python 机器学习 分类
  • 线性回归与岭回归python代码实现
      在线性回归中我们要求的参数为: 详细的推导可以参见:http://blog.csdn.net/weiyongle1996/article/details/73727505 所以代码实现主要就是实现上式,python代码如下: i...
    99+
    2023-01-31
    线性 代码 python
  • 使用pytorch实现线性回归
    本文实例为大家分享了pytorch实现线性回归的具体代码,供大家参考,具体内容如下 线性回归都是包括以下几个步骤:定义模型、选择损失函数、选择优化函数、 训练数据、测试 ...
    99+
    2024-04-02
  • 怎么使用Python线性回归方法
    这篇文章主要讲解了“怎么使用Python线性回归方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python线性回归方法”吧!来说说约定的符号,线性回归参数主要由斜率和截距组成,这...
    99+
    2023-06-02
  • python异步回调怎么实现
    在Python中,可以使用asyncio模块来实现异步回调。asyncio是Python 3.4及以上版本内置的异步IO框架。 下面...
    99+
    2024-02-29
    python
  • 手动以及使用torch.nn实现logistic回归和softmax回归
    其他文章 手动以及使用torch.nn实现logistic回归和softmax回(当前文章)手动以及使用torch.nn实现前馈神经网络实验 文章目录 任务一、Pytorch基本操作考察1.1...
    99+
    2023-10-24
    回归 深度学习 pytorch python
  • Python如何实现岭回归
    这篇文章主要介绍“Python如何实现岭回归”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何实现岭回归”文章能帮助大家解决问题。1 概述1.1 线性回归对于一般地线性回归问题,参数的求...
    99+
    2023-06-26
  • Python回归树如何实现
    本篇内容介绍了“Python回归树如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先导入库import pandas&nb...
    99+
    2023-06-30
  • pytorch使用nn.Moudle实现逻辑回归
    本文实例为大家分享了pytorch使用nn.Moudle实现逻辑回归的具体代码,供大家参考,具体内容如下 内容 pytorch使用nn.Moudle实现逻辑回归 问题 loss下降不...
    99+
    2024-04-02
  • python实现线性回归的代码怎么写
    这篇文章主要介绍“python实现线性回归的代码怎么写”,在日常操作中,相信很多人在python实现线性回归的代码怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python实现线性回归的代码怎么写”的疑...
    99+
    2023-06-29
  • 使用R语言怎么实现一个线性回归
    今天就跟大家聊聊有关使用R语言怎么实现一个线性回归,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一...
    99+
    2023-06-08
  • pytorch逻辑回归实现步骤详解
    目录1. 导入库2. 定义数据集2.1 生成数据2.2 设置label3. 搭建网络+优化器4. 训练5. 绘制决策边界6. 代码1. 导入库 机器学习的任务分为两大类:分类和回归 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作