Cuando hablamos de la base, tenemos el concepto como el ortogonal, longitud etc. para vectores. Creo que el mismo concepto también existe en la base de Fourier y polinomio base. Pero ¿qué base de spline (digamos B-spline cúbico)?
Respuesta
¿Demasiados anuncios?Computacionalmente, a veces; conceptualmente, rara vez. (Esto empezó como comentario...)
Como ya se ha presentado aquí (upvote si usted no tiene ya) cuando se utiliza una spline en el contexto de un modelo aditivo generalizado tan pronto como el spline base es creado, el montaje vuelve a estándar de GLM de modelado de base de los coeficientes para cada función de base. Esta idea importante debido a que se puede generalizar en el futuro.
Supongamos que tenemos una B-spline que es muy limitada. Algo así como una orden 1 B-spline para que podamos ver el nudo lugares exactamente:
set.seed(123)
myX = sort(runif(1000, max = 10))
myKnots = c(1,3)
Bmatrix <- bs(x = myX, degree = 1, knots = myKnots, intercept = FALSE)
matplot( myX, Bmatrix, type = "l");
Este es un trivial B-spline base $B$ que es claramente no-ortogonal de (just do crossprod(Bmatrix)
para comprobar el interior de los productos). Así, B-splines bases no son ortogonales, por la construcción conceptual.
Ortogonal de la serie sería el método que representan los datos con respecto a un conjunto ortogonal de funciones de base, como los senos y cosenos (por ejemplo. De Fourier). En particular, un ortogonales sería el método que nos permite seleccionar sólo los de "baja frecuencia" condiciones para su posterior análisis. Esto lleva a que el computacionales parte.
Debido a la instalación de un spline es un proceso costoso tratamos de simplificar el procedimiento de ajuste mediante el empleo de bajo rango de aproximaciones. Un caso evidente de estos son de la lámina delgada de regresión de las estrías del que se utiliza por defecto en la s
función de mgcv::gam
donde la "correcta" thin plate spline sería muy costoso computacionalmente (ver ?smooth.construct.tp.smooth.spec
). Empezamos con la totalidad de la thin plate spline y luego truncar esta base en una manera óptima, dictada por el trunca eigen-descomposición de esa base. En ese sentido, computacionalmente, sí, vamos a tener una base ortogonal para nuestra spline aún cuando la base de la misma no es ortogonal.
El spline es el "más suave" de la función al pasar cerca de nuestros valores muestreados $X$. Como ahora la base de la ranura proporciona una representación equivalente de nuestra $X$ en un espacio atravesado por la spline base $B$, transformando aún más esa base $B$ a otra base equivalente a $Q$ no altera nuestros resultados originales.
Volviendo a nuestro ejemplo trivial, se puede obtener el equivalente de la base ortogonal $Q$ a través de la enfermedad vesicular porcina y, a continuación, utilizar para obtener los resultados equivalentes (según el orden de la aproximación). Por ejemplo:
svdB = svd(t(Bmatrix));
Q = svdB$v;
Trabajando ahora con este nuevo sistema de $Q$ es más deseable que con el sistema original $B$ porque numéricamente $Q$ es mucho más estable (OK, $B$ es de buen comportamiento aquí).
Base R intenta también aprovechar estas propiedades de ortogonalidad. Si utilizamos poly
por defecto obtenemos el equivalente polinomios ortogonales en lugar de la cruda polinomios de nuestro predictor (argumento raw
).