> Debemos también programar un h óptimo?
Si, se propone calcular un "h" optimo, que se pueda utilizar con distintos núcleos; ver el material teórico de la clase 21.
> Me complica la parte de la sumatoria de los K(x-Xi).
El estimador es una suma de funciones centradas en las observaciones. Una idea es, en un primer paso, armar una grilla para los valores de "x" donde se va evaluar el estimador, y en un segundo paso, evaluar el kernel en cada uno de esos puntos.
Para armar la grilla en R se puede usar, por ejemplo, la función seq. Es vital que cubra el rango de valores xi de los datos, y que el paso (que se puede especificar con la opción "by") sea lo suficientemente chico.
Notar que en R, las funciones automáticamente se sobrecargan aceptar tanto escalares como vectores; por ejemplo, si tu definis
K_gauss <- function(u){1/sqrt(2*pi) * exp(-u^2 / 2)
Esta función se puede utilizar automaticamente con estos dos tipos de entrada:
R> K_gauss(1.0)
[1] 0.2419707
R> K_gauss(c(1.0, 2.0))
[1] 0.24197072 0.05399097
Este comportamiento permite que uno pueda escribir codigo para trabajar con vectores que se parece al que uno escribe en el papel. Por ejemplo, si quiero evaluar el kernel en los puntos x1 = 1.0 y x2 = 2.0, para todos los valores del vector grilla xgrid que comentaba en el párrafo anterior, se puede hacer:
R> sapply(c(1.0, 2.0), function(u) K_gauss(xgrid - u))
Este comando va a generar una matrix con dos columnas (una por cada valor de "xi"), y tantas filas como valores tenga la grilla de las "x".
Espero que sirva,
Saludos,
Marcelo.-