r - Portfoliooptimierung - solve.QP - Constraints sind inkonsistent

8

Ich versuche mit solve.QP ein Problem der Portfoliooptimierung zu lösen (quadratisches Problem)

Insgesamt 3 Assets

Es gibt 4 Einschränkungen:

  1. Summe der Gewichte gleich 1
  2. erwartete Portfoliorendite entspricht 5,2%
  3. jedes Asset-Gewicht größer als 0
  4. jedes Asset-Gewicht kleiner als .5

Dmat ist die Kovarianzmatrix

%Vor%

dvec ist die erwartete Rendite jedes Assets

%Vor%

Amat ist die Constraint-Matrix

%Vor%

Einschränkung A ^ T b & gt; = b_0, b Vektor

%Vor%

meq = 2, da es zwei Gleichheitsbedingungen gibt, sind die erste und die zweite Bedingung die Gleichheit

Dann führe ich die Funktion solve.QP

aus %Vor%

Aber es gibt den Fehler

%Vor%

Ich bin mir nicht sicher, wo ich falsch gemacht habe.

    
user3716379 06.06.2014, 20:20
quelle

1 Antwort

9

Es gab zwei Probleme mit dem von Ihnen geposteten Code:

  • Der gepostete Dmat ist nicht wirklich symmetrisch; Sie hatten versehentlich den Wert 212.31581 statt 12.31581
  • eingegeben
  • Die meq=2 -Option bedeutet, dass Ihre ersten beiden Bedingungen auf Gleichheit gesetzt sind, was bedeutet, dass Ihre Gewichte 1 ergeben und Ihre Rendite genau 5,2% beträgt. Die zweite Einschränkung ist anscheinend diejenige, die die Unmöglichkeit verursacht; Es scheint, dass es keine gültigen Portfolios gibt, die genau 5,2% entsprechen, wenn Sie andere Einschränkungen beachten. In der Tat, da nicht mehr als die Hälfte des Portfolios eine Rendite von 3,33% haben kann und der Rest eine Rendite von mindestens 9,07% haben muss, muss die Rendite 6,2% oder höher betragen. Daher sollten Sie dies auf eine & gt; = Einschränkung reduzieren, indem Sie meq=1 .
  • setzen

Hier ist der Arbeitscode:

%Vor%

Die optimale Lösung ist tatsächlich mit einer Rendite von 6,3% verbunden.

    
josliber 06.06.2014, 23:22
quelle