Widzę tutaj podobną ograniczoną regresję:
Ograniczona regresja liniowa przez określony punkt
ale moje wymagania są nieco inne. Potrzebuję współczynników do zsumowania 1. W szczególności regresuję zwroty z 1 serii walut obcych w stosunku do 3 innych serii walutowych, aby inwestorzy mogli zastąpić ekspozycję na tej serii kombinacją ekspozycji na pozostałe 3, ale ich nakłady pieniężne nie mogą się zmieniać, a najlepiej (ale nie jest to obowiązkowe) współczynniki powinny być dodatnie.
Próbowałem szukać ograniczonej regresji w R i Google, ale przy odrobinie szczęścia.
r
regression
Thomas Browne
źródło
źródło
Odpowiedzi:
Jeśli dobrze rozumiem, twój model to przy ∑ k π k = 1 i π k ≥ 0 . Musisz zminimalizować ∑ i ( Y i - ( π 1 X i 1 + π 2 X i 2 + π 3 X i
Tutaj kilka linii kodów R daje możliwe rozwiązanie ( są kolumnami , a prawdziwe wartości π k wynoszą 0,2, 0,3 i 0,5).X1,X2,X3 πk
X
Nie znam żadnych wyników na asymptotycznym rozkładzie estymatorów itp. Jeśli ktoś ma wskaźniki, chętnie je zdobędę (jeśli chcesz, mogę otworzyć nowe pytanie w tej sprawie).
źródło
Jak wspomniał Whuber, jeśli jesteś zainteresowany tylko ograniczeniami równości, możesz również użyć standardowej funkcji lm (), przepisując swój model:
Ale to nie gwarantuje, że twoje ograniczenia nierówności zostaną spełnione! W tym przypadku jednak tak jest, więc otrzymujesz dokładnie taki sam wynik, jak w powyższym przykładzie programowania kwadratowego (umieszczenie X3 po lewej):
źródło
Np jest funkcją ° C za pomocą bloku przekształcania ] Tutaj możemy oddzielić nasze k nowns oraz u nknowns. ˉ c = [b¯ do¯ T.do¯¯ r 1
źródło
Stare pytanie, ale ponieważ mam ten sam problem, postanowiłem opublikować moje 2p ...
Użyj programowania kwadratowego, jak sugeruje @Elvis, ale używając sqlincon z pakietu pracma . Myślę, że zaletą
quadrpog::solve.QP
jest prostszy interfejs użytkownika do określania ograniczeń. (W rzeczywistościlsqlincon
jest to opakowaniesolve.QP
).Przykład:
Te same wyniki, co Elvisa:
EDYCJA Aby spróbować odnieść się do komentarza Gunga, oto wyjaśnienie. sqlincon emuluje Matlab na lsqlin który ma ładny stronę pomocy. Oto odpowiednie bity z niektórymi (mniejszymi) modyfikacjami:
źródło