Python统计实战:一题搞定多元线性回归、共线性、相对重要性分析

本文主要是介绍Python统计实战:一题搞定多元线性回归、共线性、相对重要性分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能,从而更快地掌握解决问题所需的能力。

(以下练习题来源于《统计学—基于Python》。联系获取完整数据和Python源代码文件。)


练习题

为了分析影响不良贷款的因素,一家商业银行在所属的多家分行中随机抽取25家,得到的不良贷款、贷款余额、应收贷款、贷款项目个数、固定资产投资等有关数据如下(前3行和后3行)。

不良贷款贷款余额应收贷款贷款项目个数固定资产投资
0.967.36.8551.9
1.1111.319.81690.9
4.81737.71773.7
...............
1.2109.610.31467.9
7.2196.215.81639.7
3.2102.2121097.1

(1)用不良贷款作为因变量,建立多元线性回归模型。

(2)分析模型中是否存在共线性。

(3)比较4个自变量在不良贷款中的相对重要性。


计算结果与分析

(1)用不良贷款作为因变量,建立多元回归模型,结果如下图所示。

# 拟合多元线性回归模型
from statsmodels.formula.api import ols
import pandas as pd
df = pd.read_csv('exercise10_3.csv')model_m = ols('不良贷款 ~ 贷款余额+应收贷款+贷款项目个数+固定资产投资', data = df).fit()
print(model_m.summary())

(2)计算VIF与容忍度判断分析模型中是否存在共线性。计算结果如下,VIF和容忍度显示,共线性均在可接受的范围内。

import pandas as pd
import statsmodels.api as sm
from statsmodels.stats.outliers_influence import variance_inflation_factor# 读取数据
df = pd.read_csv('exercise10_3.csv')# 选择自变量列
X = df[['贷款余额', '应收贷款', '贷款项目个数', '固定资产投资']]# 添加常数项
X = sm.add_constant(X)# 计算VIF
vif_data = pd.DataFrame()
vif_data["feature"] = X.columns
vif_data["VIF"] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])]# 计算容忍度
vif_data["tolerance"] = 1 / vif_data["VIF"]print(vif_data)

(3)计算标准化回归系数,比较 4 个自变量在不良贷款中的相对重要性。结果如下图所示。按标准化回归系数的绝对值大小排序为贷款余额最大,其次是固定资产投资、应收贷款和贷款项目个数。因此,在4个自变量中,贷款余额是影响不良贷款最重要的变量。

# 计算标准化回归系数,比较 4 个自变量在不良贷款中的相对重要性
import pandas as pd
from statsmodels.formula.api import ols
from scipy import stats
df = pd.read_csv('exercise10_3.csv')z = stats.zscore(df, ddof = 1)  # 数据框标准化
df_z = pd.DataFrame(z, columns = ['不良贷款', '贷款余额', '应收贷款', '贷款项目个数', '固定资产投资']) # 将数组转换成数据框并重新命名为df
model_z = ols('不良贷款 ~ 贷款余额+应收贷款+贷款项目个数+固定资产投资', data = df_z).fit()
print(model_z.summary())

都读到这里了,不妨关注、点赞一下吧!

这篇关于Python统计实战:一题搞定多元线性回归、共线性、相对重要性分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085552

相关文章

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3