Así que, como dice el título, estoy tratando de generar una serie aleatoria verdadera que sume 1. En esencia, esto debería ser muy fácil ¿no? Bueno, tengo muchos problemas. Esto es lo que necesito: 20 clases de activos, que deben sumar el 100% de una cartera. Todas las clases de activos deben devolver variables aleatorias entre 0 y 100. Hasta ahora, he generado 19 variables aleatorias entre 0 y 1, y luego he limitado mis resultados para conseguir que sumen 1 (bastante simple, simplemente ordena tus series, luego resta tus números intermedios entre sí y resta tu último número de 1, esto limita todos tus resultados a 1 de una manera aleatoria).
Mi problema aquí, es que haciendo esto casi nunca se creará una situación en la que tengo por ejemplo el 90% en la clase de activos 1, o 9 o lo que sea. Al generar 20 clases, esto obliga a que todas las clases sean relativamente pequeñas todo el tiempo.
Me he estado devanando los sesos para encontrar formas de evitarlo, ya sea mediante la conexión en cascada de las series aleatorias, barajando el orden, etc. Pero siempre acabo con un sesgo u otro. No me imagino que sea la primera persona que necesita este tipo de distribución aleatoria, así que imagino que hay una solución por ahí, pero no la encuentro.
Cualquier ayuda será muy apreciada. Como referencia, necesito esto para una simulación tipo Montecarlo que estoy ejecutando con Excel y un módulo de optimización de primera línea. Estoy abierto a hacer esto en Matlab si es más eficiente también.
En última instancia, me gustaría generar 1 millón o más de estas carteras aleatorias y medir sus resultados.
Gracias