2.2 模型选择

模型的建立主要有两个步骤:第一,选择适合的模型;第二,根据数据不断优化模型,增强其对数据的解释力度。本章节以线性模型为例,阐述模型的一般使用场景与使用差异。

一、线性模型(Linear Model)

线性模型是通过一个或多个自变量来预测因变量,简单而言就是用多个xx(输入)来预测一个yy(输出),可以简单写成以下形式:

y=β0+β1x1+β2x2++βpxp+ϵ(2.2.1)y = \beta_0 + \beta_1x_1 + \beta_2x_2 + \cdots + \beta_px_p + \epsilon \tag{2.2.1}

其中yy代表因变量,β0β_0代表截距项,β1β_1β0β_0等代表系数(coefficients),x1x_1x2x_2等代表自变量。ϵ\epsilon代表误差项,通常假设其服从均值为0的高斯分布。

让我们来看一个粗略的例子。下面这个图展示了我国一个大概的放假随着人口增长的趋势图(只供示例)

图2.2.1 房价与人口的线性关系图

这样的一元线性关系可以用以下数学形式表达:

y=ax+by = a x + b

其中,yy是当地房价,xx是城市人口,aabb都是需要拟合的参数。

假设我们设置a=0.5a=0.5b=3b=3,即y=0.5x+3y=0.5x+3。这是用于生成模拟数据的真模型,在一般的应用场景下,这是未知的,在理想状态下通过原始数据建立起的拟合模型应该最大限度接近等于真模型。

通过上述代码,我们得到了100个相应的数据点。我们现在通过代码将得到的模拟数据和真模型绘制出来。

会得到如下图像:

图2.2.2 线性模型模拟结果

若模型表达式变成了这样:

y=β0+β1x+β2x2+β3x3++βnxn+ϵy = \beta_0 + \beta_1 x + \beta_2 x^2 + \beta_3 x^3 + \cdots + \beta_n x^n + \epsilon

其中,yy表示因变量,xx表示自变量,ββ表示系数,ϵϵ是误差项。

在此基础上,可以尝试将其改写为类似于线性模型的形式,即:

y=w0+w1x1+w2x2++wpxp+ϵy = w_0 + w_1 x_1 + w_2 x_2 + \cdots + w_p x_p + \epsilon

虽然这个模型可以用类似线性模型的方式书写表达式,但其本质上属于非线性模型。

示例:同样用当地人口预测城市房价,假设城市房价与当地人口存在以下关系:

y=ax2+bx+cy = ax^2 + bx + c

假设a=0.5a = 0.5b=3b = 3c=5c = 5,生成模拟数据:

由此我们获得了150个数据点,接下来我们绘制图像:

随后我们可以得到如下图像:

图2.2.3 线性化模型模拟结果

二、非线性模型(Nonlinear Model)

用于描述因变量与一个或多个自变量之间的关系,但是因变量与自变量之间无法写作线性组合的形式。其数学表达式一般写作:

y=f(x1,x2,,xp)+ϵy = f(x_1, x_2, \ldots, x_p) + \epsilon

其中,yy为因变量,x1x_1, x2x_2等为自变量,ff是一个非线性函数,ϵϵ是误差项。

示例:同样用当地人口预测城市房价,假设城市房价与当地人口存在以下关系:

y=log(x)y = \log(x)

其中y是当地房价,x是当前城市人口。我们通过如下代码来模拟数据:

我们同样得到了一系列数据点,随后我们绘制图像来直观显示模拟的结果:

随后我们可以得到如下的图像:

图2.2.4 非线性模型的模拟结果

三、模型之间的差异

线性与非线性模型之间存在一定差异,主要差异如下:

  1. 线性模型和线性化模型可以写作矩阵形式,而非线性模型一般不行。线性模型和线性化模型都可以写作矩阵形式y=WX+ϵy = WX + \epsilon。其中y是因变量,W是参数的矩阵,X是自变量的矩阵,ϵ表示误差项。可以写成矩阵形式在表达、计算和存储等方面有诸多便利。而非线性模型则无法写成矩阵形式。

  2. 线性模型较为简单,在优化过程中可能存在已从数学上证明的解析解法,我们也可以通过诸如最小二乘法等简单方法来计算最优参数结果。但非线性模型一般较为复杂,我们通常使用数值估计的方法来优化,比如最大似然估计(MLE)等。

最后更新于