Sé cómo realizar una regresión lineal en un conjunto de puntos. Es decir, sé cómo ajustar un polinomio de mi elección, a un conjunto de datos dado (en el sentido LSE). Sin embargo, lo que no sé es cómo forzar a mi solución a pasar por algunos puntos particulares de mi elección. He visto que esto se hizo antes, pero no puedo recordar cómo se llamó el procedimiento, y mucho menos cómo se hizo.
Como un ejemplo muy simple y concreto, digamos que tengo 100 puntos dispersos en el plano xy, y elijo colocar un polinomio de cualquier orden a través de ellos. Sé cómo realizar esta regresión lineal muy bien. Sin embargo, digamos que yo quiero 'fuerza' mi solución, que pasar por, digamos, tres de mis puntos de datos en coordenadas x , x = 19 , y x = 89 , (y sus correspondientes coordenadas por supuesto).
¿Cómo se llama este procedimiento general, cómo se lleva a cabo y hay algún inconveniente particular que deba tener en cuenta?
Editar:
Me gustaría agregar que estoy buscando una forma concreta de hacer esto. He escrito un programa que realmente hace la regresión lineal de una de dos maneras, invirtiendo la matriz de covarianza directamente, o mediante el descenso de gradiente. Lo que pregunto es, ¿cómo, exactamente, paso a paso, modifico lo que hice, de modo que obligue a la solución polinómica a pasar por puntos específicos?
¡Gracias!
Respuestas:
El modelo en cuestión puede ser escrito
donde es un polinomio de grado d - 1 que pasa por puntos predeterminados ( x 1 , y 1 ) , ... , ( x d , y d ) y ε es aleatorio. (Utilice el polinomio de interpolación de Lagrange ). Escritura ( x - x 1 ) ⋯ ( x - x d ) = rp ( xyo) = yyo re- 1 ( x1, y1) , … , ( Xre, yre) ε nos permite reescribir este modelo como( x - x1) ⋯ ( x - xre) = r ( x )
que es un problema de regresión múltiple OLS estándar con la misma estructura de error que el original donde las variables independientes son las cantidades r ( x ) x i , i = 0 , 1 , ... , p . Simplemente calcule estas variables y ejecute su conocido software de regresión , asegurándose de evitar que incluya un término constante. Se aplican las advertencias habituales sobre regresiones sin un término constante; En particular, el R 2 puede ser artificialmente alta; No se aplican las interpretaciones habituales.p + 1 r ( x ) xyo, i = 0 , 1 , ... , p R2
(De hecho, la regresión a través del origen es un caso especial de esta construcción donde , ( x 1 , y 1 ) = ( 0 , 0 ) y p ( x ) = 0 , de modo que el modelo es y = β 0 x + ⋯ + β p x p + 1 + ε . )d=1 (x1,y1)=(0,0) p(x)=0 y=β0x+⋯+βpxp+1+ε.
Aquí hay un ejemplo trabajado (en
R
)Los tres puntos fijos se muestran en rojo sólido; no forman parte de los datos. El ajuste de mínimos cuadrados polinomiales de cuarto orden sin restricciones se muestra con una línea punteada negra (tiene cinco parámetros); el ajuste restringido (de orden cinco, pero con solo tres parámetros libres) se muestra con la línea roja.
Inspeccionar la salida de mínimos cuadrados (
summary(fit0)
ysummary(fit)
) puede ser instructivo; lo dejo al lector interesado.fuente
Si desea forzar a una línea a pasar por dos puntos en un plano XY, también es bastante fácil de hacer. Se pueden ajustar dos puntos con una línea. Puedes usar la fórmula punto-pendiente para calcular tu pendiente, y luego usar uno de los puntos, la pendiente y la ecuación de una línea para encontrar la intersección.
Sin embargo, me siento obligado a mencionar en este punto que esto puede no ser una gran cosa para hacer (a menos que su teoría proporcione razones muy sólidas para hacerlo). También es posible que desee analizar la regresión bayesiana , donde puede permitir que su modelo encuentre la mejor combinación de la información en sus datos y alguna información previa (que podría utilizar para sesgar fuertemente su intercepción hacia cero, por ejemplo, sin forzándolo).
fuente
Para agregar un poco de información adicional a la excelente cobertura de @ gung del caso lineal, en el caso del polinomio de orden superior hay varias formas en que puede hacerlo de manera exacta o aproximada (pero con la precisión que necesita).
Primero, tenga en cuenta que los grados de libertad del polinomio (o de cualquier función ajustada) deben ser al menos tan grandes como el número de puntos "conocidos". Si los grados de libertad son iguales, no necesita los datos, ya que la curva está completamente determinada. Si hay más puntos 'conocidos', no puede resolverlos (a menos que todos se encuentren exactamente en el mismo polinomio del grado especificado, en cuyo caso bastará cualquier subconjunto de tamaño adecuado). A partir de ahora, solo hablaré sobre cuándo el polinomio tiene más df que los puntos conocidos (como un cúbico - con 4df - y tres puntos conocidos, para que el cúbico no esté sobredeterminado por puntos conocidos ni completamente determinado por ellos) .
1) "la curva debe pasar por este punto" es una restricción lineal en los parámetros, lo que resulta en una estimación restringida o mínimos cuadrados restringidos (aunque ambos términos pueden incluir otras cosas que no sean restricciones lineales, como restricciones de positividad). Puede incorporar restricciones lineales por cualquiera
(a) refundir la parametrización para incluir implícitamente cada restricción que dé como resultado un modelo de orden inferior.
(b) utilizando herramientas estándar que pueden incorporar restricciones lineales en los parámetros de un ajuste de mínimos cuadrados. (generalmente a través de algo como la fórmula dada en el enlace anterior)
2) Otra forma es a través de la regresión ponderada. Si le da a los puntos conocidos un peso suficientemente grande, puede obtener esencialmente el mismo ajuste que en (1). Esto a menudo se implementa fácilmente, puede ser sustancialmente más rápido que volver a parametrizar y se puede hacer en paquetes que no ofrecen un ajuste limitado.
Se aplican todas las advertencias de @gung
fuente