【读书笔记】《深入浅出数据分析》第十、十一章 回归、合理误差
创始人
2024-06-02 02:22:52
0

目录

      • 一,回归分析
        • 1,概述
        • 2、分类
        • 3,相关分析与回归分析联系
      • 二,标准差、方差、协方差、残差、均方误差、标准误差
      • (一)区别关系
        • 1,方差(Variance)
          • 1.1 总体方差
          • 1.2 样本方差
        • 2,标准差(Standard Deviation)
        • 3,协方差(Covariance)
        • 4,残差
        • 5,均方误差(mean-square error, MSE)
        • 6,均方根误差(root mean squared error,RMSE)
      • (二)计算方法(panads、numpy、 scikit-learn)
        • 1,方差
        • 2,标准差
        • 3,协方差
        • 5,均方误差/均方根误差

一,回归分析

1,概述

在大数据分析中,回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。例如,司机的鲁莽驾驶与道路交通事故数量之间的关系,最好的研究方法就是回归。
在这里插入图片描述

2、分类

按照涉及的变量的多少,分为一元回归和多元回归分析;
按照因变量的多少,可分为简单回归分析和多重回归分析;
按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。

3,相关分析与回归分析联系

两者均为研究与测度两个或两个以上变量之间关系的方法,相关分析是回归分析的基础和前提,只有变量之间存在高度相关时,进行回归分析确定相关的具体形式才有意义;回归分析是相关分析的继续和深入,变量之间的相关程度需要回归分析来确认。

二,标准差、方差、协方差、残差、均方误差、标准误差

(一)区别关系

在这里插入图片描述

1,方差(Variance)

方差用于衡量随机变量或一组数据的离散程度。

1.1 总体方差

总体方差,也叫做有偏估计,也是标准定义的方差,初高中数学所计算的方差。
在这里插入图片描述
其中,n表示这组数据个数,x1、x2、x3……xn表示这组数据具体数值。

总体方差:
其中,\bar{X}为数据的平均数,n为数据的个数,s^2为方差。
在这里插入图片描述

1.2 样本方差

样本方差,无偏方差,在实际情况中,因为样本过多或无法穷举,总体均值是很难得到的,往往通过抽样来计算,于是有样本方差,计算公式如下:
在这里插入图片描述
这里样本方差公式分母为n-1,为什么样本方差(sample variance)的分母是 n-1? 知乎上,有详细公式推导,但是对于我这种菜鸡不好理解,个人比较好理解的是这个回答:
在这里插入图片描述

2,标准差(Standard Deviation)

标准差也被称为标准偏差或均方差,用σ表示,标准差是方差的算术平方根。标准差能反映一个数据集的离散程度,只是由于方差出现了平方项造成量纲的倍数变化,无法直观反映出偏离程度,于是出现了标准差,标准偏差越小,这些值偏离平均值就越少,反之亦然。
总体标准差:
在这里插入图片描述
样本标准差:
在这里插入图片描述

3,协方差(Covariance)

协方差(Covariance)在概率论和统计学中用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。
协方差表示的是两个变量的总体的误差,这与只表示一个变量误差的方差不同。如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。如何通俗理解协方差

4,残差

残差在数理统计中是指实际值与预测值(拟合值)之间的差。“残差”蕴含了有关模型基本假设的重要信息。如果回归模型正确的话, 可以将残差看作误差的观测值。

5,均方误差(mean-square error, MSE)

均方误差是反映实际值与预测值之间差异程度的一种度量,换句话说,实际值与预测值之差的平方的期望值。 MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。
在这里插入图片描述

6,均方根误差(root mean squared error,RMSE)

**均方根误差也称之为标准误差,是均方误差的算术平方根。**引入均方根误差与引入标准差(均方查)的原因是完全一致的,即均方误差的量纲与数据量纲不同,不能直观反映离散程度,故在均方误差上开平方根,得到均方根误差:

在这里插入图片描述

(二)计算方法(panads、numpy、 scikit-learn)

1,方差

import numpy as np
print("numpy 实现") 
rng = np.random.RandomState(1)
X = 10 * rng.rand(50)
### 默认计算总体方差  默认情况下,ddof=0。
print(f"总体方差 = {np.var(X)}")  
print(f"样本方差 = {np.var(X, ddof=1)}") # ddof :int, 可选“自由度增量”:计算中使用的除数为N-ddof,其中N表示元素数。 默认情况下,ddof=0。print("==========================") 
print("pandas 实现") 
df = pd.DataFrame(X.reshape(2,-1))
### 默认计算样本方差  默认情况下,ddof=1。
print(f"(行的)总体方差: {df.var(axis=1,ddof=0)}") # ddof :int, 可选“自由度增量”:计算中使用的除数为N-ddof,其中N表示元素数。 默认情况下,ddof=1。
print(f"(行的)样本方差: {df.var(axis=1)}")
"""
numpy 实现
总体方差 = 9.319529649367206
样本方差 = 9.509724132007353
==========================
pandas 实现
(行的)总体方差: 0     7.827693
1    10.664427
dtype: float64
(行的)样本方差: 0     8.153847
1    11.108778
dtype: float64
"""

2,标准差

print("numpy 实现") 
### 默认计算总体标准差 默认情况下,ddof=0。
print(f"总体标准差 = {np.std(X)}")  
print(f"样本标准差 = {np.std(X, ddof=1)}") # ddof :int, 可选“自由度增量”:计算中使用的除数为N-ddof,其中N表示元素数。 默认情况下,ddof=0。print("==========================") 
print("pandas 实现") 
df = pd.DataFrame(X.reshape(2,-1))
### 默认计算样本标准差  默认情况下,ddof=1。
print(f"(行的)总体标准差: {df.std(axis=1,ddof=0)}") # ddof :int, 可选“自由度增量”:计算中使用的除数为N-ddof,其中N表示元素数。 默认情况下,ddof=1。
print(f"(行的)样本标准差: {df.std(axis=1)}")
"""
numpy 实现
总体标准差 = 3.0527904692866175
样本标准差 = 3.0837840605346143
==========================
pandas 实现
(行的)总体标准差: 0    2.797801
1    3.265643
dtype: float64
(行的)样本标准差: 0    2.855494
1    3.332983
dtype: float64
"""

3,协方差

cov_df =  pd.DataFrame({"heigh": [152, 160, 172, 175, 180],"weight": [45, 54, 50, 70, 66],
})
print("pandas 实现") 
print(f"协方差: {cov_df.cov()}")
print(cov_df["heigh"].cov(cov_df["weight"]))print("numpy 实现") 
cov_np = np.array(cov_df.values)# rowvar=True(默认值)时,每行代表一个变量,每列代表一个样本;# rowvar=Fasle时,每列代表一个变量,每行代表一个样本。
print(f"协方差: {np.cov(cov_np,rowvar=False)}")"""
pandas 实现
协方差:          heigh  weight
heigh   132.20   96.75
weight   96.75  113.00
96.75
==========================
numpy 实现
协方差: [[132.2   96.75][ 96.75 113.  ]]
"""

5,均方误差/均方根误差

%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from math import sqrtrng = np.random.RandomState(1) # 随机种子
X = 10 * rng.rand(200)
Y = 2 * X - 5 + rng.rand(200)   #加入随机误差
##拟合直线
model = LinearRegression(fit_intercept=True)
model.fit(X[:100,np.newaxis],Y[:100]) xfit = np.linspace(0,10,1000)  
yfit = model.predict(xfit[:,np.newaxis])print(f"斜率 = {model.coef_[0]}")
print(f"截距 = {model.intercept_}")
"""
斜率 = 1.9959578249237235
截距 = -4.425648972091901
"""
plt.scatter(X,Y)
plt.plot(xfit,yfit)

在这里插入图片描述

X_test = X[101:]
Y_test = Y[101:]
Y_predict = model.predict(X_test[:,np.newaxis])
meanSquaredError=mean_squared_error(Y_test, Y_predict)
print("MSE:", meanSquaredError)
rootMeanSquaredError = sqrt(meanSquaredError)
print("RMSE:", rootMeanSquaredError)
"""
MSE: 0.08027495999765899
RMSE: 0.28332836073654716
"""

相关内容

热门资讯

用舞蹈书写《夜幕下的哈尔滨》叙...   舞蹈编导张恩淑。本报记者 刘洋摄  ■本报记者 于秋莹 封娇 于博洋  来自韩国的舞蹈编导张恩淑...
上保险!“保梯”又“保人” 玄武区首例,老旧小区加装电梯签署全生命周期综合保险协议上保险!“保梯”又“保人”南报网讯(通讯员 刘...
音飞储存质押触发鹰眼“风险”评... 截止2025年7月5日,音飞储存整体质押股份为4846.54万股,整体质押占总股本之比为16.47%...
天热更要护好“生命线” 转自:湖州日报  记者  忻媛  7月4日,烈日似火,又是一个高温酷暑天。7时许,市城市集团下属水务...
以色列空袭也门胡塞武装控制的红... 转自:新华社新华财经科威特城7月7日电(记者 尹炣)萨那消息:也门胡塞武装旗下多家媒体报道,以色列空...
双杰电气质押触发鹰眼“风险”评... 截止2025年7月5日,双杰电气整体质押股份为1.27亿股,整体质押占总股本之比为15.86%,累计...
德创环保质押触发鹰眼“风险”评... 截止2025年7月5日,德创环保整体质押股份为5405.00万股,整体质押占总股本之比为26.22%...
高口碑粤语音乐剧《大状王》本周... 转自:北京日报客户端近年来原创音乐剧中口碑极佳的粤语音乐剧《大状王》即将首次亮相北京,7月11日至2...
同和药业质押触发鹰眼“风险”评... 截止2025年7月5日,同和药业整体质押股份为411.00万股,整体质押占总股本之比为0.98%,累...
凯伦股份质押触发鹰眼“风险”评... 截止2025年7月5日,凯伦股份(维权)整体质押股份为1.54亿股,整体质押占总股本之比为40.67...