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


R lowess 散点图平滑


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

说明

此函数使用 locally-weighted 多项式回归执行 LOWESS 平滑器的计算(请参阅引用)。

用法

lowess(x, y = NULL, f = 2/3, iter = 3, delta = 0.01 * diff(range(x)))

参数

x, y

给出散点图中点坐标的向量。或者,可以指定单个绘图结构 - 请参阅xy.coords

f

跨度越平滑。这给出了图中影响每个值的平滑度的点的比例。值越大,平滑度越高。

iter

应该执行的 ‘robustifying’ 迭代次数。使用较小的 iter 值将使 lowess 运行得更快。

delta

查看具体信息'。默认为 x 范围的 1/100。

细节

lowess由复杂的算法定义,Ratfor 的原始算法(由 W. S. Cleveland 编写)可以在R源文件‘src/library/stats/src/lowess.doc’。通常使用局部线性多项式拟合,但在某些情况下(参见文件)可以使用局部常数拟合。 “本地”是根据到目的地的距离来定义的floor(f*n)th 最近邻,并且三次加权用于x属于邻域内。

初始拟合是使用加权最小二乘法完成的。如果iter > 0,使用接近的权重的乘积来完成进一步的加权拟合x从上一次迭代的残差得出的值和案例权重。具体来说,案例权重是 Tukey 的双权重,截止值是残差 MAD 的 6 倍。 (当前R如果 MAD 实际上为零,则实现与原始实现的不同之处在于停止迭代,因为在这种情况下算法非常不稳定。)

delta 用于加速计算:不是计算每个数据点的局部多项式拟合,而是不会计算最后计算点的 delta 内的点,并且使用线性插值来填充拟合值跳过的点。

lowess 返回一个包含组件 xy 的列表,它们给出了平滑的坐标。可以使用函数 lines 将平滑添加到原始点的图中:请参阅示例。

例子

require(graphics)

plot(cars, main = "lowess(cars)")
lines(lowess(cars), col = 2)
lines(lowess(cars, f = .2), col = 3)
legend(5, 120, c(paste("f = ", c("2/3", ".2"))), lty = 1, col = 2:3)

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988). The New S Language. Wadsworth & Brooks/Cole.

Cleveland, W. S. (1979). Robust locally weighted regression and smoothing scatterplots. Journal of the American Statistical Association, 74, 829-836. doi:10.1080/01621459.1979.10481038.

Cleveland, W. S. (1981) LOWESS: A program for smoothing scatterplots by robust locally weighted regression. The American Statistician, 35, 54. doi:10.2307/2683591.

也可以看看

loess ,基于公式的新版本 lowess(具有不同的默认值!)。

相关用法


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