Ich sehe hier eine ähnliche eingeschränkte Regression:
Eingeschränkte lineare Regression durch einen bestimmten Punkt
aber meine anforderung ist etwas anders. Ich brauche die Koeffizienten, um 1 zu addieren. Insbesondere regressiere ich die Renditen von 1 Devisenserie gegen 3 andere Devisenserien, so dass Anleger ihr Engagement in dieser Serie durch eine Kombination des Engagements in den anderen 3, aber deren, ersetzen können Der Geldaufwand darf sich nicht ändern, und vorzugsweise (dies ist jedoch nicht obligatorisch) sollten die Koeffizienten positiv sein.
Ich habe versucht, in R und Google nach einer eingeschränkten Regression zu suchen, aber mit wenig Glück.
r
regression
Thomas Browne
quelle
quelle
Antworten:
Wenn ich das richtig verstehe, ist Ihr Modell mit und . Sie müssen unter diesen Bedingungen . Diese Art von Problem ist als quadratische Programmierung bekannt .Σ k π k = 1 π k ≥ 0 Σ i ( Y i - ( π 1 X i 1 + π 2 X i 2 + π 3 X i 3
Hier einige Zeilen mit R-Codes, die eine mögliche Lösung ( sind die Spalten von , die wahren Werte von sind 0,2, 0,3 und 0,5).& pgr; kX1, X2, X3 πk
X
Ich kenne keine Ergebnisse zur asymptotischen Verteilung der Schätzer usw. Wenn jemand Zeiger hat, bin ich gespannt auf welche (wenn Sie möchten, kann ich eine neue Frage dazu eröffnen).
quelle
Wie von whuber erwähnt, können Sie, wenn Sie nur an den Gleichheitsbeschränkungen interessiert sind, auch einfach die Standardfunktion lm () verwenden, indem Sie Ihr Modell umschreiben:
Dies garantiert jedoch nicht, dass Ihre Ungleichungsbeschränkungen erfüllt sind! In diesem Fall erhalten Sie jedoch genau das gleiche Ergebnis wie im obigen quadratischen Programmierbeispiel (Platzieren des X3 auf der linken Seite):
quelle
Nach meinem Verständnis für Ihr Modell suchen Sie nach , sodass
Ich habe herausgefunden, dass die einfachste Möglichkeit zur Behandlung solcher Probleme darin besteht, die assoziativen Eigenschaften von Matrizen zu verwenden, um als Funktion anderer Variablen zu behandeln.b¯
Beispielsweise ist eine Funktion von über den Transformationsblock . In Ihrem Fall unten ist . Hier können wir unsere trennen nowns und nknowns.b¯ c¯ Tc¯¯ r 1
quelle
Alte Frage, aber da ich vor dem gleichen Problem stehe, dachte ich, meine 2P zu posten ...
Verwenden Sie quadratische Programmierung, wie von @Elvis vorgeschlagen, aber verwenden Sie sqlincon aus dem pracma- Paket. Ich denke, der Vorteil gegenüber
quadrpog::solve.QP
ist eine einfachere Benutzeroberfläche, um die Einschränkungen zu spezifizieren. (In der Tatlsqlincon
ist ein Wrapper umsolve.QP
).Beispiel:
Gleiche Ergebnisse wie bei Elvis:
BEARBEITEN Um zu versuchen, Gungs Kommentar anzusprechen, folgen einige Erklärungen. sqlincon emuliert das lsqlin von matlab, das eine nette Hilfeseite hat. Hier sind die relevanten Teile mit einigen (geringfügigen) Änderungen von mir:
quelle