精华内容
下载资源
问答
  • 众所周知,对于线性模型Y=Xβ+εY=X\beta+\varepsilonY=Xβ+ε,人们往往习惯于使用均值回归。但是均值回归往往更关注的只是均值,对于数据的“其他部位”往往照顾不够。有时不能较为客观地反映一组数据的各个层次的

    一、为什么要使用分位数回归?

           众所周知,对于线性模型 Y = X β + ε Y=X\beta+\varepsilon Y=Xβ+ε,人们往往习惯于使用均值回归。但是均值回归往往更关注的只是均值,对于数据的“其他部位”往往照顾不够。有时不能较为客观地反映一组数据的各个层次的实际情况。比如我是一名还在读大三的本科生,我和当前的世界首富埃隆▪马斯克人均财富千亿美元级别,显然这个均值对于反映我的财富水平来说是毫无意义的,甚至是有信息误导的作用。但是如果试想使用分位数回归,那我就可以避免被马斯克平均了。
           我们知道在均值回归的普通最小二乘法中,我们是通过求残差的平方和最小来估计参数的。而在分位数回归中我们通常求残差的绝对值的加权求和最小来估计参数。就我目前了解,这样做的目的之一是减小离群点的大误差对整体回归估计的影响。例如,通常离群点处的残差是远远大于1的,在这种情况下残差的绝对值就要远小于残差的平方值,所以使用残差的绝对值可以减少离群点处的误差对整体回归的影响,而这也算是我们进行分位数回归的初衷之一。
           分位数回归通常是采用最小一乘法,而最小一乘法对误差项 ε \varepsilon ε并没有要求其服从正态分布,所以相比于均值回归通常采用的最小二乘法对误差 ε \varepsilon ε要求服从正态分布来说,最小一乘法的误差 ε \varepsilon ε更具有普遍性。
           总的来说相比于均值回归,(1)分位数回归对数据分布的情况掌握的更全面客观。(2)使用分位数回归,离群点对于数据整体的影响要比较使用均值回归小的多。所以我们也可以说分位数回归更加稳健。(3)分位数回归对于误差项更具有普适性。

    二、分位数回归基本模型

    Y ( θ ) = X β ( θ ) + ε ( θ ) (1) Y^{(\theta)}=X\beta^{(\theta)}+\varepsilon^{(\theta)} \tag{1} Y(θ)=Xβ(θ)+ε(θ)(1)
           其中 θ \theta θ为分位数,对于实随机变量 Y Y Y,其右连续分布函数为 F ( y ) = P ( Y ≤ y ) F(y)=P(Y\leq y) F(y)=P(Yy), Y Y Y θ \theta θ分位数函数为 F − 1 ( θ ) = i n f ( y : F ( y ) ≥ θ ) F^{-1}(\theta)=inf(y:F(y)\ge \theta) F1(θ)=inf(y:F(y)θ),也即第 100 θ % 100\theta\% 100θ% y y y
           其中, Y ( θ ) = [ y 1 y 2 ⋮ y n ] , X = [ 1 x 11 ⋯ x 1 p 1 x 21 ⋯ x 2 p ⋮ ⋮ ⋱ ⋮ 1 x n 1 ⋯ x n p ] β ( θ ) = [ β 0 β 1 ⋮ β p ] , ε ( θ ) = [ ε 1 ε 2 ⋮ ε n ] Y^{(\theta)}=\left[ \begin{matrix} y_{1} \\ y_{2} \\ \vdots \\ y_{n} \end{matrix} \right] ,X=\left[ \begin{matrix} 1&x_{11}&\cdots&x_{1p} \\ 1&x_{21}&\cdots&x_{2p} \\ \vdots&\vdots&\ddots&\vdots \\ 1 &x_{n1}&\cdots&x_{np} \end{matrix} \right]\\ \beta^{(\theta)}=\left[ \begin{matrix} \beta_{0} \\ \beta_{1} \\ \vdots \\ \beta_{p} \end{matrix} \right],\varepsilon^{(\theta)}=\left[ \begin{matrix} \varepsilon_{1} \\ \varepsilon_{2} \\ \vdots \\ \varepsilon_{n} \end{matrix} \right] Y(θ)=y1y2yn,X=111x11x21xn1x1px2pxnpβ(θ)=β0β1βp,ε(θ)=ε1ε2εn

    三、分位数回归估计–线性规划

    3.1损失函数

           定义损失函数为 ρ θ ( ε ) = ε ( θ − I ( ε ) ) (2) \rho_{\theta}(\varepsilon)=\varepsilon(\theta-I(\varepsilon))\tag{2} ρθ(ε)=ε(θI(ε))(2)
           其中,
    I ( ε ) = { 0 , ε ≥ 0 1 , ε < 0 (3) I(\varepsilon)= \begin{cases} 0, \varepsilon\ge0 \\ 1, \varepsilon<0 \end{cases}\tag{3} I(ε)={0,ε01,ε<0(3)

    3.2目标函数

           一般地,根据 K o e n k e r ( 1978 ) Koenker(1978) Koenker(1978),对于 θ \theta θ分位数回归,我们的目标函数通常采用如下函数:
    min ⁡ β ∈ R m ∑ i = 1 n ρ θ ( y i − x i ′ β ) (4) \min_{\beta\in R^{m}}\sum_{i=1}^{n}\rho_{\theta}(y_{i}-x_{i}'\beta)\tag{4} βRmmini=1nρθ(yixiβ)(4)

    3.3线性规划

           对于式 ( 4 ) (4) (4),我们可以用另一种等价形式表达: min ⁡ β ∈ R m ∑ i = 1 n [ θ u i + ( 1 − θ ) v i ] (5) \min_{\beta\in R^{m}}\sum_{i=1}^{n}[\theta u_{i}+(1-\theta)v_{i}]\tag{5} βRmmini=1n[θui+(1θ)vi](5)
           其中 u i , v i u_{i},v_{i} ui,vi分别是 ( y i − x i ′ β ) (y_{i}-x_{i}'\beta) (yixiβ)的正部和负部:
    u i = { y i − x i ′ β , y i − x i ′ β ≥ 0 0 , y i − x i ′ β < 0 (6) u_{i}=\begin{cases} y_{i}-x_{i}'\beta, y_{i}-x_{i}'\beta\ge0 \\ \quad\quad\quad0, y_{i}-x_{i}'\beta<0 \end{cases}\tag{6} ui={yixiβ,yixiβ00,yixiβ<0(6)
    v i = { 0 , y i − x i ′ β ≥ 0 y i − x i ′ β , y i − x i ′ β < 0 (7) v_{i}=\begin{cases} \quad\quad\quad0, y_{i}-x_{i}'\beta\ge0 \\ y_{i}-x_{i}'\beta, y_{i}-x_{i}'\beta<0 \end{cases}\tag{7} vi={0,yixiβ0yixiβ,yixiβ<0(7)
           我们知道,一个函数等于它的正部 − - 负部,一个函数的绝对值等于它的正部 + + +负部。所以,我们可以得到下面的线性规划:
    { min ⁡ ∑ i = 1 n [ θ u i + ( 1 − θ ) v i ] x i ′ β + u i − v i = y i β ∈ R m , u i ≥ 0 , v i ≥ 0 , i = 1 , 2 , ⋯   , n (8) \begin{cases} \min\sum_{i=1}^{n}[\theta u_{i}+(1-\theta)v_{i}]\\ x_{i}'\beta+u_{i}-v_{i}=y_{i}\\ \beta\in R^{m},u_{i}\ge0,v_{i}\ge0,i=1,2,\cdots,n \end{cases}\tag{8} mini=1n[θui+(1θ)vi]xiβ+uivi=yiβRm,ui0,vi0,i=1,2,,n(8)
           对于该线性规划,
    { A = [ X I n − I n ] , B = Y C = [ 0 1 × ( p + 1 ) , θ 1 × n , ( 1 − θ ) 1 × n ] (9) \begin{cases}A=\left[\begin{matrix} X&I_{n}&-I_{n} \end{matrix} \right],B=Y \\ C=[0_{1\times(p+1)},\theta_{1\times n},(1-\theta)_{1\times n}]\end{cases}\tag{9} {A=[XInIn],B=YC=[01×(p+1),θ1×n,(1θ)1×n](9)

    3.4回归算法

    s t e p ( 1 ) step(1) step(1):输入回归数据 X X X Y Y Y
    s t e p ( 2 ) step(2) step(2):根据 ( 9 ) (9) (9)计算出线性规划的相关矩阵 A , B , C A,B,C A,B,C
    s t e p ( 3 ) step(3) step(3):将 A , B , C A,B,C A,B,C带入线性规划算法模块,求得最优解 ( β , u , v ) T (\beta,u,v)^{T} (β,u,v)T

    注:关于相关的线性规划算法本文不再赘述。

    四、实际案例分析与python编程计算

    4.1引入数据集

           我们以著名的 H a l d Hald Hald数据为例。
    在这里插入图片描述

    图4.1.1

    4.2计算 β ^ \widehat{\beta} β

           下面给出计算多元线性模型分位数回归方程完整 p y t h o n python python源代码:

    import pandas as pd
    import numpy as np
    from scipy import optimize
    #----------------------多元线性模型的分位数回归---------------------------------------------------------
    
    #导入数据
    dataset1=pd.read_excel('Hald.xlsx')
    dataset2=pd.read_excel('Hald.xlsx')
    
    #输入分位数theta
    theta=[0.1,0.25,0.5,0.75,0.9]
    #计算X,Y
    Y=dataset1['Y'].values
    dataset2['Y']=1
    X=dataset2.values
    
    #计算A,B
    n=len(X)
    B=Y
    In=np.eye(n)
    A=np.hstack((X,In,-In))
    p=len(X[0])-1
    l=np.ones(n,np.int)
    o=np.zeros(p+1,np.int)
    
    #给出线性规划的自变量取值范围
    b=[]
    for i in range(p+1):
        b.append(((None,None)))
    for i in range(2*n):
        b.append((0,None))
    
    #使用optimize包的linprog函数求解线性规划
    for i in theta:
        C = np.hstack((o, i * l, (1 - i) * l))
        r = optimize.linprog(C,A_eq=A,b_eq=B,bounds=b)
        x=r.x
        #计算β估计
        beta=[]
        print('多元线性模型的{}分位数回归方程为:\ny='.format(i), end='')
        for i in range(p+1):
            beta.append(x[i])
        print(beta[0], end='')
        for i in range(1, p + 1):
            if beta[i] > 0:
                print('+{}x{}'.format(beta[i], i), end='')
            else:
                print('{}x{}'.format(beta[i], i), end='')
        print('\n',end='')
    

           下面给出程序运行结果:
    在这里插入图片描述

    图4.2.1

    五、参考文献

    [1]分位数回归理论及其在金融风险测量中的应用/王新宇著.——北京:科学出版社,2010.6
    [2]吕书龙. 最小一乘估计快速算法的研究[D].福州大学,2003.

    展开全文
  • 实验目的:了解广义多元线性模型的性质以及R语言的实现 实验要求:对给出的两组数据建立线性回归模型。 实验数据:分析习题3.1、习题3.2并给解释 实验代码: 1、 2、 实验结果分析: 1、第一个数据分析得到x...

    实验目的:了解广义多元线性模型的性质以及R语言的实现
    实验要求:对给出的两组数据建立线性回归模型。
    实验数据:分析习题3.1、习题3.2并给解释
    实验素材:在我的资源中在这里插入图片描述

    实验代码:
    1、
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    2、
    在这里插入图片描述
    在这里插入图片描述
    实验结果分析:
    1、第一个数据分析得到x对应的P值比较大,即X不显著,采用回归分析,从回归分析中我们看到回归模型的系数在0.1%水平上显著。于是得回归模型为:在这里插入图片描述预测出当年龄为30岁,该影片持肯定观点的人可能为49%。
    2、第二个数据分析得到x对应的P值比较小,即X显著,不用采用回归分析,预测出当年龄为30岁的女性,对该项服务产品持认可观点的人可能为79%。

    展开全文
  • 文章目录一、多元线性回归模型预测房价1.基础包导入2.变量探索3.多元线性回归建模4.模型优化二、用Excel重做上面的多元线性回归,求解回归方程三、用机器学习库Sklearn库重做上面的多元线性归四、参考文献 一、多元...

    一、多元线性回归模型预测房价

    1.基础包导入

    import pandas as pd
    import numpy as np
    import seaborn as sns
    import matplotlib.pyplot as plt
    
    df = pd.read_csv('house_prices.csv')
    df.info(); df.head()
    

    在这里插入图片描述

    2.变量探索

    # 异常值处理
    # ================ 异常值检验函数:iqr & z分数 两种方法 =========================
    def outlier_test(data, column, method=None, z=2):
    	""" 以某列为依据,使用 上下截断点法 检测异常值(索引) """
    	"""
    	full_data: 完整数据
    	column: full_data 中的指定行,格式 'x' 带引号
    	return 可选; outlier: 异常值数据框
    	upper: 上截断点; lower: 下截断点
    	method:检验异常值的方法(可选, 默认的 None 为上下截断点法),
    	选 Z 方法时,Z 默认为 2
    	"""
    	# ================== 上下截断点法检验异常值 ==============================
    	if method == None:
    		print(f'以 {column} 列为依据,使用 上下截断点法(iqr) 检测异常值...')
    		print('=' * 70)
    		# 四分位点;这里调用函数会存在异常
    		column_iqr = np.quantile(data[column], 0.75) - np.quantile(data[column], 0.25)
    		# 1,3 分位数
    		(q1, q3) = np.quantile(data[column], 0.25), np.quantile(data[column], 0.75)
    		# 计算上下截断点
    		upper, lower = (q3 + 1.5 * column_iqr), (q1 - 1.5 * column_iqr)
    		# 检测异常值
    		outlier = data[(data[column] <= lower) | (data[column] >= upper)]
    		print(f'第一分位数: {q1}, 第三分位数:{q3}, 四分位极差:{column_iqr}')
    		print(f"上截断点:{upper}, 下截断点:{lower}")
    		return outlier, upper, lower
    	# ===================== Z 分数检验异常值 ==========================
    	if method == 'z':
    		""" 以某列为依据,传入数据与希望分段的 z 分数点,返回异常值索引与所在数据框 """
    		"""
    		params
    		data: 完整数据
    		column: 指定的检测列
    		z: Z分位数, 默认为2,根据 z分数-正态曲线表,可知取左右两端的 2%,
    		根据您 z 分数的正负设置。也可以任意更改,知道任意顶端百分比的数据集合
    		"""
    		print(f'以 {column} 列为依据,使用 Z 分数法,z 分位数取 {z} 来检测异常值...')
    		print('=' * 70)
    		# 计算两个 Z 分数的数值点
    		mean, std = np.mean(data[column]), np.std(data[column])
    		upper, lower = (mean + z * std), (mean - z * std)
    		print(f"取 {z} 个 Z分数:大于 {upper} 或小于 {lower} 的即可被视为异常值。")
    		print('=' * 70)
    		# 检测异常值
    		outlier = data[(data[column] <= lower) | (data[column] >= upper)]
    		return outlier, upper, lower
    
    outlier, upper, lower = outlier_test(data=df, column='price', method='z')
    outlier.info(); outlier.sample(5)
    

    在这里插入图片描述

    # 这里简单的丢弃即可
    df.drop(index=outlier.index, inplace=True)
    
    # 类别变量,又称为名义变量,nominal variables
    nominal_vars = ['neighborhood', 'style']
    for each in nominal_vars:
    	print(each, ':')
    	print(df[each].agg(['value_counts']).T)
    	# 直接 .value_counts().T 无法实现下面的效果
    	## 必须得 agg,而且里面的中括号 [] 也不能少
    	print('='*35)
    	# 发现各类别的数量也都还可以,为下面的方差分析做准备
    

    在这里插入图片描述

    # 热力图
    def heatmap(data, method='pearson', camp='RdYlGn', figsize=(10 ,8)):
        """
        data: 整份数据
        method:默认为 pearson 系数
        camp:默认为:RdYlGn-红黄蓝;YlGnBu-黄绿蓝;Blues/Greens 也是不错的选择
        figsize: 默认为 10,8
        """
        ## 消除斜对角颜色重复的色块
        # mask = np.zeros_like(df2.corr())
        # mask[np.tril_indices_from(mask)] = True
        plt.figure(figsize=figsize, dpi= 80)
        sns.heatmap(data.corr(method=method), \
            xticklabels=data.corr(method=method).columns, \
            yticklabels=data.corr(method=method).columns, cmap=camp, \
            center=0, annot=True)
        # 要想实现只是留下对角线一半的效果,括号内的参数可以加上 mask=mask
    
    # 通过热力图可以看出 area,bedrooms,bathrooms 等变量与房屋价格 price 的关系都还比较强
    ## 所以值得放入模型,但分类变量 style 与 neighborhood 两者与 price 的关系未知
    heatmap(data=df, figsize=(6,5))
    

    在这里插入图片描述

    # 刚才的探索我们发现,style 与 neighborhood 的类别都是三类,
     ## 如果只是两类的话我们可以进行卡方检验,所以这里我们使用方差分析
        
    ## 利用回归模型中的方差分析
    ## 只有 statsmodels 有方差分析库
    ## 从线性回归结果中提取方差分析结果
    import statsmodels.api as sm
    from statsmodels.formula.api import ols # ols 为建立线性回归模型的统计学库
    from statsmodels.stats.anova import anova_lm
    

    插播一条样本量和置信水平 α_level 的注意点(置信水平 α 的选择经验)

    样本量 α-level
    ≤ 100 10%
    100 < n ≤ 500 5%
    500 < n ≤ 1000 1%
    n > 2000 千分之一
    

    样本量过大,α-level 就没什么意义了。
    数据量很大时,p 值就没用了,样本量通常不超过 5000,
    为了证明两变量间的关系是稳定的,样本量要控制好。

    # 数据集样本数量:6028,这里随机选择 600 条,如果希望分层抽样,可参考文章:
    df = df.copy().sample(600)
    # C 表示告诉 Python 这是分类变量,否则 Python 会当成连续变量使用
    ## 这里直接使用方差分析对所有分类变量进行检验
    ## 下面几行代码便是使用统计学库进行方差分析的标准姿势
    lm = ols('price ~ C(neighborhood) + C(style)', data=df).fit()
    anova_lm(lm)
    # Residual 行表示模型不能解释的组内的,其他的是能解释的组间的
    # df: 自由度(n-1)- 分类变量中的类别个数减1
    # sum_sq: 总平方和(SSM),residual行的 sum_eq: SSE
    # mean_sq: msm, residual行的 mean_sq: mse
    # F:F 统计量,查看卡方分布表即可
    # PR(>F): P 值
    # 反复刷新几次,发现都很显著,所以这两个变量也挺值得放入模型中
    

    在这里插入图片描述

    3.多元线性回归建模

    from statsmodels.formula.api import ols
    lm = ols('price ~ area + bedrooms + bathrooms', data=df).fit()
    lm.summary()
    

    在这里插入图片描述
    在这里插入图片描述

    4.模型优化

    发现精度还不够高,这里通过添加虚拟变量与使用方差膨胀因子检测多元共线性的方式来提升模型精度

    # 设置虚拟变量
    # 以名义变量 neighborhood 街区为例
    nominal_data = df['neighborhood']
    # 设置虚拟变量
    dummies = pd.get_dummies(nominal_data)
    dummies.sample() # pandas 会自动帮你命名
    # 每个名义变量生成的虚拟变量中,需要各丢弃一个,这里以丢弃C为例
    dummies.drop(columns=['C'], inplace=True)
    dummies.sample()
    

    在这里插入图片描述

    # 将结果与原数据集拼接
    results = pd.concat(objs=[df, dummies], axis='columns') # 按照列来合并
    results.sample(3)
    # 对名义变量 style 的处理可自行尝试
    

    在这里插入图片描述

    # 再次建模
    lm = ols('price ~ area + bedrooms + bathrooms + A + B', data=results).fit()
    lm.summary()
    

    在这里插入图片描述

    # 自定义方差膨胀因子的检测公式
    def vif(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
        return 1. / (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 存在强相关性,可能这两个变量是解释同一个问题
    

    在这里插入图片描述

    # 再次进行多元共线性检测
    test_data = df[['area', 'bathrooms']]
    for i in test_data.columns:
        print(i, '\t', vif(df=test_data, col_i=i))
    
    

    在这里插入图片描述

    二、用Excel重做上面的多元线性回归,求解回归方程

    基于多元线性回归的房价预测
    摘要

    市场房价的走向受到多种因素的影响,通过对影响市场房价的多种因素进行分析,有助于对未来房价的走势进行较为准确的评估。
    多元线性回归适用于对受到多因素影响的数据进行分析的场景。由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。本文基于数学模型,对过去一段时间某一地区的房屋出售价格等相关数据进行整理,利用多元线性回归的方法对数据进行分析,预测该地区未来的房价走势。
    关键词:多元线性回归;房价预测;数据分析;

    引言
    对未来房价进行预测,在一定程度上影响着社会经济的发展。广义上讲,精确的房价预测有助于国家对市场房价走势的宏观调控,小范围来讲,未来房价预测是企业战略规划的一部分,对于消费者而言,房价预测为个人经济的合理规划起到了积极作用。由于房屋售价与多因素有关,并且房屋价格与影响房价的一些因素存在线性关系,所以选取多元线性回归模型研究该问题较为合适。
    本次课题研究通过对某段时间某地区的已售房价数据进行线性回归分析,探索影响房价高低的主要因素,并对这些影响因素的影响程度进行分析,利用分析得到的数据,对未来房价的趋势和走向进行预测。

    线性回归理论基础
    一元线性回归是分析只有一个自变量(自变量x和因变量y)线性相关关系的方法。一元线性回归分析的数学模型为:y = a+bx+ε。
    使用偏差平方和分别对参数a和参数b求偏导,可以得到线性模型的未知参数a、b的最小二乘估计值,其中,偏差平方和定义为∑(yi-a-bXi)2,a和b的唯一解如图所示。
    在这里插入图片描述

    ** 参数的最小二乘估计**
    为了方便回归效果显著性检验,根据b的估计,引入LXX、LYY、LXY三个数学符号,这三个数学符号定义如图所示。
    在这里插入图片描述

    图 LXX、LYY、LXY的数学定义
    在现实问题研究中,因变量的变化往往受几个重要因素的影响,此时就需要用两个或两个以上的影响因素作为自变量来解释因变量的变化,这就是多元回归。也就是说,当多个自变量与因变量之间是线性关系时,所进行的回归分析就是多元性回归。多元线性回归的数学模型为:y=β0+β1X1+β2X2+…++βpXp+ε。使用残差平方和分别对参数βi(i=0,1,…,p)求偏导,可以得到线性模型的未知参数βi(i=0,1,…,p)的估计值,β矩阵的估计值如图所示。
    在这里插入图片描述
    回归效果的显著性检验
    对平面上杂乱无章的点,利用最小二乘法求解出的线性回归方程是毫无意义的,线性回归反映出的趋势描述是否合理,需要一个数量指标来度量。
    数据总的波动可以用离差平方和LYY来描述。它表示y的各次离差yi-y ̅的平方和。LYY数值越大,说明yi数值波动越大,也就是越分散。离差平方和LYY可以分解为回归直线上y的离差平方和U以及yi与回归直线上的y间的差的平方和Q。其中,U是由于x对y的线性相关关系引起的y的分散性,Q是由随机误差引起的分散性。yi-y ̅分解如图2-4所示。在总和中,U所占比重越大,说明随机误差所占的比重越小,回归效果越显著。故此,可以使用决定系数R2来度量线性回归效果是否显著,R2作为拟合优度,表示用直线来拟合数据的好坏,R2等于U/Lyy。
    在这里插入图片描述

    R2开方后的结果为皮尔逊相关系数,皮尔逊(Pearson)相关系数可以用来衡量两个数据集合是否在一条线上面,从而衡量定距变量间的线性关系。相关系数的绝对值越大,相关性越强;相关系数越接近于1或-1,相关度越强,相关系数越接近于0,相关度越弱。当|r|>=0.8时,x和y强相关,当|r|<0.3时,x和y弱相关。皮尔逊相关系数定义为如图所示。
    在这里插入图片描述
    对于一元线性回归模型,线性回归模型效果的显著性可以通过假设检验问题H0:b=0;H1:b≠0进行判断,检验方法包括F检验法和t检验法。F检验属于回归方程显著性检验,是检验x与y是否相关的检验方法。t检验是回归系数显著性检验,是检验变量x是否有用的方法。H0成立时,两种检验方法定义如图2-6、图2-7所示。H0不成立时,对于给定的显著性水平α,当F>F1-α(1,n-2)时,回归效果显著。当|t|>t1-α/2(n-2)时,认为回归系数影响显著,否则回归系数的效果不显著。
    在这里插入图片描述
    一元线性回归F检验法
    在这里插入图片描述
    一元线性回归t检验法
    对于多元线性回归模型,回归效果的显著性可以使用F检验法通过假设检验问题H0:β0=β1=β2=…=βp=0;H1:βi(i=0,1,…,p)不全为0进行判断,H0成立时,F检验方法定义如图2-8所示。H0不成立时,对于给定的显著性水平α,当F>F1-α(p,n-p-1)时,回归效果显著。
    在这里插入图片描述
    回归系数的显著性检验可以使用t检验法通过假设检验问题H0:βi=0;H1:βi≠0进行判断。H0成立时,t检验方法定义如图2-9所示。H0不成立时,对于给定的显著性水平α,当|t|>t1-α/2(n-p-1)时,认为回归系数影响显著,否则回归系数的效果不显著。
    在这里插入图片描述
    基于机器学习的线性回归与梯度下降
    机器学习横跨计算机科学、工程技术和统计学等多个学科,渗透到了人们生产和生活中的各个领域,被广泛应用于各行各业之中,在当今世界激烈的竞争中,掌握和理解机器学习的基础模型和基本方法是非常有必要的。
    机器学习中的线性回归模型以数理统计的线性回归模型为基础,它用一条直线对数据点进行拟合,在机器学习中,回归问题的求解过程就是寻找最佳拟合参数集的过程,也就是寻找满足使得估计值与实际值的方差最小时的参数解,这个过程用到了损失函数,损失函数定义如图2-10所示。利用损失函数,可以求解最佳拟合参数集。利用损失函数进行求解可以采用梯度下降法。
    在这里插入图片描述
    梯度下降法的计算过程就是沿梯度下降的方向求解极小值或沿梯度上升方向求解极大值。一般情况下,梯度向量为0的话说明是到了一个极值点,此时梯度的幅值也为0。采用梯度下降算法进行最优化求解时,算法迭代的终止条件是梯度向量的幅值接近0或接近一个非常小的常数阈值。梯度下降的过程如图所示。
    在这里插入图片描述
    使用EXCEL进行数据分析

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    选择x,y值域
    在这里插入图片描述

    在这里插入图片描述
    字段Multiple R代表复相关系数R,也就是R2的平方根,又称相关系数,用来衡量自变量x与y之间的相关程度的大小。
    R Square是复测定系数,也就是相关系数R的平方。
    Adjusted R Square是调整后的复测定系数R2。
    标准误差用来衡量拟合程度的大小,也用于计算与回归相关的其它统计量,此值越小,说明拟合程度越好。
    观察值是用于估计回归方程的数据的观察值个数,本次数据集共有20条数据,所以观察值为20。
    Coefficients为常数项

    设因变量房屋售价price为y,自变量面积area为x1,bedrooms为x2,bathrooms为x3

    所以得到方程:
    y=10072.11+345.911x1-2925.81x2+7345.392x3

    三、用机器学习库Sklearn库重做上面的多元线性归

    1. 不处理直接求解

    import pandas as pd
    import numpy as np
    import math
    import matplotlib.pyplot as plt #画图
    from sklearn import linear_model #线性模型
    data = pd.read_csv('house_prices.csv') 
    data.head() #数据展示
    

    在这里插入图片描述

    new_data=data.iloc[:,1:]#除掉house_id这一列
    new_data.head()
    
    

    在这里插入图片描述

    new_data.corr()#相关系数矩阵,只统计数值列
    

    在这里插入图片描述

    """取are、bedrooms和bathroom作为X,price为Y求线性回归。"""
    x_data = new_data.iloc[:, 1:4] #are、bedrooms、bathroom对应列
    y_data = new_data.iloc[:, -1] #price对应列
    print(x_data, y_data, len(x_data))
    
    

    在这里插入图片描述

    # 应用模型
    model = linear_model.LinearRegression()
    model.fit(x_data, y_data)
    print("回归系数:", model.coef_)
    print("截距:", model.intercept_)
    print('回归方程: price=',model.coef_[0],'*area +',model.coef_[1],'*bedrooms +',model.coef_[2],'*bathromms +',model.intercept_)
    

    在这里插入图片描述

    2 数据进行清洗后再求解

    new_data_Z=new_data.iloc[:,0:]
    new_data_IQR=new_data.iloc[:,0:]
    def outlier_test(data, column, method=None, z=2):
        
        if method == None:
            print(f'以 {column} 列为依据,使用 上下截断点法(iqr) 检测异常值...')
            print('=' * 70)
            column_iqr = np.quantile(data[column], 0.75) - np.quantile(data[column], 0.25)
            (q1, q3) = np.quantile(data[column], 0.25), np.quantile(data[column], 0.75)
            upper, lower = (q3 + 1.5 * column_iqr), (q1 - 1.5 * column_iqr)
            outlier = data[(data[column] <= lower) | (data[column] >= upper)]
            print(f'第一分位数: {q1}, 第三分位数:{q3}, 四分位极差:{column_iqr}')
            print(f"上截断点:{upper}, 下截断点:{lower}")
            return outlier, upper, lower
        
        if method == 'z':
            
            print(f'以 {column} 列为依据,使用 Z 分数法,z 分位数取 {z} 来检测异常值...')
            print('=' * 70)    
            mean, std = np.mean(data[column]), np.std(data[column])
            upper, lower = (mean + z * std), (mean - z * std)
            print(f"取 {z} 个 Z分数:大于 {upper} 或小于 {lower} 的即可被视为异常值。")
            print('=' * 70)
            outlier = data[(data[column] <= lower) | (data[column] >= upper)]
            return outlier, upper, lower
    
    outlier, upper, lower = outlier_test(data=new_data_Z, column='price', method='z')
    outlier.info(); outlier.sample(5)
    
    #这里简单丢弃即可
    new_data_Z.drop(index=outlier.index, inplace=True)
    

    123456789101112

    outlier, upper, lower = outlier_test(data=new_data_IQR, column='price')
    outlier.info(); outlier.sample(5)
    
    # 这里简单的丢弃即可
    new_data_IQR.drop(index=outlier.index, inplace=True)
    
    

    在这里插入图片描述

    print("原数据相关性矩阵")
    new_data.corr()
    

    在这里插入图片描述

    print("z方法处理的相关性矩阵")
    new_data_Z.corr()
    

    12

    print("IQR方法处理的数据相关性矩阵")
    new_data_IQR.corr()
    

    12

    x_data = new_data_Z.iloc[:, 1:4]
    y_data = new_data_Z.iloc[:, -1]
    # 应用模型
    model = linear_model.LinearRegression()
    model.fit(x_data, y_data)
    print("回归系数:", model.coef_)
    print("截距:", model.intercept_)
    print('回归方程: price=',model.coef_[0],'*area +',model.coef_[1],'*bedrooms +',model.coef_[2],'*bathromms +',model.intercept_)
    

    12345678

    x_data = new_data_IQR.iloc[:, 1:4]
    y_data = new_data_IQR.iloc[:, -1]
    # 应用模型
    model = linear_model.LinearRegression()
    model.fit(x_data, y_data)
    print("回归系数:", model.coef_)
    print("截距:", model.intercept_)
    print('回归方程: price=',model.coef_[0],'*area +',model.coef_[1],'*bedrooms +',model.coef_[2],'*bathromms +',model.intercept_)
    

    12345678

    3.3 对比

    不做任何数据处理: price= 345.911018840024 *area + 
    -2925.806324666705 *bedrooms + 7345.391713693825 *bathromms    + 10072.107046726742
    
    Z方式清理数据:price= 226.4211697383351 *area + 49931.50311720713 *bedrooms + -12224.71724496588 *bathromms + 64356.04135007458
    
    IQR方式清理数据:price= 242.6111551782956 *area + 41547.43068790577 *bedrooms + -6415.78250090158 *bathromms + 58018.13845504692
    

    四、参考文献

    https://blog.csdn.net/qq_55691662/article/details/120960932

    https://blog.csdn.net/weixin_43196118/article/details/108462140

    https://blog.csdn.net/m0_51120713/article/details/120969812

    https://blog.csdn.net/weixin_43196118/article/details/108462140

    展开全文
  • 多元线性模型最小一乘回归一、算法目的二、算法推导2.1目标函数的表示形式2.2构造一个线性规划2.3证明2.2构造的线性规划最优时,2.1中目标函数达到最小三、级目录 一、算法目的       ...

    一、算法目的

           多元线性模型的矩阵形式:
    Y = X β + ε (1) Y=X\beta+\varepsilon\tag{1} Y=Xβ+ε(1)
           其中, Y = [ y 1 y 2 ⋮ y n ] , X = [ 1 x 11 ⋯ x 1 p 1 x 21 ⋯ x 2 p ⋮ ⋮ ⋱ ⋮ 1 x n 1 ⋯ x n p ] β = [ β 0 β 1 ⋮ β p ] , ε = [ ε 1 ε 2 ⋮ ε n ] Y=\left[ \begin{matrix} y_{1} \\ y_{2} \\ \vdots \\ y_{n} \end{matrix} \right] ,X=\left[ \begin{matrix} 1&x_{11}&\cdots&x_{1p} \\ 1&x_{21}&\cdots&x_{2p} \\ \vdots&\vdots&\ddots&\vdots \\ 1 &x_{n1}&\cdots&x_{np} \end{matrix} \right]\\ \beta=\left[ \begin{matrix} \beta_{0} \\ \beta_{1} \\ \vdots \\ \beta_{p} \end{matrix} \right],\varepsilon=\left[ \begin{matrix} \varepsilon_{1} \\ \varepsilon_{2} \\ \vdots \\ \varepsilon_{n} \end{matrix} \right] Y=y1y2yn,X=111x11x21xn1x1px2pxnpβ=β0β1βp,ε=ε1ε2εn
           对于以上多元线性模型我们要通过最小一乘法,也就是要求出使得残差的绝对值的和最小的参数 β \beta β的估计 β ^ \widehat{\beta} β

    二、算法推导

    2.1目标函数的表示形式

           我们的目标函数为:
    min ⁡ Q ( β ) = ∑ i = 1 n ∣ y i − x i ′ β ∣ (2) \min Q(\beta)=\sum_{i=1}^{n}|y_{i}-x_{i}'\beta| \tag{2} minQ(β)=i=1nyixiβ(2)
           其中, x i ′ = [ 1 , x i 1 , ⋯   , x i p ] x_{i}'=[1,x_{i1},\cdots,x_{ip}] xi=[1,xi1,,xip]

    2.2构造一个线性规划

           我们知道,任何一个向量都可以表示为两个非负向量的差,为了符合线性规划中对未知变量保持非负的习惯与一般做法。我们令 β = d 1 − d 2 , d 1 ≥ 0 , d 2 ≥ 0 (3) \beta=d_{1}-d_{2},d_{1}\ge0,d_{2}\ge0\tag{3} β=d1d2,d10,d20(3)
           下面我们给出线性规划约束条件的系数矩阵和系数矩阵右端项: A = [ I n X − X I n − X X ] , B = [ Y − Y ] (4) A=\left[\begin{matrix} I_{n}&X&-X \\ I_{n}&-X&X \end{matrix} \right],B=\left[\begin{matrix} Y\\ -Y \end{matrix} \right]\tag{4} A=[InInXXXX],B=[YY](4)
           线性规划的变量为 ( r , d 1 , d 2 ) T (r,d_{1},d_{2})^{T} (r,d1,d2)T,线性规划目标函数的变量系数矩阵为 ( l ′ , 0 , 0 ) (l',0,0) (l,0,0)。其中, r = [ r 1 r 2 ⋮ r n ] , l = [ 1 1 ⋮ 1 ] n × 1 (5) r=\left[ \begin{matrix} r_{1} \\ r_{2} \\ \vdots \\ r_{n} \end{matrix} \right],l=\left[ \begin{matrix} 1 \\ 1 \\ \vdots \\ 1 \end{matrix} \right]_{n\times1 \tag{5}} r=r1r2rn,l=111n×1(5)
           综上,线性规划表示为:
    { min ⁡ ( l ′ , 0 , 0 ) ( r , d 1 , d 2 ) T = ∑ i = 1 n r i A [ r d 1 d 2 ] ≥ B , [ r d 1 d 2 ] ≥ 0 (6) \begin{cases}\min(l',0,0)(r,d_{1},d_{2})^{T}=\sum_{i=1}^{n}r_{i} \\ A\left[\begin{matrix} r\\ d_{1}\\ d_{2} \end{matrix}\right]\ge B,\left[\begin{matrix} r\\ d_{1}\\ d_{2} \end{matrix}\right]\ge 0\end{cases}\tag{6} min(l,0,0)(r,d1,d2)T=i=1nriArd1d2B,rd1d20(6)

    2.3一个证明:揭示(2)和(6)之间的关系

           下面我们来证明,当线性规划 ( 6 ) (6) (6)求得最优解 ( r , d 1 , d 2 ) T (r,d_{1},d_{2})^{T} (r,d1,d2)T时, β = d 1 − d 2 \beta=d_{1}-d_{2} β=d1d2就是目标函数(2)的解。并且线性规划 ( 6 ) (6) (6)的最小值就是目标函数 ( 2 ) (2) (2)的最小值,也即 min ⁡ Q = ∑ i = 1 n r i (7) \min Q=\sum_{i=1}^{n}r_{i}\tag{7} minQ=i=1nri(7)
    证明:
           线性规划(6)的第一个约束条件可以写成 r + X d 1 − X d 2 ≥ Y , r − X d 1 + X d 2 ≥ − Y r+Xd_{1}-Xd_{2}\ge Y,r-Xd_{1}+Xd_{2}\ge -Y r+Xd1Xd2Y,rXd1+Xd2Y。也即 r ≥ Y − X β , r ≥ − ( Y − X β ) r\ge Y-X\beta,r\ge -(Y-X\beta) rYXβ,r(YXβ)。也就是 r i ≥ ∣ y i − x i ′ β ∣ , i = 1 , 2 , ⋯   , n (8) r_{i}\ge|y_{i}-x_{i}'\beta|,i=1,2,\cdots,n\tag{8} riyixiβ,i=1,2,,n(8)

           假设当线性规划 ( 6 ) (6) (6)求得最优解 ( r , d 1 , d 2 ) T , β = d 1 − d 2 (r,d_{1},d_{2})^{T},\beta=d_{1}-d_{2} (r,d1,d2)T,β=d1d2时,存在 β ~ = d 1 ~ − d 2 ~ \widetilde{\beta}=\widetilde{d_{1}}-\widetilde{d_{2}} β =d1 d2 ,使得 Q ( β ~ ) < Q ( β ) Q(\widetilde{\beta})<Q(\beta) Q(β )<Q(β),其中 d 1 ~ ≥ 0 , d 2 ~ ≥ 0 \widetilde{d_{1}}\ge 0,\widetilde{d_{2}}\ge 0 d1 0,d2 0。令 r ~ = ( r 1 ~ , r 2 ~ , ⋯   , r n ~ ) \widetilde{r}=(\widetilde{r_{1}},\widetilde{r_{2}},\cdots,\widetilde{r_{n}}) r =(r1 ,r2 ,,rn ),不妨令其中 r i ~ = ∣ y i − x i ′ β ~ ∣ , i = 1 , 2 , ⋯   , n \widetilde{r_{i}}=|y_{i}-x_{i}'\widetilde{\beta}|,i=1,2,\cdots,n ri =yixiβ ,i=1,2,,n.那么
    A [ r ~ d 1 ~ d 2 ~ ] ≥ B , [ r ~ d 1 ~ d 2 ~ ] ≥ 0 (9) A\left[\begin{matrix} \widetilde{r}\\ \widetilde{d_{1}}\\ \widetilde{d_{2}} \end{matrix}\right]\ge B,\left[\begin{matrix} \widetilde{r}\\ \widetilde{d_{1}}\\ \widetilde{d_{2}} \end{matrix}\right]\ge 0 \tag{9} Ar d1 d2 B,r d1 d2 0(9)
           所以 ( r ~ , d 1 ~ , d 2 ~ ) T (\widetilde{r},\widetilde{d_{1}},\widetilde{d_{2}})^{T} (r ,d1 ,d2 )T也满足线性规划 ( 6 ) (6) (6)的约束条件,并且 ( l ′ , 0 , 0 ) ( r ~ , d 1 ~ , d 2 ~ ) T = ∑ i = 1 n r i ~ = ∑ i = 1 n ∣ y i − x i ′ β ~ ∣ = Q ( β ~ ) < Q ( β ) (l',0,0)(\widetilde{r},\widetilde{d_{1}},\widetilde{d_{2}})^{T}=\sum_{i=1}^{n}\widetilde{r_{i}}=\sum_{i=1}^{n}|y_{i}-x_{i}'\widetilde{\beta}|=Q(\widetilde{\beta})<Q(\beta) (l,0,0)(r ,d1 ,d2 )T=i=1nri =i=1nyixiβ =Q(β )<Q(β),由 ( 8 ) (8) (8)知, Q ( β ) = ∑ i = 1 n ∣ y i − x i ′ β ∣ ≤ ∑ i = 1 n r i Q(\beta)=\sum_{i=1}^{n}|y_{i}-x_{i}'\beta|\leq\sum_{i=1}^{n}r_{i} Q(β)=i=1nyixiβi=1nri,所以 ∑ i = 1 n r i ~ < ∑ i = 1 n r i \sum_{i=1}^{n}\widetilde{r_{i}}<\sum_{i=1}^{n}r_{i} i=1nri <i=1nri,这与 ( r , d 1 , d 2 ) T (r,d_{1},d_{2})^{T} (r,d1,d2)T是线性规划的最优解矛盾,所以第一部分得证。
            从上述的推导我们可以得知,在 d 1 d_{1} d1 d 2 d_{2} d2已经确定的情况下, ∣ y i − x i ′ β ∣ , i = 1 , 2 , ⋯   , n |y_{i}-x_{i}'\beta|,i=1,2,\cdots,n yixiβ,i=1,2,,n均为定值,由 ( 8 ) (8) (8)可知,为了使得线性规划 ( 6 ) (6) (6)的目标函数最小,必须取 r i = ∣ y i − x i ′ β ∣ r_{i}=|y_{i}-x_{i}'\beta| ri=yixiβ。所以 ( 7 ) (7) (7)成立。

    2.4回归算法

    s t e p ( 1 ) step(1) step(1):输入回归数据 X X X Y Y Y
    s t e p ( 2 ) step(2) step(2):根据 2.2 2.2 2.2中的 ( 4 ) , ( 5 ) , ( 6 ) (4),(5),(6) (4),(5),(6)计算出线性规划的相关矩阵 A , B , C A,B,C A,B,C其中 C = ( l ′ , 0 ( p + 1 ) × 1 , 0 ( p + 1 ) × 1 ) C=(l',0_{(p+1)\times1},0_{(p+1)\times1}) C=(l,0(p+1)×1,0(p+1)×1)
    s t e p ( 3 ) step(3) step(3):将 A , B , C A,B,C A,B,C带入单纯形法模块,求得最优解 ( r , d 1 , d 2 ) T (r,d_{1},d_{2})^{T} (r,d1,d2)T
    s t e p ( 4 ) step(4) step(4):得到 β ^ = d 1 − d 2 \widehat{\beta}=d_{1}-d_{2} β =d1d2

    注:关于单纯形法原理本文不再赘述。

    三、实际案例与python编程计算

    3.1引入数据集

           我们以著名的 H a l d Hald Hald数据为例。
    在这里插入图片描述

    图3.1.1

    3.2计算 β ^ \widehat{\beta} β

           下面给出计算最小一乘回归方程完整 p y t h o n python python源代码:

    import pandas as pd
    import numpy as np
    from scipy import optimize
    #多元线性模型的最小一乘回归(不等式约束条件)
    #导入数据
    dataset1=pd.read_excel('Hald.xlsx')
    dataset2=pd.read_excel('Hald.xlsx')
    
    #计算X,Y
    Y=dataset1['Y'].values
    dataset2['Y']=1
    X=dataset2.values
    
    #计算A,B,C
    n=len(X)
    B=np.hstack((Y,-Y))
    In=np.eye(n)
    A1=np.hstack((In,X,-X))
    A2=np.hstack((In,-X,X))
    A=np.vstack((A1,A2))
    p=len(X[0])-1
    l=np.ones(n,np.int)
    o=np.zeros(p+1,np.int)
    C=np.hstack((l,o,o))
    
    #使用optimize包的linprog函数求解线性规划
    r = optimize.linprog(C,A_ub=-A,b_ub=-B,bounds=(0,None))
    #得到最优解x=(r,d1,d2)'
    x=(r.x)
    #计算β估计
    beta=[]
    for i in range(n,n+p+1):
        beta.append(x[i]-x[i+p+1])
        
    #输出结果
    print('多元线性模型的最小一乘法回归方程为:\ny=',end='')
    print(beta[0],end='')
    for i in range(1,p+1):
        if beta[i]>0:
            print('+{}x{}'.format(beta[i],i),end='')
        else:
            print('{}x{}'.format(beta[i], i),end='')
    

           下面给出程序运行结果:
    在这里插入图片描述

    图3.2.1

    四、参考文献

    [1]陈希孺.最小一乘线性回归(下)[J].数理统计与管理,1989(06):48-56.
    [2]吕书龙. 最小一乘估计快速算法的研究[D].福州大学,2003.

    展开全文
  • 一元线性回归模型是指的自变量和因变量各有一个的回归模型,但是由于因变量可能会受到各种变量的影响,也就是说存在着多元因素影响,那么就需要构建多元线性回归模型。 一、多元线性回归模型的基本形式 二、...
  • 当使用sm.OLS(y, X)时,y是因变量,X是自变量。在公式W ~ PTS + oppPTS,W是因变量,PTS,oppPTS是自变量。因此,使用y = NBA['W']X = NBA[['PTS', 'oppPTS']]而不是X = NBA['W']y = NBA[['PTS', 'oppPTS']]import ...
  • 实验目的:了解R语言多元线性回归模型的建立和检验过程,并能够对其结果结合实际情况进行解释。 实验要求:对给出的两组数据建立线性回归模型,并对实验结果进行分析。 实验数据:1.从给定的数据分析糖尿病人的空腹...
  • 利用MATLAB进行多元线性回归

    千次阅读 2021-05-06 05:06:27
    《利用MATLAB进行多元线性回归》由会员分享,可在线阅读,更多相关《利用MATLAB进行多元线性回归(15页珍藏版)》请在人人文库网上搜索。1、2.线性回归,b=regress(y,X) b,bint,r,rint,s=regress(y,X,alpha,输入: y因...
  • 多元线性回归模型

    2021-04-08 16:05:00
    线性回归(Linear Regression)通过学习标记数据学得一多元线性模型能够尽可能准确地预测实值输出标记。本篇将以多项式拟合正弦曲线的案例讲解线性回归。 1. 参数定义 标记数据集:X = ( x1, x2, …, xn ) 标记集:T =...
  • 原标题:Python 实战多元线性回归模型,附带原理+代码 作者 | 萝卜来源 | 早起Python( ID:zaoqi-python )「多元线性回归模型」非常常见,是大多数人入门机器学习的第一个案例,尽管如此,里面还是有许多值得学习和...
  • 最小二乘法多元线性回归

    千次阅读 2021-04-05 13:14:32
    最小二乘法多元线性回归(岭回归实现)多元线性回归岭回归实现一、理论分析二、实现代码第一部分(LinRegression类)第二部分(main,调用类并做对比)三、代码解读及结果分析1.代码解读2.结果分析 采用岭回归的方式...
  • 文章目录以极大似然估计角度推导多元线性回归损失函数从一元线性回归开始多元线性回归误差项的概率密度函数误差项的极大似然函数求解极大似然函数,推得多元线性回归的损失函数 以极大似然估计角度推导多元线性回归...
  • (一)基础铺垫多重线性回归(Multiple Linear Regression)研究一个因变量与多个自变量间线性关系的方法...模型关键词解析偏回归系数多重线性模型中包含多个自变量,它们同时对因变量y发生作用,如果要考察一个自变量对...
  • 多元线性回归模型及古典假定 ②多元线性回归模型的估计 ③多元线性回归模型的假设检验和区间估计 ④多元线性回归模型的预测
  • ML(三)线性模型

    2021-07-19 23:18:10
    3.1线性回归 引言 在生活中经常会遇到的一些问题,比如犯罪现场留下的鞋码大概估计嫌疑人的身高;又比如通过一个程序员的发际线高度来判断这个程序员的计算机水平;再比如买西瓜的时候,通过某个西瓜色泽、根蒂、敲...
  • 首先,我们要大致了解多元线性回归的一般步骤: 数据导入和清洗 首次回归 检测多重共线性,再次回归 检测异方差性,再次回归 最后,得到一个相对不错的结果。本人后期将更新“内生解释变量问题”的python解决 ...
  • 波士顿房地产业的多元...在讨论中,对线性回归模型的回归显著性以及拟合优度进行了检验,最后使用最优的多元线性回归模型对波士顿的房价进行预测。 关键字:多元线性回归,逐步回归,回归显著性,拟合优度,回归预测
  • 我在玩这个代码,这是一元线性混合效应建模。数据集表示:学生作为s讲师(d)部门为部门服务即服务在R的lme4包语法中(Bates等人,2015),实现的模型可以概括为:y ~ 1 + (1|students) + (1|instructor) + (1|dept) + ...
  • 多元线性回归模型常见问题及解决方法概要多元线性回归模型 基本假设 (1)随机扰动项ui数学期望(均值)为零。E(ui)=0 (2)随机扰动项ui的同方差性且无自相关Var(ui)=σ2 (3)解释变量X列线性无关。R(Xn×k)=K (4)随机扰动...
  • 回归模型的预测 import matplotlib import matplotlib.pyplot as plt import pandas as pd import numpy as np import seaborn as sns import statsmodels.api as sm from sklearn import model_selection from ...
  • 文章目录多元线性模型找到满足假设的参数梯度下降法单纯的公式推导特征放缩学习率的判断和选择正规方程两种方法的比较 多元线性模型 这一节的内容可以看作是之前一元线性模型的提高, 其中要明白符号的意思  xj...
  • 将一元线性回归模型推广到多个解释变量,这个过程叫作多元线性回归: 现用数据集中的所有变量来训练多元回归模型: import pandas as pd import numpy as np from sklearn.linear_model import LinearRegression ...
  • 数学建模(NO.11多元线性回归分析)

    千次阅读 2021-01-13 20:45:06
    多元线性回归分析一.应用二.三个关键词三.目的四.回归模型分类五.数据分类1.三种数据2.模型与数据对应六.数据收集网址七.一元线性回归1.概念2.对“线性”理解1.纠正线性2. 预处理3.什么时候取对数?3.回归系数的解释...
  • (2)多元线性回归之洞庭湖污染物案例实测 (3) 参考文档: (1)一元线性回归之旧轿车价格案例 以x表示使用年数,y表示相应的平均价格。根据表中x和y的数据,建立一个数据模型,分析就轿车平均价格与其使用念书...
  • R可视化多元线性回归模型 目录 R可视化多元线性回归模型 一元线性回归建模及可视化 在R中绘制多元线性回归结果 可视化结果的解读 一元线性回归建模及可视化 当我们在R中执行简单的线性回归时,...
  • 属于合成纤维的面料是()。库存现金清查的内容包括()。关于职业倦怠的说法,下列哪项是正确的()喷面漆一般采用空气喷涂、无空气喷涂、()、自动喷涂等喷涂法。属于合成纤维的面料是()。在未燃法中烟气的主要成分是()。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,679
精华内容 11,871
关键字:

多元线性模型

友情链接: Point_of_S221760152012.zip