Muszę wygenerować listę zmiennych losowych podlegających ograniczeniom, które można wyrazić w postaci gdzie jest macierzą , jeśli ma wpisów. We wszystkich przypadkach, z którymi mam do czynienia, , na przykład będzie wynosić około 14 000, a będzie wynosić 50. Nie jestem pewien, jakiej metody użyję do losowego próbkowania, normalnej lub jednolitej, to nie jest jasne, który jest najlepszy dla problemu, który próbuję rozwiązać, ale potrzebuję próbkowania wszystkich zmiennych z rozkładów o tej samej średniej i zakresie / wariancji.E x = b e m x n x n n > > m N m
Rozwiązałem ten problem, redukując do postaci rzędów-rzędów, ustawiając wszystkie zmienne odpowiadające kolumnom po prawej stronie ostatniego elementu przestawnego na wartości losowe, a następnie rozwiązując pozostałą równość macierzy kwadratowej.
Istnieje jednak problem, aby rozwiązać równanie macierzy kwadratowej, odejmuję już ustawione wartości od prawej strony. Niestety wariancje również się dodają, więc moje ostatnie 50 wartości różnią się znacznie, co jest niestety nie do przyjęcia w tym problemie.
Czy jest na to lepszy sposób? Nie mogę wymyślić sposobu, aby naprawić bieżącą metodę, której używam. Używam R.
źródło
Odpowiedzi:
Ten papier i pakiet R całkowicie rozwiązały mój problem. Wykorzystuje metodę Markowa Łańcucha Monte Carlo, która polega na tym, że jeśli można znaleźć wstępne rozwiązanie ograniczenia, poprzez programowanie liniowe, można znaleźć dowolną ich liczbę za pomocą macierzy, która po pomnożeniu przez , ograniczenia , daje zero. Przeczytaj o tym tutaj:E
http://www.vliz.be/imisdocs/publications/149403.pdf
a oto pakiet:
http://cran.r-project.org/web/packages/limSolve/index.html
źródło
Może to wydawać się trywialne (i niezbyt wydajne maszynowo), ale rozważ powtórzenie tego procesu, dopóki nie otrzymasz odpowiedniej odpowiedzi? Najlepiej za każdym razem modyfikować mniejszy podzbiór.
Czy potrafisz stworzyć miarę „odległości” dla tego, jak daleko jesteś od idealnej odpowiedzi? Może ci to pomóc w „optymalizacji”?
źródło