首页 > 其他分享 >多元线性回归

多元线性回归

时间:2023-04-27 22:33:36浏览次数:35  
标签:plt vif df 回归 多元 3.3 线性 import self

1 绪 论

2 预备知识

  2.1 多元线性回归分析法基本思想

  2.2 多元线性回归分析法的理论模型

  2.3 多元线性回归分析的计算步骤

    2.3.1 参数估计

    2.3.2 假设检验

  2.4 Python语言操作步骤

3 多元线性回归模型的建立与分析

  3.1 数据收集与分析

  3.2 模型构建

  3.3 计算及结果分析

    3.3.1 模型求解

    3.3.2 单特征与目标的可视化

    3.3.3 模型结果分析

    3.3.4 相关系数检验

    3.3.5 多重共线性检验

    3.3.6 回归系数的显著性检验

    3.3.7 模型验证

4 模型的评价

  4.1 模型的优点

  4.2 模型的缺点

  4.3 模型的改进

5 结论与建议

参考文献:……

 

参考论文:

链接:https://pan.baidu.com/s/1vxPAtjoNM1V86oap9KihwA
提取码:1573

 1 import pandas as pd
 2 import numpy as np
 3 import matplotlib.pyplot as plt
 4 from sklearn.model_selection import train_test_split
 5 from sklearn.model_selection import cross_val_score      #导入交叉验证模块
 6 from statsmodels.formula.api import ols  #线性回归模型,小写的 ols 函数才会自带截距项,OLS 则不会
 7 import seaborn as sns
 8 plt.rcParams['font.sans-serif'] = ['SimHei']
 9 plt.rcParams['axes.unicode_minus'] = False
10 
11 class Multiple_linear_regression():
12     def __init__(self,path):
13         try:
14             self.df = pd.read_csv(path)
15         except:
16             self.df=pd.read_excel(path)
17         print(self.df.head())
18 
19     def Single_factor_scatter_plot(self):
20         for i in self.df:
21             if i==self.df.iloc[:,-1].name:
22                 continue
23             else:
24                 self.df.plot(x=i, y=self.df.iloc[:,-1].name, kind='scatter', title=f'因素{i}与{self.df.iloc[:,-1].name}的散点图')
25                 plt.show()
26 
27     def Correlation_coefficient_matrix_and_thermodynamic_diagram(self):
28         # df.corr().to_csv('相关系数矩阵.csv')
29         print(self.df.corr())
30         heatmap = sns.heatmap(self.df.corr(), cmap='inferno', center=0.01)
31         plt.show()
32 
33     def Vif_test(self):
34         # 共线性检测,vif检验,方差膨胀因子
35         def vif(df, col_i):
36             """
37             df: 整份数据
38             col_i:被检测的列名
39             """
40             cols = list(df.columns)
41             cols.remove(col_i)
42             cols_noti = cols
43             formula = col_i + '~' + '+'.join(cols_noti)
44             r2 = ols(formula, df).fit().rsquared
45             # 其实就是多元线性回归建模步骤,只是取出了参数 R 平方而已
46             test = 1. / (1. - r2)
47             return test
48 
49         print('vif检验结果')
50         print('  变量            vif检验值')
51         vif_value = []
52         for i in self.df:
53             print(i.center(7) + '    ', str(vif(df=self.df, col_i=i)))
54             vif_value.append(vif(df=self.df, col_i=i))
55         plt.bar([x for x in self.df], vif_value, color='teal')
56         plt.axhline(10, color='red', lw=2, label="参考线")
57         plt.title("VIF检验结果")
58         plt.xlabel("变量")
59         plt.ylabel("VIF_value")
60         plt.show()
61 
62     def Model(self):
63         st=''
64         for k in self.df:
65             if k == self.df.iloc[:, -1].name:
66                 continue
67             else:
68                 st += ''.join(k) + '+'
69         xy=f'{self.df.iloc[:, -1].name}~{st[0:-1]}'
70         lm = ols(xy, data=self.df).fit()
71         print(lm.summary())
源代码类,命名为MLR
1 import MLR
2 a=MLR.Multiple_linear_regression(path='house.csv')
3 
4 a.Single_factor_scatter_plot()
5 a.Correlation_coefficient_matrix_and_thermodynamic_diagram()
6 a.Vif_test()
7 a.Model()
调用类

 

标签:plt,vif,df,回归,多元,3.3,线性,import,self
From: https://www.cnblogs.com/hongbao/p/17360428.html

相关文章

  • 线性回归
    线性回归线性模型利用特征的线性函数进行预测,这里的线性指的是参数是线性的。一、普通最小二乘法线性回归(OLS)是最简单&最经典的线性方法,模型寻找截距和系数,使得模型对训练集的预测值与真实值之间的均方误差(MSE)最小,但是线性回归没有办法控制模型的复杂度(模型有大量的非0参数)。......
  • 多元时间序列滚动预测:ARIMA、回归、ARIMAX模型分析|附代码数据
    原文链接:http://tecdat.cn/?p=22849最近我们被客户要求撰写关于多元时间序列滚动预测的研究报告,包括一些图形和统计输出。当需要为数据选择最合适的预测模型或方法时,预测者通常将可用的样本分成两部分:内样本(又称"训练集")和保留样本(或外样本,或"测试集")。然后,在样本中估计模型,并......
  • 数据分享|逻辑回归、随机森林、SVM支持向量机预测心脏病风险数据和模型诊断可视化|附
    原文链接:http://tecdat.cn/?p=24973最近我们被客户要求撰写关于心脏病的研究报告,包括一些图形和统计输出。世界卫生组织估计全世界每年有1200万人死于心脏病。在美国和其他发达国家,一半的死亡是由于心血管疾病简介心血管疾病的早期预后可以帮助决定改变高危患者的生活方式,从......
  • 机器学习之——回归(regression)、梯度下降(gradient descent)
      本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com。如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任。前言:  上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两......
  • 逻辑结构之一线性表
    1.线性表的定义线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时是一个空表。若用L命名线性表,则其一般表示为L=(a1,a2,…, ai,ai+1,…,an),式中a1称为表头元素,有且仅有一个直接后继,an称为表尾元素有且仅有一个直接前驱,其他元素有且仅有一个直接后继和一......
  • 立升非线性节点探测器,助力排查不可见的窃密隐患
    非线性结点探测器是一种现代化中非常重要的环境检测装备,用于探测隐藏的半导体结点,主要是P-N结。传统的X射线检查难以发现埋藏在墙体、家具、走道等隐蔽位置的窃听器、针孔摄像头以及疑似爆炸装置中的电子引爆电路。为了应对这些场景的检测需求,相应的无损检测手段非常必要。立升非线......
  • 我国能源消耗的影响模型分析—基于多元线性回归与岭回归模型
    我国能源消耗的影响模型分析—基于多元线性回归与岭回归模型⭕AdamCY888文章目录我国能源消耗的影响模型分析—基于多元线性回归与岭回归模型一、引言二、回归模型简介(一)多元线性回归模型原理(二)建模步骤三、实证分析(一)构建指标及获取数据(二)......
  • 贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据
    原文链接:http://tecdat.cn/?p=22702最近我们被客户要求撰写关于贝叶斯分位数回归的研究报告,包括一些图形和统计输出。贝叶斯回归分位数在最近的文献中受到广泛关注,本文实现了贝叶斯系数估计和回归分位数(RQ)中的变量选择,带有lasso和自适应lasso惩罚的贝叶斯摘要还包括总结结果、......
  • 数据结构之“线性表(数组)”
    前言:线性表:几个具有相同特性的数据元素的有限序列,线性表在逻辑上是线性结构,也就是连续的一条直线顾名思义“线性表”成一条线的表,在IT领域的数据结构中也有很多能看到的线性表,如“人员花名册”,“网络商品”,“图书名单系统”等等,都是一个个信息紧跟着排好供我们选择浏览等等~但这些......
  • 2-2线性回归实现
    线性回归实现%matplotlibinlineimportrandomfrommxnetimportautograd,np,npxfromd2limportmxnetasd2l生成数据集根据带有噪声的线性模型构造一个人造数据集。任务是使用这个有限样本的数据集来恢复这个模型的参数。##使用线性模型参数w=[2,-3.4]T,b=4.2和噪......