Tengo un conjunto de puntos (xi,yi)∈R+×R, i=1,...,n, (xi son las variables independientes e yi son las variables dependientes o respuestas) que quiero ajustar usando splines (estoy abierto a cualquier elección en este momento). Por lo tanto, quiero crear la función interpoladora S(x):R+→R. Sin embargo, necesito restringir S(x) para que satisfaga dS(x)dx≥f(x), donde f es una función conocida. ¿Es esto posible? En caso afirmativo, ¿hay alguna herramienta en R para hacerlo?
Respuesta
¿Demasiados anuncios?Definitivamente es posible, porque variando el número a podrías ajustar x→f(x)+a a los datos usando (por ejemplo) mínimos cuadrados. De hecho, esta idea sugiere reemplazar tus datos por (xi,yi−F(xi)) donde F′=f y exigir que la spline sea monótonamente creciente: esto suena a regresión monótona, cf.
Específicamente, encuentra una spline monótona (creciente) para los datos (xi,yi−F(xi)) donde F(x)=∫x0f(t)dt.Supongamos que T es una spline diferenciable y monótona para (xi,yi−F(xi)). Esto significa que T′ es siempre no negativo y que para todo i, T(xi)=yi−F(xi). Entonces S(x)=T(x)+F(x) obviamente tiene las dos propiedades que requieres de ella: S(xi)=T(xi)+F(xi)=(yi−F(xi))+F(xi)=yi para todo i y S′(x)=T′(x)+F′(x)=T′(x)+f(x)≥f(x).