星期三, 三月 20, 2013
R语言玩转资产组合计算
以前都是用MATLAB或是EXCEL给学生讲资产组合的计算问题,实际R语言也可以做一样的事情。资产组合要解决的问题并不复杂,即给定一个可选的资产集合,要从中选择出一个最优组合,使其收益率较大,而风险较小。如果可选资产只有两个的话,问题非常简单,可以通过求导最优化的方式得到结果,即有效资产前沿的解析解。如果资产集合超过两个那么问题要复杂一些。首先需要给定一个要求的期望收益率,再求出在此约束下的方差最小组合,这可以通过二次规划解出。这样得到有效前沿上的一个点。然后更改期望收益率,又可以得到另一个最优解,如此反复即可得到多资产组合的有效前沿。
下面我们先用R语言中quadprog包的二次规划求解函数来计算一个例子,再用fPortfolio包中的函数来完成同样的任务。例子中使用的数据来自于fPortfolio包中的SMALLCAP.RET数据集,使用了其中的四个资产来示例。
星期日, 九月 11, 2011
利用optim最优化函数进行曲线拟合
R语言中对函数求极值有两种命令,较简单的是optimize函数,在确定搜索范围后可对一元函数求极值,例如:
f = function(x) 3*x^4 − 2*x^3 + 3*x^2 − 4*x + 5在对多元函数求极值时,则需利用到更强大的optim函数,本例来自于《Introduction to Scientific Programming and Simulation Using R》,其中数据可从spuRs包中获得。本例的目标是对树木体积进行建模,自变量为树龄,函数形式为指数形式,其中包括了三个待定参数。
optimize(f, lower=-20, upper=20)
$minimum
[1] 0.5972778
$objective
[1] 3.636756
订阅:
博文 (Atom)