2016-03-25 4 views
0

Ich verwende solve.QP in quadprog Paket von R, um die klassische Mean-Varianz-Optimierung Problem zu lösen. In meinem Verständnis bedeutet die Ausgabekomponente "value" die Varianz des optimierten Portfolios und viele Codes für die online publizierte Mittelwert-Varianz-Optimierung zeigen auch, dass sqrt(sol$value) die Standardabweichung des optimierten Portfolios ist.Über die Definition oder Algorithmus der "Wert" -Komponente in der Ausgabe von solve.qp in Quadprog, R

Allerdings, wenn ich solve.QP verwenden, um eine einfache Mittelwert-Varianz-Optimierung zu lösen, sol$value bietet mir einen negativen Wert, der von dem Wert auch anders berechnet, indem die Portfoliovarianz Funktion: w%*%covariance%*%t(w). Ich habe versucht, online nach der Definition oder dem Algorithmus für sol$value zu suchen, aber leider konnte ich eine ausführliche Beschreibung nicht finden. Die R-Dokumentation für quadprog besagt nur, dass "Wert" ist "Skalar, der Wert der quadratischen Funktion an der Lösung".

Also könnte jemand, der mit solve.QP vertraut ist, mir die genaue Definition oder den Algorithmus von sol$value sagen. Und wenn mein Verständnis darüber korrekt ist, nämlich die Varianz des optimierten Portfolios, was ist der mögliche Grund, dass solve.QP mir negative Werte für sol$value liefert.

Antwort

0

solve.QP ist ein allgemein Löser für quadratische Optimierungsprobleme. Sie müssen also wissen, welches quadratische Problem Sie tatsächlich lösen. Da Sie mit dem Mittelwert-Varianz-Portfolio-Optimierung zu tun hat, ist Sie ist wahrscheinlich wie

wopt=argmax_w(t(w)%*%r-lambda*t(w)%*%C%*%w) 

mit r, w, lambda und C die erwarteten Rendite zu sein, die Portfoliogewichte, die Risikoaversionsparameter und die Kovarianzmatrix sind. wopt ist der optimale Gewichtsvektor. sol$value gibt Ihnen den Wert Ihrer Zielfunktion bei wopt.

Einige andere Mittelwert-Varianz-Formulierungen versuchen, t(w)%*%r mit einer Beschränkung auf das Risiko (d. H. Varianz) zu maximieren. Für beide Formulierungen sol$value wird nicht die Varianz t(wopt)%*%C %*%wopt sein. Vielleicht haben Sie sich mit minimalen Portfoliooptimierungen beschäftigt? Dort wäre Ihre Varianz die Zielfunktion.

Wie auch immer, werden Sie die Varianz Ihrer Mean-Variance-Optimierung über

t(sol$solution)$%*%C%*%sol$solution 

weil wopt=sol$solution bekommen.

+0

Vielen Dank. Ich denke, Sie haben meine Frage beantwortet und ich habe die Bedeutung des Ausgabewertes missverstanden. –

+0

@Dr_BUG Wenn Sie denken, dass dies eine angemessene Antwort ist, können Sie sie durch Klicken auf das Häkchen akzeptieren. – cryo111