在给出明显等效的输入时,我试图理解这两个平滑函数的不同行为.我的理解是,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)
Run Code Online (Sandbox Code Playgroud)
产生这个情节:

locpoly给出平滑的绿线,并locfit给出摇摆的蓝线.显然,这里locfit具有较小的"有效"带宽,即使假定的带宽参数对于每个具有相同的值.
这些功能有何不同?