35 R非参数回归 您所在的位置:网站首页 r语言拟合函数表达式 35 R非参数回归

35 R非参数回归

2024-05-06 19:51| 来源: 网络整理| 查看: 265

35 R非参数回归 35.1 模型

线性回归模型可以看成非线性回归模型的特例: \[Y = f(X) + \varepsilon\] 其中\(f(x)\)为未知的回归函数。

参数方法:假定\(f(x)\)具有某种形式,如

\(f(x) = a + b x\): 线性回归; \(f(x) = a + b x + c x^2\): 二次多项式回归; \(f(x) = A e^{bx}\): 指数模型,等等。

二次多项式回归可以令\(X_1 = x, X_2 = x^2\), 变成二元回归模型来解决。 指数模型可以令\(z = \ln Y\), 模型化为\(z = a + bx\)。 有一些曲线模型可以通过变换化为线性回归。

在多元情形, 一般的非线性回归模型为 \[ Y = f(x_1, x_2, \dots, x_p) + \varepsilon \] 但是这样可选的模型就过于复杂, 难以把握。 比较简单的是不考虑变量之间交互作用的可加模型:

\[ Y = \sum_{j=1}^p f_j(x_j) + \varepsilon \] 其中\(f_j(\cdot)\)是未知的回归函数, 需要满足一定的光滑性条件。

\(f_j(\cdot)\)可以是参数形式的, 比如二次多项式、三次多项式、阶梯函数等。 较好的一种选择是使用三次样条函数。

所谓参数回归, 是指回归函数\(f(\cdot)\)有预先确定的公式, 仅需要估计\(f(\cdot)\)的未知参数; 非参数回归, 就是\(f(\cdot)\)没有预先确定的公式, \(f(\cdot)\)的形式本身也依赖于输入的样本\((x_i, y_i)\), \(i=1,2,\dots,n\)。 下面描述的核回归就是这样典型的非参数回归, 样条平滑、样条函数回归一般也看作是非参数回归。

35.2 样条平滑

为了得到一般性的\(Y\)与\(X\)的曲线关系\(f(x)\)的估计, 可以使用样条函数。 三次样条函数将实数轴用若干个节点(knots) \(\{ z_k \}\)分成几段, 每一段上\(\hat f(x)\)为三次多项式, 函数在节点处有连续的二阶导数。 样条函数是光滑的分段三次多项式。 通常我们使用“自然样条函数”, 在最左边和最右边这两段为线性函数。

用样条函数估计\(f(x)\)的准则是曲线接近各观测值点 \((x_i, y_i)\),同时曲线足够光滑。

在R中用stats::smooth.spline函数进行样条曲线拟合。 取每个自变量\(x_i\)处为一个节点, 对于给定的某个光滑度/模型复杂度系数值\(\lambda\), 求函数\(f(x)\)使得 \[\begin{align} \min_{f(\cdot)} \left\{ \sum_i [y_i - f(x_i)]^2 + \lambda \int [f''(x)]^2 \,dx \right\} \tag{35.1} \end{align}\] 目标函数中第一项越小, 拟合误差越小, 但是也越容易产生过度拟合; 目标函数中第二项度量了函数\(f(\cdot)\)的不光滑性, 是一个对模型复杂度的惩罚项, \(\lambda\)为调节参数,\(\lambda\)越大, 惩罚越重,所得的曲线越光滑。 smooth.spline()函数可以通过交叉验证方法自动取得一个对于预测最优的光滑参数\(\lambda\)值。

问题(35.1)的理论解称为光滑样条, 是一个自然样条函数, 节点为输入的\(x_i\)的所有不同值。 此理论解与§35.4直接指定这些节点进行样条函数回归的结果不同, 是依赖于调节参数\(\lambda\)进行了不光滑性惩罚的结果。 调节参数\(\lambda\)可以用交叉验证方法选择, 只要在smooth.spline()函数中指定cv=TRUE。 也可以指定spar选项或者df选项, 这里df代表“等效自由度”, 是模型复杂度的一个度量方式。

下面的程序模拟产生了一个非线性回归数据集, 然后用stats::smooth.spline()进行样条平滑估计:

set.seed(1) nsamp


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有