library(ggplot2)
library(plotly)
library(caret)
<- 500
n <- runif(n, 0, 1.5)
x <- function(x) (cos(2.5*exp(1.1*x))^2/(2.1*sqrt(x)+exp(1)/pi))
f <- rnorm(n, 0, 0.2)
error <- f(x) + error
y <- data.frame(x,y)
datos
<- ggplot(data = data.frame(x,y)) + ylim(-0.3, 1) + xlim(-0.1, 1.6) + geom_point(aes(x=x, y=y)) + geom_line(aes(x = x, y = f(x)), col = "blue", lwd = 1)
fig1
ggplotly(fig1)
13 Suavizadores locales
13.1 Kernel Smoothing
Otra gran familia de modelos predictivos son los conocidos métodos de suavizado con kernel. A diferencia de los modelos vistos hasta ahora, estos predicen de forma local. Caen dentro de los métodos no paramétricos. Ya hemos visto uno de estos algoritmos: KNN.
- Recordemos el algoritmo de \(k\) vecinos más cercanos \[\hat{f}(x_0)=\frac{1}{k} \sum_{i:x_i \in \mathcal{N}_k(x_0)} y_i\]
- La predicción se hace punto a punto (de forma local).
- \(\mathcal{N}_k(x_0)\) Es el vecindario del punto \(x_0\), es decir, el conjunto de los \(k\) puntos más cercanos a \(x_0\).
- La predicción es sencillamente el promedio (de la variable \(y\) claro está) para aquellos \(k\) puntos más cercanos a \(x_0\).
- Sencillo, pero aún así muy efectivo para algunos casos.
14 Veamos una simulación
Consideremos el mismo conjunto de datos