当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R loess 局部多项式回归拟合


R语言 loess 位于 stats 包(package)。

说明

使用局部拟合拟合由一个或多个数值预测变量确定的局部多项式曲面。

用法

loess(formula, data, weights, subset, na.action, model = FALSE,
      span = 0.75, enp.target, degree = 2,
      parametric = FALSE, drop.square = FALSE, normalize = TRUE,
      family = c("gaussian", "symmetric"),
      method = c("loess", "model.frame"),
      control = loess.control(...), ...)

参数

formula

formula 指定数字响应和一到四个数字预测变量(最好通过交互指定,但也可以附加指定)。如有必要,将强制采用公式。

data

包含模型中变量的可选 DataFrame 、列表或环境(或由 as.data.frame 强制转换为 DataFrame 的对象)。如果在 data 中找不到,则从 environment(formula) 中获取变量,通常是调用 loess 的环境。

weights

每种情况的可选重量。

subset

要使用的数据子集的可选规范。

na.action

在响应或预测变量中缺失值时要采取的操作。默认值由 getOption("na.action") 给出。

model

模型框架应该退回吗?

span

参数 控制平滑程度。

enp.target

另一种指定 span 的方法,作为要使用的参数的近似等效数量。

degree

要使用的多项式的次数,通常为 1 或 2。(也允许次数为 0,但请参阅“注释”。)

parametric

任何条款是否应该在全局范围内而不是在本地范围内适用?术语可以通过名称、数字或与预测变量数量相同长度的逻辑向量来指定。

drop.square

对于多个预测变量和 degree = 2 的拟合,是否应该针对特定预测变量删除二次项?术语的指定方式与 parametric 相同。

normalize

如果有多个预测变量,是否应该将其标准化为通用比例?使用的归一化是将 10% 修剪标准差设置为 1。对于空间坐标预测器和其他已知的通用比例尺,设置为 false。

family

如果 "gaussian" 拟合是通过最小二乘法进行的,并且如果 "symmetric" 则将重新降序 M 估计器与 Tukey 的双权重函数一起使用。可以缩写。

method

拟合模型或仅提取模型框架。可以缩写。

control

控制参数:参见loess.control

...

也可以直接提供控制参数(如果未指定control)。

细节

装配是在本地完成的。也就是说,对于点 处的拟合,使用 邻域中的点进行拟合,并按它们与 的距离进行加权(计算距离时忽略 ‘parametric’ 变量中的差异)。邻域的大小由 控制(由 spanenp.target 设置)。对于 ,邻域包括点的比例 ,并且这些点具有三次权重(与 成比例)。对于 ,使用所有点,“最大距离”假定为 乘以 解释变量的实际最大距离。

对于默认族,拟合是通过(加权)最小二乘法进行的。对于 family="symmetric",使用了带有 Tukey 双权重的 M-estimation 过程的几次迭代。请注意,由于初始值是最小二乘拟合,因此这不需要是非常稳定的拟合。

调整控制列表以获得可接受的速度可能很重要。有关详细信息,请参阅loess.control

"loess" 的对象,具有 print()summary()predictanova 方法。

注意

由于这是基于 cloess 的,因此它与 S 的 loess 函数类似但不完全相同。特别是,未实现调节。

loess 的此实现的内存使用量大致是点数的二次方,1000 个点大约占用 10Mb。

degree = 0 ,局部常量拟合,在此实现中允许,但未记录在参考中。似乎很少经过测试,因此请谨慎使用。

例子

cars.lo <- loess(dist ~ speed, cars)
predict(cars.lo, data.frame(speed = seq(5, 30, 1)), se = TRUE)
# to allow extrapolation
cars.lo2 <- loess(dist ~ speed, cars,
                  control = loess.control(surface = "direct"))
predict(cars.lo2, data.frame(speed = seq(5, 30, 1)), se = TRUE)

作者

B. D. Ripley, based on the cloess package of Cleveland, Grosse and Shyu.

来源

Cleveland、Grosse 和 Shyu 的 1998 版 cloess 包。更高版本可在 https://netlib.org/a/ 处作为 dloess 获得。

参考

W. S. Cleveland, E. Grosse and W. M. Shyu (1992) Local regression models. Chapter 8 of Statistical Models in S eds J.M. Chambers and T.J. Hastie, Wadsworth & Brooks/Cole.

也可以看看

loess.controlpredict.loess

lowessloess 的祖先(具有不同的默认值!)。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Local Polynomial Regression Fitting。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。