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.
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.
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.
sumber
Jawaban:
http://www.vliz.be/imisdocs/publications/149403.pdf
dan ini paketnya:
http://cran.r-project.org/web/packages/limSolve/index.html
sumber
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"?
sumber