Necesito generar una lista de variables aleatorias sujetas a restricciones que se pueden expresar en la forma donde es una matriz si tiene entradas. En todos los casos con los que estoy tratando, , por ejemplo, será de alrededor de 14,000 será de 50. No estoy seguro de qué método utilizaré para el muestreo aleatorio, ya sea normal o uniforme, no es claro cuál es el mejor para el problema que estoy tratando de resolver, pero necesito que todas las variables se muestreen a partir de distribuciones con la misma media y rango / varianza.E x = b E m × n x n n > > m n m
Lo que he estado haciendo para resolver esto es reducir a la forma escalonada, establecer todas las variables correspondientes a las columnas a la derecha del último pivote a valores aleatorios, y luego resolver la igualdad de la matriz cuadrada restante.
Sin embargo, hay un problema, para resolver la igualdad de la matriz cuadrada, restamos los valores ya establecidos del lado derecho. Desafortunadamente, las variaciones también se suman, por lo que mis últimos 50 valores tienden a variar enormemente, lo que desafortunadamente es inaceptable en este problema.
¿Hay una mejor manera de hacer esto? No puedo pensar en una manera de arreglar el método actual que estoy usando. Yo uso R.
fuente
Respuestas:
Este paquete de papel y R resolvió completamente mi problema. Utiliza el método de Markov Chain Monte Carlo, que se basa en el hecho de que si puede encontrar una solución inicial de la restricción, a través de la programación lineal, puede encontrar un número arbitrario de ellos utilizando una matriz que cuando se multiplica por , las restricciones , da cero. Lea sobre esto aquí:E
http://www.vliz.be/imisdocs/publications/149403.pdf
y aquí está el paquete:
http://cran.r-project.org/web/packages/limSolve/index.html
fuente
Puede parecer trivial (y no terriblemente eficiente en la máquina), pero considere repetir el proceso hasta obtener una respuesta adecuada. Preferiblemente solo modifica un subconjunto más pequeño cada vez.
¿Puedes crear una medida de "distancia" para saber qué tan lejos estás de tu respuesta ideal? ¿Podría ayudarlo a "optimizar"?
fuente