Локальная линейная регрессия в R - locfit() vs locpoly()
Я пытаюсь понять различное поведение этих двух сглаживающих функций при наличии, по-видимому, эквивалентных входных данных. Мое понимание заключалось в том, что locpoly
просто принимает фиксированный аргумент пропускной способности, в то время как locfit
может также включать переменную часть в свой параметр сглаживания (фракция ближайших соседей, nn
). Я думал, что установка этой переменной в нуль в locfit
должна заставить компонент " h
" действовать как фиксированная полоса пропускания, используемая в locpoly
, но это, очевидно, не так.
Рабочий пример:
library(KernSmooth)
library(locfit)
set.seed(314)
n <- 100
x <- runif(n, 0, 1)
eps <- rnorm(n, 0, 1)
y <- sin(2 * pi * x) + eps
plot(x, y)
lines(locpoly(x, y, bandwidth=0.05, degree=1), col=3)
lines(locfit(y ~ lp(x, nn=0, h=0.05, deg=1)), col=4)
Производит этот сюжет:
locpoly
дает гладкую зеленую линию, а locfit
дает синюю синюю линию. Очевидно, что locfit
имеет здесь меньшую "эффективную" полосу пропускания, хотя предполагаемый параметр полосы пропускания имеет одинаковое значение для каждого.
Каковы эти функции по-разному?