Saya melihat regresi terbatas yang serupa di sini:
Regresi linear terbatas melalui titik tertentu
tetapi persyaratan saya sedikit berbeda. Saya perlu koefisien untuk menambahkan hingga 1. Secara khusus saya mundur pengembalian 1 seri valuta asing terhadap 3 seri valuta asing lainnya, sehingga investor dapat mengganti eksposur mereka ke seri itu dengan kombinasi eksposur ke 3 lainnya, tetapi mereka pengeluaran tunai tidak boleh berubah, dan lebih disukai (tetapi ini tidak wajib), koefisien harus positif.
Saya telah mencoba mencari regresi terbatas di R dan Google tetapi dengan sedikit keberuntungan.
r
regression
Thomas Browne
sumber
sumber
Jawaban:
Jika saya mengerti benar, model Anda adalah dengan Σ k π k = 1 dan π k ≥ 0 . Anda harus meminimalkan ∑ i ( Y i - ( π 1 X i 1 + π 2 X i 2 + π 3 X i
Di sini beberapa baris kode R yang memberikan solusi yang memungkinkan ( adalah kolom-kolom , nilai sebenarnya dari π k adalah 0,2, 0,3 dan 0,5).X1, X2, X3 πk
X
Saya tidak tahu hasil apa pun pada distribusi asimtotik dari estimator, dll. Jika seseorang memiliki petunjuk, saya ingin tahu untuk mendapatkan beberapa (jika Anda berharap saya dapat membuka pertanyaan baru tentang ini).
sumber
Seperti yang disebutkan oleh whuber, jika Anda hanya tertarik pada batasan kesetaraan, Anda juga bisa menggunakan fungsi standar lm () dengan menulis ulang model Anda:
Tetapi ini tidak menjamin bahwa kendala ketimpangan Anda terpenuhi! Namun, dalam hal ini, jadi Anda mendapatkan hasil yang persis sama dengan menggunakan contoh pemrograman kuadratik di atas (meletakkan X3 di sebelah kiri):
sumber
sumber
Pertanyaan lama tapi karena saya menghadapi masalah yang sama saya pikir untuk memposting 2p ...
Gunakan pemrograman kuadrat seperti yang disarankan oleh @Elvis tetapi menggunakan sqlincon dari paket pracma . Saya pikir kelebihannya
quadrpog::solve.QP
adalah antarmuka pengguna yang lebih sederhana untuk menentukan kendala. (Bahkan,lsqlincon
adalah pembungkus di sekitarsolve.QP
).Contoh:
Hasil yang sama dengan Elvis:
EDIT Untuk mencoba menanggapi komentar gung, inilah beberapa penjelasan. sqlincon mengemulasi matlab ini lsqlin yang memiliki halaman bantuan yang bagus. Inilah bit yang relevan dengan beberapa suntingan (minor) saya:
sumber