Tengo 3 series temporales X1, X2, X3. Quiero encontrar el coeficiente (c1, c2) que minimizará la distancia entre ellos como sigue: $$MIN\sum\sqrt{(X1-(c1*X2+c2*X3))^2}$$
Las limitaciones son: $$-1< c1,c2 < 1$$
¿Cómo puedo hacerlo en R?
Tengo 3 series temporales X1, X2, X3. Quiero encontrar el coeficiente (c1, c2) que minimizará la distancia entre ellos como sigue: $$MIN\sum\sqrt{(X1-(c1*X2+c2*X3))^2}$$
Las limitaciones son: $$-1< c1,c2 < 1$$
¿Cómo puedo hacerlo en R?
Defina $\|.\|_1$ como el $L_1$ norma . Utilizaré letras en negrita para denotar vectores y estoy utilizando $\mathbf{y} = \mathbf{x}_1$ . Tu problema es:
\begin{equation} \begin{array}{*2{>{\displaystyle}r}} \mbox{minimize (over $c_1, c_2$)} & \| \mathbf{y} - c_1 \mathbf{x}_2 - c_2 \mathbf{x}_3 \|_1 \\ \mbox{subject to} & -1 \leq c_1 \leq 1\\ & -1 \leq c_2 \leq 1 \end{array} \end{equation}
O que la matriz $X = \begin{bmatrix} \mathbf{x}_2 & \mathbf{x}_3 \end{bmatrix}$ . El problema puede escribirse más sucintamente como: \begin{equation} \begin{array}{*2{>{\displaystyle}r}} \mbox{minimize (over $\mathbf{c}$)} & \| X \mathbf{c} - \mathbf{y} \|_1 \\ \mbox{subject to} & \mathbf{c} \preceq \mathbf{1} \\ & -\mathbf{c} \preceq \mathbf{1} \end{array} \end{equation}
Minimizar la $L_1$ sujeta a restricciones afines es una optimización convexa problema. Hay una multitud de enfoques para resolver este problema, y puesto que es sólo en dos variables, es bastante trivial para resolver. Cualquier biblioteca de optimización de propósito general probablemente pueda resolverlo sin problemas.
A continuación encontrará una breve lista de cosas que puede hacer. No es una lista exhaustiva.
Lo comento porque lo conozco bien. Hay formas de llamar a CVX desde R pero puede ser inconveniente. Si estuvieras en MATLAB o Python podrías hacer algo como:
%% initialize code (currently matlab code)
n = 200;
y = randn(n, 1);
X = randn(n, 2);
%% CVX CODE
cvx_begin
variables c(2);
minimize(norm(y - X * c, 1))
subject to:
-1 <= c
c <= 1
cvx_end
Introduciendo un vector $\mathbf{s} \in \mathbb{R}^n$ El $L_1$ se puede escribir como un programa lineal :
\begin{equation} \begin{array}{*2{>{\displaystyle}r}} \mbox{minimize (over $\mathbf{c}, \mathbf{s}$)} & \mathbf{1}'\mathbf{s} \\ \mbox{subject to} & \mathbf{c} \preceq \mathbf{1} \\ & -\mathbf{c} \preceq \mathbf{1} \\ & X\mathbf{c} - \mathbf{y} \preceq \mathbf{s} \\ & -X\mathbf{c} + \mathbf{y} \preceq \mathbf{s} \end{array} \end{equation}
Existen numerosos solucionadores en R para programas lineales .
FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.
1 votos
Tenga en cuenta que $\sqrt{Y^2}$ es sólo $|Y|$ . Pero quizás quisiste poner la suma $\Sigma$ dentro de root cuadrada. Una sería la Norma Absoluta y la otra sería la Norma Euclidiana
1 votos
¿Puede aclararlo? ¿Quiere minimizar $\sqrt{ \sum_i \left( X_{i,1} - c_1 X_{i,2} - c_2 X_{i,3}\right)^2 }$ ? ¿O quiere minimizar $\sum_i \left| X_{i,1} - c_1 X_{i,2} - c_2 X_{i,3}\right| $ ? En cualquier caso, se trata de un problema de optimización convexo de fácil solución si las restricciones se relajan a $-1 \leq c_1, c_2 \leq 1$ .
0 votos
Sí minimizar los valores absolutos es lo que necesito. Me puede dirigir a un paquete en R hacer resolverlo?