Генерування випадкових змінних, що задовольняють обмеження


9

Мені потрібно сформувати список випадкових змінних умови обмежень, які можуть бути виражені у вигляді де є матрицею якщо має записів. У всіх випадках, з якими я маю справу, , наприклад, буде приблизно 14 000, а буде 50. Я не впевнений, який метод я буду використовувати для випадкового відбору, нормального чи рівномірного, це не зрозуміло, що найкраще для проблеми, яку я намагаюся вирішити, але мені потрібно, щоб усі змінні були відібрані з розподілів з однаковим середнім і діапазоном / дисперсією.хЕх=бЕм×нхнн>>мнм

Те, що я робив для вирішення цього питання, - це зменшення до форми ешелону рядків, встановлення всіх змінних, що відповідають стовпцям праворуч від останнього стрижня, до випадкових значень, а потім вирішення рівняння квадратної матриці, що залишилася.Е

Однак існує проблема, щоб вирішити рівність квадратної матриці, я відніс уже встановлені значення з правого боку. На жаль, також додаються відхилення, тому мої останні 50 значень, як правило, сильно відрізняються, що, на жаль, неприйнятно в цій проблемі.

Чи є кращий спосіб зробити це? Я не можу придумати спосіб виправити поточний метод, який я використовую. Я використовую Р.


2
На жаль, ви не зможете цього зробити, якщо тільки не пощастить зі своєю матрицею обмежень. Наприклад, розглянемо матрицю обмежень з двома рядками, один ненульовий запис у першому рядку, що обмежує і два ненульові записи у другому рядку, які обмежують . Очевидно, що матиме інше значення, ніж принаймні один з та , і якщо ви не встановите відхилення для та , також буде інша дисперсія. х1=0х2+х3=1х1х2х3х2х3=0
jbowman

Відповіді:


1

Цей пакет паперу та R повністю вирішив мою проблему. Він використовує метод Монте-Карло Ланцюгового ланцюга, який спирається на те, що якщо ви зможете знайти початкове рішення обмеження, за допомогою лінійного програмування, ви можете знайти довільне їх число за допомогою матриці, яка при множенні на обмеження , дає нуль. Про це читайте тут:Е

http://www.vliz.be/imisdocs/publications/149403.pdf

і ось пакет:

http://cran.r-project.org/web/packages/limSolve/index.html


1
vliz.be/imisdocs/publications/149403.pdf, здається, недоступний, оновіть посилання
eee

0

Можливо, це здасться тривіальним (і не дуже машинно ефективним), але ви подумаєте повторити процес, поки не отримаєте відповідної відповіді? Переважно лише змінювати менший підмножини кожен раз.

Чи можете ви створити мірку "відстань" для того, наскільки ви віддалені від своєї ідеальної відповіді? Це може допомогти вам "оптимізувати"?


Я можу це спробувати. Одна з проблем полягає в тому, що мені все одно потрібно переконатися, що форма розподілу буде однаковою. Також обмеження в часі буде заборонним.
Майк Флінн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.