原文链接:http://tecdat.cn/?p=26624
matlab 软件在拟合数据时应用最小二乘法。拟合须要一个参数模型,该模型将因变量数据与具备一个或多个系数的预测数据相关联。拟合过程的后果是模型系数的预计。
为了取得系数预计,最小二乘法最小化残差的平方和。_第 i_个数据点_ri_的残差定义为观测因变量值_yi_与拟合因变量值_ŷi_之间的差值,并标识为与数据相干的误差。
残差的平方和由下式给出
其中 _n_ 是拟合中蕴含的数据点的数量,_S_ 是误差预计的平方和。反对的最小二乘拟合类型包含:
- 线性最小二乘
- 加权线性最小二乘
- 持重最小二乘
- 非线性最小二乘
误差散布
在拟合蕴含随机变动的数据时,通常会对误差做出两个重要假如:
- 误差仅存在于响应数据中,而不存在于预测数据中。
- 误差是随机的,并遵循均值为零且方差为 _σ_ 2 的正态(高斯)散布。
第二个假如通常示意为
假如误差是正态分布的,因为正态分布通常为许多测量量的散布提供足够的近似值。
线性最小二乘
应用线性最小二乘法将线性模型拟合到数据。_线性_模型定义为系数为线性的 方程。例如,多项式是线性的,但高斯不是。为了阐明线性最小二乘拟合过程,假如您有 _n_ 个能够通过一次多项式建模的数据点。
为了求解未知系数 _p_ 1 和 _p_ 2 的这个方程,你能够将 _S_ 写成一个由两个未知数组成的 _n 个_ 联立线性方程组。如果 _n_ 大于未知数的数量。
因为最小二乘拟合过程使残差的平方和最小化,所以通过 对每个参数对_S_ 进行微分来确定系数,并将后果设置为零。
实在参数的估计值通常用 _b_示意。_用 b_ 1 和 _b_ 2 代替 p 1_和 _p 2,后面的方程变为
其中总和从 _i_ = 1 到 _n_。_方程_ 定义为
求解 _b_ 1
应用 _b_ 1 值求解 _b 2_
如您所见,预计系数 _p_ 1 和 _p_ 2 只须要一些简略的计算。将此示例扩大到更高次的多项式很简略,只管有点乏味。所须要的只是增加到模型中的每个线性项的附加正规方程。
在矩阵模式中,线性模型由公式给出
其中
- y_ 是一个 _n ×1 因变量向量。
- β 是一个 _m_ × 1 的系数向量。
- X_ 是模型的 _n × _m_ 设计矩阵。
- ε 是一个 _n_ × 1 误差向量。
对于一次多项式,两个未知数中的 _n 个_ 方程用 _y_、_X_和 β 示意为
该问题的最小二乘解是一个向量 _b_,它预计系数 β 的未知向量。正规方程由下式给出
其中 _XT_ 是设计矩阵 _X_的转置。求解 _b_,
您能够将 _b_插 回模型公式以获取预测的因变量值 _ŷ_。
残差由下式给出
加权最小二乘
通常假如因变量数据具备恒定的方差。如果违反此假如,您的拟合可能会受到低质量数据的适度影响。为了改善拟合,您能够应用加权最小二乘回归,其中在拟合过程中蕴含一个额定的比例因子(权重)。加权最小二乘回归最小化误差预计
其中 _wi_ 是权重。权重确定每个响应值对最终参数估计的影响水平。与低质量数据点相比,高质量数据点对拟合的影响更大。如果权重已知,或者有理由证实它们遵循特定模式,则倡议对数据进行加权。
您通常能够通过拟合数据和绘制残差来确定方差是否不恒定。在上面显示的图中,数据蕴含各种品质的反复数据,并且假如拟合是正确的。残差图中显示了品质差的数据,残差图具备“漏斗”形态,其中小的预测值在因变量值中产生的分布比大的预测值更大。
持重最小二乘
通常假如因变量误差遵从正态分布,极值很少见。_尽管如此,依然会呈现称为异样值_的极其值。
最小二乘拟合的次要毛病是它对异样值的敏感性。异样值对拟合有很大影响,因为对残差进行平方会放大这些极其数据点的影响。为了最大限度地缩小异样值的影响,您能够应用持重的最小二乘回归拟合您的数据。
- 最小相对残差 (LAR) — LAR 办法找到一条曲线,该曲线使残差的相对差值(而不是平方差)最小化。因而,极值对拟合的影响较小。
-
Bisquare weights – 此办法最小化加权平方和,其中赋予每个数据点的权重取决于该点与拟合线的间隔。线左近的点取得全副权重。离线较远的点会加重分量。比随机机会预期的间隔线更远的点的权重为零。
在大多数状况下,双平方权重办法优于 LAR,因为它同时寻求应用通常的最小二乘法找到适宜大部分数据的曲线,并且能够最大限度地缩小异样值的影响。
双平方权重的持重拟合应用迭代从新加权最小二乘算法,并遵循以下过程:
- 通过加权最小二乘拟合模型。
- 计算 _调整后的残差_ 并将它们标准化。调整后的残差由下式给出
_ri_ 是通常的最小二乘残差,_hi_ 是 通过缩小高_杠杆_ 数据点的权重来调整残差的杠杆,这对最小二乘拟合有很大影响。标准化调整残差由下式给出
- K_ 是等于 4.685 的调谐常数,_s 是由__MAD /0.6745 给出的持重标准偏差,其中_MAD_ 是残差的中值相对偏差。
- 计算鲁棒权重作为 _u_的函数。单方权重由下式给出
- 请留神,如果您提供本人的回归权重向量,则最终权重是持重权重和回归权重的乘积。
- 如果拟合收敛,那么你就实现了。否则,通过返回第一步执行拟合过程的下一次迭代。
下图将惯例线性拟合与应用单方权重的持重拟合进行了比拟。请留神,持重拟合遵循大量数据,不受异样值的强烈影响。
非线性最小二乘
应用非线性最小二乘公式将非线性模型拟合到数据。非线性模型定义为系数为非线性的方程,或系数为线性和非线性的组合。例如,高斯、多项式的比率和幂函数都是非线性的。
在矩阵模式中,非线性模型由公式给出
其中
- y_ 是一个 _n ×1 响应向量。
- _f_ 是 β 和 _X_的函数。
- β 是一个 _m_ × 1 的系数向量。
- X_ 是模型的 _n × _m_ 设计矩阵。
- ε 是一个 _n_ × 1 误差向量。
非线性模型比线性模型更难拟合,因为无奈应用简略的矩阵技术预计系数。相同,须要遵循以下步骤的迭代办法:
- 从每个系数的初始预计开始。对于一些非线性模型,提供了一种启发式办法,能够产生正当的起始值。对于其余模型,提供了区间 [0,1] 上的随机值。
-
生成以后系数集的拟合曲线。拟合因变量值 _ŷ_ 由下式给出
ŷ = f (X , b )
并且波及计算 _f_ (_X,b) 的__雅可比行列式_,它被定义为对于系数的偏导数矩阵。
- 调整系数并确定拟合是否有所改善。调整的方向和幅度取决于拟合算法。
- 通过返回到步骤 2 来迭代该过程,直到拟合达到指定的收敛规范。
您能够对非线性模型使用权重和持重拟合,并相应地批改拟合过程。
持重拟合示例
此示例显示如何比拟排除异样值和持重拟合的成果。该示例显示了如何从模型中排除大于 1.5 个标准差的任意距离处的异样值。而后,这些步骤将移除异样值与指定持重拟合进行比拟,从而升高异样值的权重。
创立基准正弦信号:
y0 = sin(xata);
向具备非恒定方差的信号增加噪声。
ydta = y0 + gnise + snise;
用基准正弦模型拟合噪声数据,并指定 3 个输入参数以取得包含残差在内的拟合信息。
f = ftye('a\*sin(b\*x)');
\[fi1,gof,fifo\] = fit(xdat
查看 fitinfo 构造中的信息。
从 fitinfo 构造中获取残差。
rsiduls = fno.rsis;
将“异样值”辨认为距基准模型大于 1.5 标准差的任意距离处的点,并在排除异样值的状况下从新拟合数据。
I = abs(resls) > 1.5 * std( esda
outlrs = exclaa(xaa,dta,'ind
fit2 = fit(xdta,yda
将排除异样值的成果与在持重拟合中给予它们较低的单方权重的成果进行比拟。
绘制数据、异样值和拟合后果。指定一个信息图例。
plot(fit1,'r-',xda
绘制思考异样值的两个拟合的残差:
figure
plot(fit2,xdata,ydat
hold on
plot(fit3,xdata,ydat
hold off
最受欢迎的见解
1.R 语言多元 Logistic 逻辑回归 利用案例
2. 面板平滑转移回归 (PSTR) 剖析案例实现剖析案例实现 ”)
3.matlab 中的偏最小二乘回归(PLSR)和主成分回归(PCR)
4.R 语言泊松 Poisson 回归模型剖析案例
5.R 语言回归中的 Hosmer-Lemeshow 拟合优度测验
6.r 语言中对 LASSO 回归,Ridge 岭回归和 Elastic Net 模型实现
7. 在 R 语言中实现 Logistic 逻辑回归
8.python 用线性回归预测股票价格
9.R 语言如何在生存剖析与 Cox 回归中计算 IDI,NRI 指标