如何在 r 中执行弱平滑(逐步)
在统计学中,术语Lowess指的是“局部加权点云的平滑”——生成与点云中的数据点相对应的平滑曲线的过程。
要在 R 中执行 Lowess 平滑,我们可以使用lowess()函数,该函数使用以下语法:
较低(x、y、f = 2/3)
金子:
- x: x 值的数值向量。
- y: y 值的数值向量。
- f:最平滑程度的值。这给出了图中影响每个值的平滑的点的比例。值越高,平滑度越高。
以下分步示例展示了如何在 R 中对给定数据集执行弱平滑。
第 1 步:创建数据
首先,让我们创建一个假数据集:
df <- data. frame (x=c(1, 1, 2, 2, 3, 4, 6, 6, 7, 8, 10, 11, 11, 12, 13, 14), y=c(4, 7, 9, 10, 14, 15, 19, 16, 17, 21, 22, 34, 44, 40, 43, 45))
第 2 步:绘制数据图
接下来,我们绘制数据集的 x 和 y 值:
plot(df$x, df$y)
第三步:绘制最小曲线
接下来,我们在散点图中的点上绘制最弱的平滑曲线:
#create scatterplot plot(df$x, df$y) #add lowess smoothing curve to plot lines(lowess(df$x, df$y), col=' red ')
第 4 步:调整较软的范围(可选)
我们还可以调整 lowess() 函数中的f参数来增加或减少用于平滑程度的值。
请注意,我们提供的值越大,下部曲线就越平滑。
#create scatterplot plot(df$x, df$y) #add lowess smoothing curves lines(lowess(df$x, df$y), col=' red ') lines(lowess(df$x, df$y, f=0.3), col=' purple ') lines(lowess(df$x, df$y, f=3), col=' steelblue ') #add legend to plot legend(' topleft ', col = c(' red ', ' purple ', ' steelblue '), lwd = 2, c(' Smoother = 1 ', ' Smoother = 0.3 ', ' Smoother = 3 '))