数据拟合
统计学中的一个基本活动就是使用一小部分数据进行建模,通过数字拟合出模型。
与物理模型相似,统计模型是对数据结构的一个简化描述,数据可以表示为:[data = model + error ]
数据可分为两部分意思:一部分是由统计模型描述,表示期望数据可以通过我们简化形式表示出来,另一部分是误差,反映模型表达的结果与观察到的数值之间的差异。
我们希望模型能做到:
1、能很好地描述数据(即具有尽可能小的误差)
2、能够很好地泛化到新的数据集(预测时误差尽可能小)
事实证明,这两个目标经常会冲突。误差小的模型在泛化到新的数据集时往往表现更差。更复杂的模型在很大程度上受到第一个数据集中特定数据点的影响,由于这些数据点的确切位置是由随机噪声驱动的,这导致模型在新的数据集上拟合不佳。这称为过度拟合。
统计模型是通过模型参数来描述模型的,我们可以修改这些参数的值来修改模型的预测。但是,我们通常不知道参数的真实值,因此我们必须从数据中来估计它们。
如何估计模型中参数的最佳值?
通常,误差大小表示了数据与模型预测值的差异程度,因此,我们根据误差的大小来定义模型的好坏。在所有条件相同的情况下,产生的误差较小的模型就是好的模型。
为了找到模型参数的最佳值,通常我们先尝试找到一个平均误差为零的估计量,通常使用均值。注意的是 平均误差为零并不是最好的标准。因为,每个观察值都存在一定的误差,有些误差是正的,有些误差是负的。正误差和负误差相互抵消,可以得到为零的平均误差,但也意味着正负误差在绝对值上可能具有不同的误差大小,但仍可得到相同的平均误差。因此,我们希望能最小化总体误差大小,通常使用每个误差的绝对值、误差的平方和(方差)或 方差的平均根(标准差)。
不使用方差的原因是:方差的大小取决 于数据的数量,除非我们查看相同数量的观察值,否则很难解释方差。
不使用均方差(MSE)的原因是,由于在平均之前对取值进行了平方,它的量度与原始数据不在同一量度上(单位不同)
通常我们使用均方根误差(RMSE)来最小化总体误差。
【注:方差与均方差、标准差与均方根差的计算公式相近,主要区别是前者(方差和标准差)的计算是观测值与均值做差,而后者(均方差和均方根差)是观测值与真值做差。】
数据的集中趋势和离散度
我们在使用均值来汇总数据时,均值 mean 就描述了数据集的”中心趋势“——即数据以什么为中心。但均值对极值高度敏感,比如我们谈平均工资时,如果一名公司老总的年收入为100W,10名普通员工年收入为10W,用均值为说明工资时,平均工资为(100W+10W*10)/11,约为18W,但这里只有公司老总年收入超过18W。
所以如果想以对极值不太敏感的方式汇总数据,就可以使用 中位数median 的统计量。特别是统计收入时,使用收入中位数传统比平均值更能代表整个群体;中位数是将所有数值按大小顺序进行排序,取中间的数值。中位数带来的好处是 最小化了绝对值误差的总和。
例:对这串数字,8 6 3 14 12 7 6 4 9,
我们根据均值(7.67)来汇总,误差计算如下:
平均绝对误差 MAE=[|8 - 7.6667|+|6 - 7.6667|+|3 - 7.6667|+|14 - 7.6667|+|12 - 7.6667|+|7 - 7.6667|+|6 - 7.6667|+|4 - 7.6667|+|9 - 7.6667|]/9
= (0.3333 + 1.6667 + 4.6667 + 6.3333 + 4.3333 + 0.6667 + 1.6667 + 3.6667 + 1.3333)/9
=2.74
平均绝对百分比误差 MAPE=(0.3333/7.6667+1.6667/7.6667+4.6667/7.6667+6.3333/7.6667+4.3333/7.6667+0.6667/7.6667+1.6667/7.6667
+3.6667/7.6667+1.3333/7.6667)/9
=35.57%
均方差 MSE = (0.3333²+1.6667² +4.6667²+6.3333² +4.3333²+0.6667²+1.6667²+3.6667² +1.3333²) /9 = 11.33
均方根差 RMSE= √11.33 = 3.37
标准差 σ= RMSE ≈ 3.37
根据中位数(7)来汇总,排序后为:3, 4, 6, 6, 7, 8, 9, 12, 14,误差计算如下:
平均绝对误差 MAE=[|3 - 7|+|4 - 7|+|6 - 7|+|6 - 7|+|7 - 7|+|8 - 7|+|9 - 7|+|12 - 7|+|14 - 7|]/9
= (4 + 3 + 1 + 1 + 0 + 1 + 2 + 4 + 7 )/9
=2.67
平均绝对百分比误差 MAPE=(4/7+3/7+1/7+1/7+0+1/7+2/7+4/7+7/7)/9=24/63=38.10%
均方差 MSE = (4²+3² +1²+1² +0²+1²+2²+4² +7²) /9 = 11.78
均方根差 RMSE= √11.78 = 3.43
标准差 σ= RMSE ≈ 3.37
【说明】:
平均绝对误差(MAE):计算每个数据点与均值之差的绝对值,然后取平均。
均方误差(MSE):计算每个数据点与均值之差的平方,然后取平均。
均方根误差(RMSE):MSE的平方根。
平均绝对百分比误差(MAPE):每个数据点的绝对误差除以均值,取绝对值后求平均,再乘以100%得到百分比。
方差和标准差:方差是MSE,标准差是RMSE,
我们还可以选用众数 mode 来汇总数据。众数是指数据中出现次数最多的数,它的核心是找出“最常见的情况”,特别在分类数据、多峰分布、极端异常数据干扰或离散型数据场景下。比如上述提到的平均工资问题,使用均值 或 中位数,并没有表示出 大多数人的收入水平,如果想了解最常见的收入水平,众数就显示更合适了(极值的影响);又如当统计学生成绩分布出现两个峰值时,使用均值会将分值拉向中间,中位数又可能位于两峰之间,无法体现出两端的差异,这时使用众数可以找到人数最多的分数段(数据多峰分布);又如,在对男女性别、偏好等分类数据进行统计时,分类数据无法计算均值或中位数,就只能使用众数作为数据集的”中心趋势“。再如,对家庭子女进行统计时,一孩、二孩、三孩 家庭统计,离散数据取值有限的情况下,也是使用众数汇总数据。
有关众数的一个古代故事:在古希腊时期,斯巴达与雅典在公元前431年爆发一场战争,雅典军队被斯巴达领导的伯罗奔尼撒军队围困在城墙内,为了逃脱,雅典军队需要知道城墙的高度,以便建造合适的梯子。他们发现了城墙的一处粉刷不仔细,可以根据测量砖的层数计算城墙的高度。许多人开始数砖的层数。其中可能有些人会数错,但大多数人会数对,通过分析报告中出现最多的砖块层数,雅典军队估算出了城墙的高度,并制造了适合翻越城墙的云梯。
以上说明了使用均值、中位数、众数等来汇总数据,这都涉及到一个问题:如何概括一组相似的但又不完全相同的测量数据。无论使用那种数据,关键是根据具体情况确定汇总数据更准确地反映问题的实质,这本身是一件非常困难的事。
实际上,为了使数据更能准确反映问题,常还使用诸如截尾均数,“四分数”,加权均数(指数)等描述性数字。
与数据的中心趋势相对应,“离散 dispersion” 用来描述 数据的分散程度,常用的度量是:方差 variance 和 标准差 standard deviation。
需要注意的是 不能使用 偏差 bias 来描述数据的分散程度。偏差是数值与均值之间的差(偏差=数值-均值),由于每个数据的频数是不同的,当两个数据与均值的偏差分别是 “-1” 和“1”时,它们偏离均值的幅度是相同的,但使用偏差计算时,正负相抵得到的结果太小,不能有效的反映数据的分散程度。
准确度和精确度
准确度 accuracy 描述的是测量值与真实值之间的接近程度。 精确度 precision 描述的则是多次测量结果的一致性。在打靶过程中,准确度是指子弹越接近靶心,准确度越高,子弹越集中在一个小区域中,精确度就越高,但未必准确。
Z分数
在根据分布的集中趋势和离散度来描述数据分布后,有时需要知道单个分数相对于整体分布的位置。Z分数就是用来表示一个数据点距离均值有多少个标准差(以标准差为单位表示数据点与均值间的距离)。
Z 分数不会改变数据点的相对分布(从散点图中可观察)。
Z分数的描述来自于Z分布(即标准正态分布——均值为零且标准差为1的正态分布)。
Z分数可以用于比较不同变量的分布,异常值的检测,以及 计算概率、置信区间和假设检验。