Menghasilkan variabel acak memenuhi batasan

9

Saya perlu membuat daftar variabel acak tunduk pada kendala yang dapat diekspresikan dalam bentuk E x = b di mana E adalah matriks m × n jika x memiliki n entri. Dalam semua kasus yang saya hadapi, n > > m , misalnya n akan menjadi sekitar 14.000 dan m akan 50. Saya tidak yakin metode apa yang akan saya gunakan untuk random sampling, baik normal atau seragam, tidak jelas mana yang terbaik untuk masalah yang saya coba selesaikan, tapi saya perlu semua variabel untuk diambil sampel dari distribusi dengan mean dan range / varians yang sama.xEx=bEm×nxnn>>mnm

Apa yang telah saya lakukan untuk menyelesaikan ini adalah mengurangi ke bentuk eselon baris, mengatur semua variabel yang sesuai dengan kolom di sebelah kanan pivot terakhir ke nilai acak, dan kemudian menyelesaikan persamaan matriks kuadrat persegi yang tersisa.E

Namun ada masalah, untuk menyelesaikan persamaan matriks kuadrat, saya kurangi nilai yang sudah ditetapkan dari sisi kanan. Sayangnya, varians menambahkan juga, jadi 50 nilai terakhir saya cenderung sangat bervariasi, yang sayangnya tidak dapat diterima dalam masalah ini.

Apakah ada cara yang lebih baik untuk melakukan ini? Saya tidak bisa memikirkan cara untuk memperbaiki metode saat ini yang saya gunakan. Saya menggunakan R.

Mike Flynn
sumber
2
x1=0x2+x3=1x1x2x3x2x3=0
jbowman

Jawaban:

0

Mungkin terlihat sepele (dan tidak terlalu efisien mesin), tetapi pertimbangkan untuk mengulangi prosesnya sampai Anda mendapatkan jawaban yang sesuai? Lebih disukai hanya memodifikasi subset yang lebih kecil setiap kali.

Bisakah Anda membuat ukuran "jarak" untuk seberapa jauh Anda jauh dari jawaban ideal Anda? Mungkin membantu Anda "mengoptimalkan"?

Sean
sumber
Saya mungkin mencobanya. Satu masalah adalah saya masih perlu memastikan bentuk distribusinya sama. Juga batasan waktu akan menjadi penghalang.
Mike Flynn