精华内容
下载资源
问答
  • 多元线性回归模型案例
    千次阅读
    2021-09-11 17:49:04

    前言

    之前用过的代码,现在整理一下。

    数据集

    链接: https://pan.baidu.com/s/1Wd3s22GF98CjSJg-P42S3Q
    提取码: d4rw

    程序

    from  numpy import genfromtxt      #genfromtxt函数创建数组表格数据
    import numpy as np
    from sklearn import datasets,linear_model
     
    #读取数据,r后边内容当做完整的字符串,忽略里面的特殊字符
    dataPath = r'data_multi.csv'
    data_multi = genfromtxt(dataPath,delimiter=',')       #将路径下的文本文件导入并转化成numpy数组格式
    print("data_multi:",data_multi)
     
    X = data_multi[:,:-1]      #取所有行和除了最后一列的所有列作为特征向量
    Y = data_multi[:,-1]       #取所有行和最后一列作为回归的值
    print("X:",X)
    print("Y:",Y)
     
    #建立回归模型
    regr = linear_model.LinearRegression()
    regr.fit(X,Y)
    print("coefficients:",regr.coef_)          #b1,...,bp(与x相结合的各个参数)
    print("intercept:",regr.intercept_)        #b0(截面)
    

    结果展示

    data_multi: [[100.    5.    4.    9.3]
     [ 50.    6.    3.    4.8]
     [100.    9.    4.    8.9]
     [100.    3.    2.    6.5]
     [ 50.    4.    2.    4.2]
     [ 80.    5.    2.    6.2]
     [ 75.    8.    3.    7.4]
     [ 65.    4.    4.    6. ]
     [ 90.    2.    3.    7.6]
     [ 90.    6.    2.    6.4]]
    X: [[100.   5.   4.]
     [ 50.   6.   3.]
     [100.   9.   4.]
     [100.   3.   2.]
     [ 50.   4.   2.]
     [ 80.   5.   2.]
     [ 75.   8.   3.]
     [ 65.   4.   4.]
     [ 90.   2.   3.]
     [ 90.   6.   2.]]
    Y: [9.3 4.8 8.9 6.5 4.2 6.2 7.4 6.  7.6 6.4]
    coefficients: [0.06228476 0.09866047 0.80577487]
    intercept: -1.1025622824693189
    
    • 预测
    x_pred = [[102,4,6]]
    y_pred = regr.predict(x_pred)         #预测
    print("y_pred:",y_pred)
    

    y_pred: [10.47977423]

    更多相关内容
  • 通过具体的案例讲解时间序列下多元线性回归在eviews里的操作
  • 基于spss的一元线性回归与多元线性回归案例,个人整理出的,包含了部分案例、实验报告、题目,及部分题目答案,适合作为spss、MATLAB等软件数据分析题目联系
  • 多元线性回归模型案例分析.doc
  • 多元线性回归案例(Python)

    千次阅读 2022-04-11 17:38:23
    目录 1 多元线性回归简介 ...利用多元线性回归模型可以根据多个因素来预测客户价值,当模型搭建完成后,便可对不同价值的客户采用不同的业务策略。 2.1 案例背景 这里以信用卡客户的客户价值为例来解..

    1 多元线性回归简介

    多元线性回归模型可以表示为如下所示的公式。

    其中x1、x2、x3……为不同的特征变量,k1、k2、k3……则为这些特征变量前的系数,k0为常数项。

    2 案例:客户价值预测模型

    利用多元线性回归模型可以根据多个因素来预测客户价值,当模型搭建完成后,便可对不同价值的客户采用不同的业务策略。

    2.1 案例背景

    这里以信用卡客户的客户价值为例来解释客户价值预测的具体含义:客户价值预测就是指预测客户在未来一段时间内能带来多少利润,其利润可能来自信用卡的年费、取现手续费、分期手续费、境外交易手续费等。分析出客户价值后,在进行营销、电话接听、催收、产品咨询等各项业务时,就可以针对高价值客户提供区别于普通客户的服务,以进一步挖掘这些高价值客户的价值,并提高他们的忠诚度。

    2.2 具体代码

    import pandas as pd
    from sklearn.linear_model import LinearRegression
    
    
    df = pd.read_excel('客户价值数据表.xlsx')
    
    
    X = df[['历史贷款金额','贷款次数','学历','月收入','性别']]
    Y = df['客户价值']
    model = LinearRegression()
    model.fit(X,Y)
    
    model.coef_,model.intercept_

    这里通过model.coef_获得的是一个系数列表,分别对应不同特征变量前面的系数,即k1、k2、k3、k4、k5,所以此时的多元线性回归方程如下。

    y=-208+0.057x^1+96x^2+113x^3+0.056x^4+1.98x^5

    3 模型评估

    import statsmodels.api as sm
    X2 = sm.add_constant(X)
    est = sm.OLS(Y,X2).fit()
    est.summary()

    4 线性回归优缺点

    线性回归模型具有如下优缺点。

            ·优点:快速;没有调节参数;可轻易解释;可理解。

            ·缺点:相比其他复杂一些的模型,其预测准确率不高,因为它假设特征和响应之间存在确定的线性关系,这种假设对于非线性的关系,线性回归模型显然不能很好地进行数据建模。

    参考书籍

    《Python大数据分析与机器学习商业案例实战》

    展开全文
  • SPSS多元线性回归分析实例操作步骤-spss做多元线性回归.pdf
  • 多元线性回归模型案例分析---副本.docx
  • 多元线性回归模型案例.doc
  • 多元线性回归模型案例分析(同名7328).pdf
  • 原始数据在这里 1.观察数据 首先,用Pandas打开数据,并进行观察。 import numpy import pandas as pd import matplotlib.pyplot as plt ...我们的问题是得到一个线性的关系,对应PE是样本输出,而AT/V/
  • 根据网络保险保费额度的特点,选取了六个比较重要的因变量和六个比较重要的自变量,利用所获得的数据构建了一个较为适合网络保险信用风险度量的logit 模型,分别对这些因变量采取了逻辑回归分析多元线性回归分析,...

    1. 项目描述

    保险公司对个人投保时或根据历史数据生成的模型来计算个人保费,那么本次我们就以这个模型的求解过程为例来实践下多元线性回归。

    2 数据与简单分析

    数据信息如下图所示:
    数据集下载
    在这里插入图片描述

    我们已经获取到保险公司部分数据,文件名为insurance.csv,文件内容如下。
    我们可以看出数据中共有六个维度:age(年龄),sex(性别),bmi(肥胖指数),children(孩子数量),smoker(是否吸烟),region(居住地)。charges则是当前数据人上年度在保险的额度。
    所以我们可以构建一个六维高维空间来求解这个模型。

    • 相对于年龄来说, 年龄越大, 购买保险的金额应该越大;
    • 相对于性别来说,整体女性的寿命大于男性寿命大约10年, 因此男性的保险额度应该更大。
    • 相对于肥胖指数来说, 肥胖指数越小, 身体状况越不好, 购买保险的金额应该越大;
    • 相对于孩子的数量来说, 孩子的数量越多, 压力越大, 越劳累, 购买保险的金额应该越大;
    • 相对于是否吸烟来说, 吸烟的人寿命远少于不吸烟的寿命, 因此 购买保险的金额应该越大;
    • 相对于地区来说, 地区环境越差, 有雾霾, 则越容易生病, 那么购买保险的金额应该越大;
      最后说明一下,本章中的数据来源主要是来自某保险公司内部的真实历史数据。

    3 项目实践

    完成本项目后,您将知道:

    • 如何从训练数据中估计统计量。
    • 如何从数据估计线性回归系数。
    • 如何使用线性回归预测新数据。
    import pandas as pd
    import numpy as np
    import  matplotlib.pyplot as plt
    from sklearn.preprocessing import PolynomialFeatures
    from sklearn.linear_model import LinearRegression
    
    # 1). 读取csv文件数据;
    filename = 'data/insurance.csv'
    data = pd.read_csv(filename)
    
    # 2). 清洗数据
    reg = LinearRegression()
    x = data[['age', 'sex', 'bmi', 'children', 'smoker', 'region']]
    y = data['charges']
    # 转换数据类型为整形
    x = x.apply(pd.to_numeric, errors='corece')
    y = y.apply(pd.to_numeric, errors='coerce')
    # 填充空值
    x.fillna(0, inplace=True)
    y.fillna(0, inplace=True)
    
    print(x)
    print(y)
    
    
    # 3). 开始建模
    # degree: 多项式的阶数,一般默认是2;
    # interaction_only:如果值为true(默认是false),则会产生相互影响的特征集。
    # include_bias:是否包含偏差列
    poly_features = PolynomialFeatures(degree=2, include_bias=False)
    # 降维
    X_poly = poly_features.fit_transform(x)
    
    
    # 4). 用线性回归进行拟合
    reg.fit(X_poly, y)
    print(reg.coef_)
    print(reg.intercept_)
    
    # 5). 预测
    y_predict = reg.predict(X_poly)
    
    
    # 5). 真实的y值绘制:图形绘制显示
    plt.plot(x['age'], y, 'b.')
    # 预测的y值绘制
    plt.plot(X_poly[:, 0], y_predict, 'r.')
    plt.show()

    预测值与真实值的图像显示:
    在这里插入图片描述

    展开全文
  • 原标题:Python 实战多元线性回归模型,附带原理+代码 作者 | 萝卜来源 | 早起Python( ID:zaoqi-python )「多元线性回归模型」非常常见,是大多数人入门机器学习的第一个案例,尽管如此,里面还是有许多值得学习和...

    原标题:Python 实战多元线性回归模型,附带原理+代码

    作者 | 萝卜

    来源 | 早起Python( ID:zaoqi-python )

    「多元线性回归模型」非常常见,是大多数人入门机器学习的第一个案例,尽管如此,里面还是有许多值得学习和注意的地方。其中多元共线性这个问题将贯穿所有的机器学习模型,所以本文会「将原理知识穿插于代码段中」,争取以不一样的视角来叙述和讲解「如何更好的构建和优化多元线性回归模型」。主要将分为两个部分:

    详细原理

    Python 实战

    Python 实战

    Python 多元线性回归的模型的实战案例有非常多,这里虽然选用的经典的房价预测,但贵在的流程简洁完整,其中用到的精度优化方法效果拔群,能提供比较好的参考价值。

    数据探索

    本文的数据集是经过清洗的美国某地区的房价数据集。

    importpandas aspd

    importnumpy asnp

    importseaborn assns

    importmatplotlib.pyplot asplt

    df = pd.read_csv( 'house_prices.csv')

    df.info;df.head

    参数说明:

    neighborhood/area: 所属街区和面积

    bedrooms/bathrooms: 卧室和浴室

    style: 房屋样式

    多元线性回归建模

    现在我们直接构建多元线性回归模型:

    fromstatsmodels.formula.api importols

    # 小写的 ols 函数才会自带截距项,OLS 则不会

    # 固定格式:因变量 ~ 自变量(+ 号连接)

    lm = ols( 'price ~ area + bedrooms + bathrooms', data=df).fit

    lm.summary

    红框为我们关注的结果值,其中截距项 Intercept 的 P 值没有意义,可以不用管它。

    模型优化

    从上图可以看到,模型的精度较低,因为还有类别变量 neighborhood 和 style 没有完全利用。这里我们先查看一下类别变量的类别分布情况:

    # 类别变量,又称为名义变量,nominal variables

    nominal_vars = [ 'neighborhood', 'style']

    foreachin nominal_vars:

    print( each, ':')

    print(df[ each].agg([ 'value_counts']).T) # Pandas 骚操作

    # 直接 .value_counts.T 无法实现下面的效果

    ## 必须得 agg,而且里面的中括号 [] 也不能少

    print( '='* 35)

    虚拟 变量的设置

    因为类别变量无法直接放入模型,这里需要转换一下,而多元线性回归模型中类别变量的转换最常用的方法之一便是将其转化成虚拟变量。原理其实非常简单,将无法直接用于建模的名义变量转换成可放入模型的虚拟变量的核心就短短八个字:「四散拆开,非此即彼」。下面用一个只有 4 行的微型数据集辅以说明。

    从上表中,不难发现:

    该名义变量有 n 类,就能拆分出 n 个虚拟变量。

    巧妙的使用 0 和 1 来达到 「用虚拟变量列代替原名义变量所在类别」 。

    接下来要做的就是将生成的虚拟变量们放入多元线性回归模型,但要注意的是:「转化后的虚拟变量们需要舍弃一个」,才能得到满秩矩阵。具体原因和有关线性代数的解释可以查看笔者打包好的论文,我们可以理解为,当该名义变量可划分为 n 类时,只需要 n-1 个虚拟变量就已足够获知所有信息了。该丢弃哪个,可根据实际情况来决定。

    因此为原数据集的某名义变量添加虚拟变量的步骤为:

    抽出希望转换的名义变量(一个或多个)

    pandas 的 get_dummies 函数

    与原数据集横向拼接

    注意虚拟变量设置成功后,需要与原来的数据集拼接,这样才能将其一起放进模型。

    再次建模后,发现模型精度大大提升,但潜在的多元共线性问题也随之显现出来。

    在解释模型中虚拟变量的系数之前,我们先消除模型中多元共线性的影响,因为在排除共线性后,模型中的各个自变量的系数又会改变,最终的多元线性回归模型的等式又会不一样。多重线性回归模型的主要假设之一是我们的预测变量(自变量)彼此不相关。我们希望预测变量(自变量)与反应变量(因变量)相关,而不是彼此之间具有相关性。方差膨胀因子 ( Variance Inflation Factor,以下简称 VIF ),是「指解释变量之间存在多重共线性时的方差与不存在多重共线性时的方差之比」。

    上图公 式可以看出在方差膨胀因子的检测中:

    每个自变量都会有一个膨胀因子值 , 最后根据值的大小来选择是否删减。

    既然 表示相关性,是谁跟谁的相关性呢? 是自变量中的某一变量与除它外剩余的自变量进行多元线性回归,取回归结果,即模型精度来作为这个变量与剩余自变量的相关性。听起来可能有点绕,这里举一下实例:用 “面积、卧室数量和浴室数量” 作为自变量来预测房价,在进行自变量的方差膨胀因子的检测时,面积、卧室数和浴室数轮流做单独的因变量,剩下的两个变量作为自变量,来看看这三个自变量中哪个变量对其余两个变量的解释性高。

    越大,如已经到了 0.9,那分母就很小 ,值就等于 10,即表示这个自变量已经同时解释了另外的某个或多个自变量,存在多元共线性,可以考虑删除一些自变量。

    VIF 越大,显示共线性越严重。经验判断方法表明:当 0< VIF <10,不存在多重共线性;当10≤ VIF < 100,存在较强的多重共线性;当 VIF≥ 100,存在严重多重共线性。

    方差膨胀因子的检测

    我们自己来写一个方差膨胀因子的检测函数。

    defvif(df, col_i):

    """

    df: 整份数据

    col_i:被检测的列名

    """

    cols = list(df.columns)

    cols.remove(col_i)

    cols_noti = cols

    formula = col_i + '~'+ '+'.join(cols_noti)

    r2 = ols(formula, df).fit.rsquared

    return1./ ( 1.- r2)

    现在进行检测。

    test_data = results[['area', 'bedrooms', 'bathrooms', 'A', 'B']]

    for i in test_data.columns:

    print(i, 't', vif(df=test_data, col_i=i))

    发现 bedrooms 和 bathrooms 存在强相关性,可能这两个变量是解释同一个问题,方差膨胀因子较大的自变量通常是成对出现的。

    果然,bedrooms 和 bathrooms 这两个变量的方差膨胀因子较高,这里删除自变量 bedrooms 再次进行建模。

    lm = ols(formula='price ~ area + bathrooms + A + B', data=results).fit

    lm.summary

    模型精度稍降,但消除了多元共线性后能够使模型的泛化能力提升。再次进行多元共线性检测。

    test_data = results[['area', 'bedrooms', 'A', 'B']]

    for i in test_data.columns:

    print(i, 't', vif(df=test_data, col_i=i))

    那么多元共线性就只有通过方差膨胀因子才能看的出来吗? 其实并不一定,通过结合散点图或相关稀疏矩阵和模型中自变量的系数也能看出端倪。下图是未处理多元共线性时的自变量系数。

    可以很明显的看出,bathrooms 的参数很可能是有问题的,怎么可能 bathrooms 的数据量每增加一个,房屋总价还减少 1.373*10 的四次方美元呢?简单的画个散点图和热力图也应该知道房屋总价与 bathrooms 个数应该是成正比例关系的。

    模型解释

    多元线性回归模型的可解释性比较强,将模型参数打印出来即可求出因变量与自变量的关系。

    所以最终的建模结果如下,且该模型的精度为0.916。

    另外在等式结果中,截距项 Intercept 和 area, bedrooms 等变量的系数都还好理解;A,B 这两个虚拟变量可能相对困难些。其实根据原理部分的表格来看,如果房屋在 C 区,那等式中 A 和 B 这两个字母的值便是 0,所以这便引出了非常重要的一点:使用了虚拟变量的多元线性回归模型结果中,存在于模型内的虚拟变量都是跟被删除掉的那个虚拟变量进行比较。所以这个结果便表示在其他情况完全一样时(即除虚拟变量外的项) A 区的房屋比 C 区低 8707.18 美元,B 区则比 C 区贵 449896.73.7 美元。当然我们也可以画个线图来查看与检验,发现结果正如模型中 A 与 B 的系数那般显示。

    本文以多元线性回归为基础和前提,在因变量房价与多个自变量的实际观测值建立了多元线性回归模型;分析并检验各个预测变量对因变量的综合线性影响的显著性,并尽可能的消除多重共线性的影响,筛选出因变量有显著线性影响的自变量,对基准模型进行优化,并对各自变量相对重要性进行评定,进而提升了回归模型的预测精度。返回搜狐,查看更多

    责任编辑:

    展开全文
  • 今天来做一个R语言的多元线性回归的实例:
  • SPSS--回归-多元线性回归模型案例解析!(一)

    万次阅读 多人点赞 2014-03-19 17:56:40
    SPSS--回归-多元线性回归模型案例解析!(一)  多元线性回归,主要是研究一个因变量与多个自变量之间的相关关系,跟一元回归原理差不多,区别在于影响因素(自变量)更多些而已,例如:一元线性回归方程 为: ...
  • 多元线性回归,主要是研究一个因变量与多个自变量之间的相关关系,跟一元回归原理差不多,区别在于影响因素(自变量)更多些而已,例如:一元线性回归方程 为:毫无疑问,多元线性回归方程应该为:上图中的 x1, x2, xp...
  • 管理统计学多元线性回归分析案例应用步骤解析及EXCEL操作详解PPT学习教案.pptx
  • 掌握一元线性回归、多元线性回归模型的建模原理、估计及检验方法。 能运用相应的统计软件(SAS\SPSS\R)进行计算、分析。 实验内容 某大型牙膏制造企业为了更好地拓展产品市场,有效地管理库存,公司董事会要求销售...
  • 那么此时需要建立多个变量的多元线性回归方程。下面以植被覆盖度的案例来进行分析案例:年尺度的综合因素对植被覆盖度的影响分析 注: 因变量为植被覆盖度 自变量为温度、降水量和积温 工具:excel (1) 将数据...
  • 基于MATLAB的多元回归分析及应用案例
  • 今天小编就为大家分享一篇sklearn+python:线性回归案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 线性回归模型属于经典的统计学模型,该模型的应用场景是根据已知的变量(自变量)来预测某个连续的数值变量(因变量)。例如,餐厅根据每天的营业数据(包括菜谱价格、就餐人数、预定人数、特价菜折扣等)预测就餐规模或...
  • 多元线性回归实验案例,利用eviews软件进行相关操作,并进行简单经济意义解释。
  • 机器学习入门经典案例,《波斯顿房价预测》通过多元线性回归建立模型进行机器学习从而对该模型进行评估。
  • 点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤寥落古行宫,宫花寂寞红。前言「多元线性回归模型」非常常见,是大多数人入...
  • 多元线性回归分析(R语言)

    万次阅读 多人点赞 2018-12-07 13:35:10
    一、多元线性回归模型 设变量Y与X1,X2,……,Xp之间有线性关系   其中 , 和 是未知参数,p≥2,称上公式为多元线性回归模型。 二、参数估计 我们根据多元线性回归模型,认为误差 应是比较小的,然后对 ...
  • R语言与多元线性回归分析计算实例

    万次阅读 多人点赞 2019-11-16 12:37:33
    为进一步分析回归模型,我们画出y与x1和y与x2散点图。从散点图上可以看出,对于y与x1,用直线拟合较好。而对于y与x2,则用二次曲线拟合较好,如下图: 绘制x1与y的散点图和回归直线 绘制x2与y的散点图和...
  • 多元线性回归模型

    千次阅读 2021-04-08 16:05:00
    多元线性回归一. 基础1. 参数定义2. 参数学习算法① 最小二乘法② 梯度下降法③ 共轭梯度法 一. 基础 线性回归(Linear Regression)通过学习标记数据学得一多元线性模型能够尽可能准确地预测实值输出标记。本篇将以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,122
精华内容 1,648
关键字:

多元线性回归模型案例

友情链接: pssociatihe.zip