Recientemente me he encontrado con el siguiente problema del mundo real relacionado con la renovación de licencias de un producto de software. Sólo tengo conocimientos rudimentarios de los fundamentos en este campo y me interesa sobre todo resolver este problema, pero me encantaría aprender algo por el camino.
La entrada es el vector de licencias renovadas $(r_i)_{i=1}^n$ indexado por días y un vector de licencias que expiran para cada día $(e_i)_{i=1}^{n+k}$ . Es decir $r_i$ es el número de licencias renovadas el día $i$ y $e_i$ es el número de licencias que caducan el día $i$ . Las renovaciones dependen mucho del día de la semana. Por ejemplo, hay muchas renovaciones los lunes y domingos y pocas los jueves.
El problema es predecir o extrapolar el vector de renovaciones $(r_i)$ para $i=n+1, \ldots, k$ .
Lo que me parece interesante de este problema es el hecho de que $r_i$ no depende únicamente de $e_i$ sino también en los valores vecinos, ya que a menudo se decide renovar la licencia antes de que caduque o después. De hecho, usted sabe que, por término medio, el 95% de las personas renuevan la licencia en 60 días, en torno al día en que expira su licencia, y aún más: tiene un histograma de estas renovaciones. $(h_j)_{j=-30}^{30}$ . Si he entendido bien los datos, el valor $h_j$ representa la parte de las renovaciones que se producen por término medio $j$ días antes (o después dependiendo del signo de $j$ ) la licencia expira para $j=-30,\ldots, 30$ y los valores de $j=-30,30$ cubren las renovaciones que se produjeron más de un mes después o antes de la expiración. En particular $\sum_{j=-31}^{31} h_j = 1$ .
Q1: ¿Cuál es el mejor enfoque para este tipo de problema?
Después de pensarlo un poco, se me ocurrió lo siguiente. Sea $c_{ij}$ es la proporción de licencias que caducan el día $j$ y se renuevan el día $i$ al número total de licencias que caducan el día $j$ . Entonces $$ r_i = \sum_{j=1}^n c_{ij}e_j $$ o en forma de matriz $r = Ce$ . Además tenemos $$ h_j \approx \frac{1}{n} \sum_{i=1}^n \frac{c_{i+j,i}}{t_i}, $$ donde $t_i = \sum_{j=1}^n c_{ji}$ es el cociente entre las licencias renovadas y todas las licencias que caducan el día $j$ . Esto me da $n+60$ ecuaciones para $n^2$ variables.
Q2: ¿Es el modelo de Markov oculto el enfoque adecuado en este caso? No sé nada de ellos, así que si este enfoque es el correcto, agradecería algunos enlaces a materiales de los que pueda aprender la teoría, así como enlaces a implementaciones.
Podemos reducir el número de variables estableciendo $c_{ij} = 0$ para $|i-j| > 30$ pero eso aún nos deja con un sistema muy poco determinado. Ahora mismo estoy a punto de probar a sustituir $c_{ij}$ por $h_{i-j}t_j$ . Esto me dará $n$ ecuaciones para $n$ desconocidos. Que espero poder resolver y luego simplemente extrapolar los valores $p_i$ para $i=n+1, \ldots, k$ y estimar las renovaciones mediante $r_i = \sum_{j=-30}^{30} h_{i-j}t_je_j$ .
Actualización: Las soluciones oscilan hacia $i\to n$ .
Descargo de responsabilidad: Publicado en math.stackexchange