В статистике термин lowess относится к «локально взвешенному сглаживанию диаграммы рассеяния» — процессу создания плавной кривой, которая соответствует точкам данных на диаграмме рассеяния.
Чтобы выполнить сглаживание lowess в R, мы можем использовать функцию 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)
Шаг 3: Постройте кривую Лоусса
Далее, давайте построим кривую сглаживания минимума по точкам на диаграмме рассеяния:
#create scatterplot
plot(df$x, df$y)
#add lowess smoothing curve to plot
lines(lowess(df$x, df$y), col='red')

Шаг 4. Настройте более плавный диапазон (необязательно)
Мы также можем настроить аргумент f в функции lowess(), чтобы увеличить или уменьшить значение, используемое для более гладкого диапазона.
Обратите внимание, что чем больше значение, которое мы указываем, тем более гладкой будет кривая lowess.
#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'))

Дополнительные ресурсы
Как построить несколько линий на одном графике в R
Как создать диаграмму рассеяния с линией регрессии в R
Как выполнить полиномиальную регрессию в R