七种回归模型
- 线性回归(Linear Regression)
- 逻辑回归(Logistic Regression)
- 多项式回归(Polynomial Regression)
- 逐步回归(Stepwise Regression)
- 岭回归(Ridge Regression)
- 套索回归(Lasso Regression)
- 弹性回归(ElasticNet Regression)
在统计学中,回归分析(regression analysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。回归分析可以通过历史数据进行预测,回归分析按照涉及的变量的多少,分为一元回归和多元回归分析;按照因变量的多少,可分为简单回归分析和多重回归分析;按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。(百度百科)
回归模型主要作用:
- 揭示了因变量和自变量之间的关系
- 揭示了多个自变量对一个因变量的影响程度大小
回归模型主要由三个维度指标来度量(独立变量的数量、因变量的类型和回归线的参数)
A、线性回归(Linear Regression)
因变量类型是连续的,自变量可以是连续的也可以是离散的,线性回归的本质是线性的。
线性回归模型建立了因变量(Y)和一个或多个自变量(X)之间的关系。
表达式为:Y=a+b*X+e,其中 a 为直线截距,b 为直线斜率,e 为误差项。
如果给定自变量 X,就能通过这个线性回归表达式计算出预测值,即因变量 Y。
如何获得最佳拟合直线(确定 a 和 b 值)?
这个问题可以使用最小二乘法(Least Square Method)轻松解决。最小二乘法是一种拟合回归线的常用算法。它通过最小化每个数据点与预测直线的垂直误差的平方和来计算得到最佳拟合直线。因为计算的是误差平方和,所以误差正负值之间没有相互抵消。
线性回归模型重点:
- 自变量和因变量之间必须满足线性关系。
- 多元回归存在多重共线性,自相关性和异方差性。
- 线性回归对异常值非常敏感。异常值会严重影响回归线和最终的预测值。
- 多重共线性会增加系数估计的方差,并且使得估计对模型中的微小变化非常敏感。结果是系数估计不稳定。
用卡尔曼滤波来举例:
正常python直接用公式解出最小二乘xls即可
模型的优化
#数据读取
import os
print(os.getcwd())
import pandas as pd
import numpy as np
df_women = pd.read_scv("women.csv",index_col=0,header=0)
df_women.tail(10)
df_women.describe()
X = df_women["height"]
y = df_women["weight"]
#更新模型
import statsmodels.api as sm
X_add = sm.add_constant(X)
#X_add = sm.add_constant(X,to_numpy())
model_update = sm.OLS(y,X_add)
result_update = model_update.fit()
print(result_update.summary())
print("查看斜率及截距项:",result_update.params)
y_predict_update = result_update.predict()
y_predict_update
#画图
import matplotlib.pyplot as plt
%matplotlib inline
plt,rcParams["font.family"]="simHei"
#"Heiti TC"
plt.scatter(df_women["height"],df_women["weight"])
plt.plot(df_women["height"],y_predict_update)
plt.title("身高体重线性回归优化模型分析")
plt.xlabel("身高")
plt.ylabel("体重")
#实时应用
h = 63.5
result_update.predict((1,h,np.power(h,2),np.power(h,3)))
# ans array([130.39340008])
参考 你应该掌握的 7 种回归模型! - 知乎 (zhihu.com)
课件为内部资料 仅用于学习用途!