Veo una regresión restringida similar aquí:
Regresión lineal restringida a través de un punto específico
Pero mi requisito es ligeramente diferente. Necesito los coeficientes para sumar 1. Específicamente, estoy retrocediendo los retornos de 1 serie de divisas frente a otras 3 series de divisas, para que los inversores puedan reemplazar su exposición a esa serie con una combinación de exposición a las otras 3, pero su el desembolso de efectivo no debe cambiar, y preferiblemente (pero esto no es obligatorio), los coeficientes deben ser positivos.
He intentado buscar regresión restringida en R y Google pero con poca suerte.
r
regression
Thomas Browne
fuente
fuente
Respuestas:
Si entiendo correctamente, su modelo es con ∑ k π k = 1 y π k ≥ 0 . Debe minimizar ∑ i ( Y i - ( π 1 X i 1 + π 2 X i 2 + π 3 X i
Aquí unas pocas líneas de códigos R dan una posible solución ( son las columnas de , los valores verdaderos de π k son 0.2, 0.3 y 0.5).X1,X2,X3 πk
X
No conozco ningún resultado sobre la distribución asintótica de los estimadores, etc. Si alguien tiene punteros, tendré curiosidad por obtener algunos (si lo desea, puedo abrir una nueva pregunta sobre esto).
fuente
Como mencionó whuber, si solo le interesan las restricciones de igualdad, también puede usar la función estándar lm () reescribiendo su modelo:
¡Pero esto no garantiza que se cumplan sus restricciones de desigualdad! Sin embargo, en este caso, es así que obtienes exactamente el mismo resultado que usando el ejemplo de programación cuadrática anterior (colocando el X3 a la izquierda):
fuente
As I understand your model, you're seeking to find
I've found the easiest way to treat these sorts of problems is to use matrices' associative properties to treatb¯ as a function of other variables.
E.g.b¯ is a function of c¯ via the transform block Tc¯¯ . In your case, r below is 1 .
fuente
Old question but since I'm facing the same problem I thought to post my 2p...
Use quadratic programming as suggested by @Elvis but using sqlincon from the pracma package. I think the advantage over
quadrpog::solve.QP
is a simpler user interface to specify the constraints. (In fact,lsqlincon
is a wrapper aroundsolve.QP
).Example:
Same results as Elvis's:
EDIT To try to address gung's comment here's some explanation. sqlincon emulates matlab's lsqlin which has a nice help page. Here's the relevant bits with some (minor) edits of mine:
fuente