基于Lasso回归的实证分析(Python实现代码)

基于Lasso回归的实证分析
一、背景
随着信息化时代的到来,对如证券市场交易数据、多媒体图形图像视频数据、航天航空采集数据、生物特征数据等数据维度远大于样本量个数的高维数据分析逐渐占据重要地位。而在分析高维数据过程中碰到最大的问题就是维数膨胀,也就是通常所说的“维数灾难”问题。研究表明,随着维数的增长,分析所需的空间样本数会呈指数增长。并且在高维数据空间中预测将变得不再容易,同时还容易导致模型的过拟合。因此为了应对高维数据中的维数灾难所带来的过拟合问题,其中一条解决思路是进行数据降维。在数据降维的方法中,Lasso方法是一种既适用于线性情况也适用于非线性情况的数据降维方法。
二、理论基础
Lasso方法是基于惩罚方法对样本数据进行变量选择,通过对原本普通线性回归模型的系数进行压缩,将原本很小的系数直接压缩至0,从而将这部分系数所对应的变量视为非显著性变量,将不显著的变量直接舍弃,达到简化模型的目的。
在这里插入图片描述
在这里插入图片描述
三、数据来源
《统计学习导论-基于R应用》的信用卡违约数据
四、变量选择
在这里插入图片描述

1.被解释变量:Balance信用卡账户余额,记为Y。
2.解释变量:
(1)Income:收入情况。
(2)Limit:信用额度。
(3)Rating:信用等级。
(4)Cards:信用卡数量。
(5)Age:年龄。
(6)Education:判断受教育程度。
(7)Gender:判断性别。
(8)Student:判断是否为学生。
(9)Married:判断婚姻状况。
(10)Ethnicity:划分种族。
在这里插入图片描述

五、建模步骤
在这里插入图片描述
在这里插入图片描述

3.使用Lasso回归进行变量选择
利用Lasso回归模型的交叉验证确定最佳的惩罚项系数λ,基于最佳的λ值重新构建Lasso回归模型来确定解释变量的系数。
在这里插入图片描述

使用交叉验证来选择最佳的调整参数,使用均方误差进行评估,故模型预测准确率较高,均方误差较小(MSE: 0.0012621555901723037)。
绘制正则化路径,可知变量进入模型的先后顺序Rating、Limit、Income、Student_Yes,说明这四个变量对信用卡账户余额的影响效果显著
在这里插入图片描述

前四个进入模型的自变量: [‘Rating’ ‘Limit’ ‘Income’ ‘Student_Yes’]
从拟合结果可知,信用卡账户余额(Balance)Y预测模型中系数系数有7个为0,分别为Cards、Age、Education、Gender_Male、Married_Yes、Ethnicity_Asian、Ethnicity_Caucasian,说明信用卡数量、年龄、受教育程度、性别、婚姻状况、种这五个变量对信用卡账户余额没有显著意义,故Y的回归模型可表达为:
在这里插入图片描述
六、Python实现代码

# -*- coding: utf-8 -*-
"""
Created on Thu May 19 19:30:29 2022

@author: DELL
"""


'''
Lasso变量选择,某些自变量系数估计值压缩为零。
首先构建包含所有自变量的的模型,注意要对属性类型进行因子化,即转换成哑变量。
'''

from sklearn.preprocessing import StandardScaler
import statsmodels.formula.api as smf
import statsmodels.api as sm
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import patsy
pd.set_option("display.max_rows",None)
pd.set_option("display.max_columns",None)
pd.set_option("display.expand_frame_repr",False)
data = pd.read_csv(r'E:\研究生\关于课程\研一下\高维函数型数据分析\作业\第二次作业\datashine-master\data\credit.csv',index_col=0)
print('数据形状:',data.shape)
print('\n数据示例:')
data.head(10)
print("各样本统计量描述")
print(data.describe())


X =
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值