数模4:拟合算法(Fitting Algorithm)

目录

1.简介

2.模型

(1)本质

(2)评价

3.代码

4.REFERENCE


1.简介

        与插值算法不同,拟合算法不需要曲线一定经过给定的点。拟合算法的目标是寻求一个函数(曲线),使得该曲线在某种准则下与所有的数据点最为接近,即曲线拟合的最好(最小化损失函数)。

        虽然插值算法的Roung现象可以通过分段来缓解,但是通常我们更加倾向于找的一条确定曲线,尽可能减小误差同时不需要每次都重新确定。


2.模型

(1)本质

        拟合出一个函数,使得误差最小,最常见的准则是最小二乘法(Least Square Method):

这里以拟合函数为y=kx+b为例:

取样本点(x_{i},y_{i}),i=1,2,\cdots,n,令拟合值为{\hat{y}}_{i}=kx_{i}+b,拟合目标为:

\hat{k},\hat{b}=arg\min_{k,b}(\sum_{i=1}^n(y_i-\hat{y}_i)^2)=arg\min_{k,b}(\sum_{i=1}^n(y_i-kx_i-b)^2)

其中,损失函数(残差平方和)L:

L=\sum_{i=1}^{n}(y_{i}-kx_{i}-b)^{2}

对于多元函数求最小值,求偏导:

\begin{cases}\displaystyle\frac{\partial L}{\partial k}=-2\sum_{i=1}^nx_i(y_i-kx_i-b)=0\\\displaystyle\frac{\partial L}{\partial b}=-2\sum_{i=1}^n(y_i-kx_i-b)=0\end{cases}\Rightarrow\begin{cases}\displaystyle\sum_{i=1}^nx_iy_i=k\sum_{i=1}^nx_i^2+b\sum_{i=1}^nx_i\\\displaystyle\sum_{i=1}^ny_i=k\sum_{i=1}^nx_i+bn\end{cases}\Rightarrow\begin{cases}\displaystyle n\sum_{i=1}^nx_iy_i=kn\sum_{i=1}^nx_i^2+bn\sum_{i=1}^nx_i\\\displaystyle\sum_{i=1}^ny_i\sum_{i=1}^nx_i=k\sum_{i=1}^nx_i\sum_{i=1}^nx_i+bn\sum_{i=1}^nx_i\end{cases}

理论值如下:

\hat{k}=\frac{n\sum_{i=1}^nx_iy_i-\sum_{i=1}^ny_i\sum_{i=1}^nx_i}{n\sum_{i=1}^nx_i^2-\sum_{i=1}^nx_i\sum_{i=1}^nx_i}, \quad\hat{b}=\frac{\sum_{i=1}^nx_i^2\sum_{i=1}^ny_i-\sum_{i=1}^nx_i\sum_{i=1}^nx_iy_i}{n\sum_{i=1}^nx_i^2-\sum_{i=1}^nx_i\sum_{i=1}^nx_i}

(2)评价

        对于拟合的优劣衡量大致有以下几个标准:

  1. 总体平方和(Total Sum of Square,SST):SST=\sum_{i=1}^n(y_i-\overline{y})^2
  2. 误差平方和(Sum of Error Square,SSE):SSE=\sum_{i=1}^n(y_i-\hat{y}_i)^2
  3. 回归平方和(Sum of Regression Square,SSR):SSR=\sum_{i=1}^{n}(\hat{y}_{i}-\overline{y})^{2}

有一个重要的关系:

SST=SSR+SSE

拟合优度:

0\leq\color{red}{R^2}\color{black}=\frac{SSR}{SST}=\frac{SST-SSE}{TSS}=\color{red}{1-\frac{SSE}{SST}}\color{black}~\leq~1

R^2越接近1,说明误差平方和越接近0,误差越小。

注:R^2仅用于线性函数的拟合结果评价,其他函数(复杂的指数函数等)拟合度优劣直接看SSE,R^2可能为负这里的线性是针对拟合的参数,而非原函数的自变量。

参考下文[1]:

如何判断线性于参数?

在函数中,参数仅以一次方出现,且不能乘以或除以其他任何的参数,并不 能出现参数的复合函数形式

  1. \rm Y=\beta_{1}+\beta_{2}X+\beta_{3}X^{2}
  2. \rm Y=\mathbf{e}^{\beta_{1}+\beta_{2}X}
  3. \rm Y=\beta_{1}+\beta_{2}X+\beta_{3}X^{2}+\beta_{4}X^{3}

以上均属于线性于参数,而y=a/(x-b\text{ })^2, \quad y=a\sin(b+cx)均不是。


3.代码

Matlab中有 cftool 工具箱:

 

4.REFERENCE

[1]. 古扎拉蒂《计量经济学基础》第五版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值