Modelos de ajuste en R donde los coeficientes están sujetos a restricciones lineales

16

¿Cómo debo definir una fórmula modelo en R, cuando una (o más) restricciones lineales exactas que vinculan los coeficientes está disponible? Como ejemplo, digamos que usted sabe que b1 = 2 * b0 en un modelo de regresión lineal simple.

¡Gracias!

George Dontas
fuente

Respuestas:

16

Supongamos que tu modelo es

Y(t)=β0+β1X1(t)+β2X2(t)+ε(t)

y planea restringir los coeficientes, por ejemplo, como:

β1=2β2

insertando la restricción, reescribiendo el modelo de regresión original que obtendrás

Y(t)=β0+2β2X1(t)+β2X2(t)+ε(t)

Y(t)=β0+β2(2X1(t)+X2(t))+ε(t)

introduzca una nueva variable y su modelo con restricción seráZ(t)=2X1(t)+X2(t)

Y(t)=β0+β2Z(t)+ε(t)

De esta manera, puede manejar cualquier restricción exacta, ya que el número de signos iguales reduce el número de parámetros desconocidos en el mismo número.

Jugando con fórmulas R puedes hacerlo directamente con la función I ()

lm(formula = Y ~ I(1 + 2*X1) + X2 + X3 - 1, data = <your data>) 
lm(formula = Y ~ I(2*X1 + X2) + X3, data = <your data>)
Dmitrij Celov
fuente
Esto es bastante claro, pero la pregunta sugería una restricción entre b0 y b1. ¿Debo también crear una nueva variable Z = 2X + 1 y ajustar un modelo sin intercepción?
George Dontas
2
Creo usualy I se utiliza en lugar de eval en las fórmulas, es decir, Y ~ I (1 + 2 X1 *) + x2 + X3-1
mpiktas
@ gd047: He actualizado con un código de piezas, sí, es como usted dice. @mpiktas: cambiará esto, sí, es más corto;)
Dmitrij Celov
44
Esta es una buena respuesta para el enfoque teórico general, pero para una forma más fácil de implementar realmente estas hipótesis en R, que también tiene la ventaja de no requerir que se estimen múltiples modelos, ver linearHypothesis()en el carpaquete.
Jake Westfall