回归分析:多元线性回归模型 白话解析与案例实现

文章目录

*
线性学习
多元线性回归模型
多元线性回归模型的python实现

线性学习

回归分析是研究自变量x与因变量y的关系的方法。
上一节我们介绍了一元线性回归,经验公式为:

$ \hat{y}=\hat{\beta}1 x+\hat{\beta}0 $

在实际生活中,我们要研究的因变量y可以同时受多个自变量的影响,比如一个地区的用电量y,同时与人口数x1,天气文档x2有关;股票价格y,与成交量x1、股东数量x2、市值x3等多个变量有关。

多元线性回归模型

如果涉及多个自变量的关系,可以用多元线性方程来表示:

y = a x 1 + b x 2 + . . . + z y=ax1+bx2+…+z y =a x 1 +b x 2 +…+z

经过统计学估计后,同样可以得到经验回归方程:

$ \hat{y}=\hat{\beta}1 x1+\hat{\beta}2 x2+\hat{\beta}3 x3+…+\hat{\beta}0 $

为了方便书写,通常用矩阵$ \hat{\beta}$的转置与变量X矩阵的相乘去表示:

$ \hat{y}=\hat{\beta}^T X$

借用一个手写图片:

回归分析:多元线性回归模型 白话解析与案例实现

; 多元线性回归模型的python实现

我们以方程y=x1+0.5×2+0.5为依据,加入噪声,生成了100个随机样本,经过估计得到多元线性回归模型参数如下

  • 回归方程的斜率为: [[0.99915343 0.49771742]]
  • 回归方程的截距为: [0.50248829]
  • 回归方程为:y = 0.9991534305437673 _x1 +0.4977174222422542_x1 + 0.5024882887129338

回归分析:多元线性回归模型 白话解析与案例实现

import numpy as np
import pandas as pd
import  matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D
np.random.seed(1)
count=100
data=[]
for i in range(count):
    x1=np.random.normal(0.00,0.55)
    x2=np.random.normal(0.00,0.55)
    y1=x1+x2*0.5+0.5+np.random.normal(0.00,0.02)
    data.append([x1,x2,y1])

data =pd.DataFrame(data)

x_data=np.array(data.iloc[:,:2])

x1_data=np.array(data[0])
x2_data=np.array(data[1])
y_data=np.array(data[2])

fig = plt.figure()
ax = fig.gca(projection="3d")

ax.scatter(x1_data,x2_data, zs=y_data, zdir="z", c="#00DDAA", marker="o", s=40)
ax.set(xlabel="X", ylabel="Y", zlabel="Z")
plt.show()

from sklearn.linear_model import LinearRegression
regr = LinearRegression()

x_data=x_data
y_data=y_data.reshape(-1,1)

regr.fit(x_data,y_data)

t =regr.coef_
print('回归方程的斜率为:', regr.coef_)
print('回归方程的截距为:', regr.intercept_)
print('回归方程为:y = {}*x1 +{}*x2 +  {}'.format(t[0][0],t[0][1],regr.intercept_[0]))

Original: https://blog.csdn.net/zzh1464501547/article/details/126735150
Author: 人工智能学术前沿(真)
Title: 回归分析:多元线性回归模型 白话解析与案例实现

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/634631/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球