【读书笔记】《深入浅出数据分析》第十、十一章 回归、合理误差
创始人
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
"""

相关内容

热门资讯

佳发教育涨2.05%,成交额4... 7月8日,佳发教育盘中上涨2.05%,截至13:15,报11.44元/股,成交4645.13万元,换...
平安电工2025年7月8日涨停... 2025年7月8日,平安电工(sz001359)触及涨停,涨停价40.41元,涨幅9.99%,总市值...
8人被刑拘!甘肃天水通报幼儿血... 央视新闻客户端、人民日报客户端7月8日,甘肃天水市联合调查组发布关于天水市麦积区培心幼儿园幼儿血铅异...
互联网创业真的容易吗?我看未必... 互联网创业真的容易吗?我看未必分类:创业故事|Word文档下载互联网创业真的容易吗?我看未必我们一直...
创业公司 创业公司 创业公司值... 时不时冒出创业的冲动,想去做个屌爆的产品?创业公司忽悠你加入,说的是天花乱坠,到底真靠谱假靠谱?身边...
初中道德与法治评论题答题格式是... 初中道德与法治评论题答题格式是什么?“从不同的角度对上述材料进行分析评论”这种题应该怎么答?要写“答...
创业货款 创业货款 创业者 有的时候,如果我们想要贷款的话,大部分的人都会选择一个比较适合自己的,如果是创业贷款必须要满足一定的...
旭光电子股价跌5.02%,华夏... 7月8日,旭光电子跌5.02%,截至发稿,报12.68元/股,成交5.87亿元,换手率5.45%,总...
八戒包子加盟费多少,小本投资即... 对于包子类的早点小吃来说自然是现在更不错的选择,现在市面上有很多的特色餐饮小吃,尤其是对于包子类的品...
味丰源包子 总投资11 08万... 味丰源包子是深受顾客酷爱美食,传承自正宗的特征包子加盟,却又拥有了专归于自己的特征,在包子加盟市场显...