estimateAssetMoments
从数据中估计资产收益的均值和协方差
使用一个弗林特
对象的AssetReturns
的观点estimateAssetMoments
不建议使用。使用时间表
而是金融时间序列。有关更多信息,请参见将财务时间序列对象转换为时间表.
描述
例子
从投资组合对象的数据估计资产收益的平均值和协方差
为了说明如何使用estimateAssetMoments
函数,从变量中资产收益的均值和协方差生成四种资产的120个资产收益观察值的随机样本米
和C
与portsim
函数。默认行为portsim
创建与输入矩相同的估计均值和协方差的模拟数据米
和C
.方法创建的返回序列portsim
变量中的函数X
,在变量中创建一个价格序列Y
:
M = [0.05;0.1;0.12;0.18);C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];M = M /12;C = C/12; X = portsim(m', C, 120); Y = ret2tick(X);
给定资产回报率和价格中的变量X
和Y
从上面,下面的例子演示了评估Portfolio对象的资产时刻的等效方法。在中创建Portfolio对象p
资产收益的时刻直接设置在投资组合
对象中创建第二个Portfolio对象问
的资产收益数据,得到资产收益的均值和协方差X
使用estimateAssetMoments
函数。
M = [0.05;0.1;0.12;0.18);C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];M = M /12;C = C/12; X = portsim(m', C, 120); p = Portfolio(“的意思是”米,“柯伐合金”C);q =投资组合;q = estimateAssetMoments(q, X);[passetmean, passetcovar] = getAssetMoments(p)
passetmean =4×10.0042 0.0083 0.0100 0.0150
passetcovar =4×40.0005 0.0003 0.0002 0 0.0003 0.0024 0.0017 0.0010 0.0002 0.0017 0.0048 0.0028 0 0.0010 0.0028 0.0102
[qassetmean, qassetcovar] = getAssetMoments(q)
qassetmean =4×10.0042 0.0083 0.0100 0.0150
qassetcovar =4×40.0005 0.0003 0.0002 0.0000 0.0003 0.0024 0.0017 0.0010 0.0002 0.0017 0.0048 0.0028 0.0000 0.0010 0.0028 0.0102
注意这两种方法产生的力矩是一样的。属性的默认行为estimateAssetMoments
功能是工作与资产回报。相反,如果你有资产价格,比如变量Y
,estimateAssetMoments
函数接受参数名“DataFormat”
将对应的值设置为“价格”
表示该方法的输入是资产价格的形式,而不是回报(的默认参数值“DataFormat”
是“返回”
).下面的例子比较了Portfolio对象中时刻的直接分配p
与估计时刻从资产价格数据Y
在Portfolio对象中问
:
M = [0.05;0.1;0.12;0.18);C = [0.0064 0.00408 0.00192 0;0.00408 0.0289 0.0204 0.0119;0.00192 0.0204 0.0576 0.0336;0 0.0119 0.0336 0.1225];M = M /12;C = C/12; X = portsim(m', C, 120); Y = ret2tick(X); p = Portfolio(“的意思是”米,“柯伐合金”C);q =投资组合;q = estimateAssetMoments(q, Y,“dataformat”,“价格”);[passetmean, passetcovar] = getAssetMoments(p)
passetmean =4×10.0042 0.0083 0.0100 0.0150
passetcovar =4×40.0005 0.0003 0.0002 0 0.0003 0.0024 0.0017 0.0010 0.0002 0.0017 0.0048 0.0028 0 0.0010 0.0028 0.0102
[qassetmean, qassetcovar] = getAssetMoments(q)
qassetmean =4×10.0042 0.0083 0.0100 0.0150
qassetcovar =4×40.0005 0.0003 0.0002 0.0000 0.0003 0.0024 0.0017 0.0010 0.0002 0.0017 0.0048 0.0028 0.0000 0.0010 0.0028 0.0102
从投资组合对象的时间表数据估计资产收益的平均值和协方差
为了说明如何使用estimateAssetMoments
函数与AssetReturns
数据在时间表
对象时,使用CAPMuniverse.mat
其中包含时间表
对象(AssetTimeTable
)返回数据。
负载CAPMuniverseAssetsTimeTable.Properties;头(AssetsTimeTable, 5)
时间apple amazon cisco戴尔EBAY google hp IBM intel microsoft ORCL yahoo市场现金 ___________ _________ _________ _________ _________ _________ ____ _________ _________ _________ _________ _________ _________ _________ __________ 03 - 1月- 2000年南0.03244 0.075368 0.05698 0.088805 0.1742 0.008775 -0.002353 0.12829 -0.001627 0.054078 0.097784 -0.012143 0.00020522 04 -简- 2000南-0.075613 -0.033966 -0.046667 -0.084331 -0.08324 -0.05608 -0.08353 -0.093805 -0.033802 -0.0883 -0.067368 -0.03166 0.0002033905-Jan-2000 0.014634 -0.14877 -0.003039 0.070984 0.066875 NaN -0.006356 0.03516 -0.073363 0.011443 0.00020376 06-Jan-2000 -0.086538 -0.060072 -0.016619 -0.038847 -0.012302 NaN -0.063688 -0.017241 -0.05824 -0.033477 -0.058824 -0.10307 0.011743 0.00020266 07-Jan-2000 0.047368 0.061013 0.0587 -0.037708 -0.000964 NaN -0.004386 0.04127 0.013091 0.076771 0.10609 0.02393 0.00020157
请注意,google
数据丢失(南
),因为该公司在2004年8月前尚未上市。的estimateAssetMoments
函数有一个名称-值对参数“MissingData”
它用一个布尔值指示是否使用“财务工具箱™”软件缺少的数据功能。的默认值“MissingData”
是假的去除所有的样本与南
值。然而,如果“MissingData”
设置为true,estimateAssetMoments
使用ECM算法估计资产矩。
r =投资组合;r = estimateAssetMoments(r,AssetsTimeTable,“dataformat”,“返回”,“missingdata”,真正的);
此外,estimateAssetMoments
当参数为name-value时,函数还从时间表对象中提取资产名称或标识符“GetAssetList”
设置为真正的
(默认值为假
).如果“GetAssetList”
值是真正的
时,时间表列标识符用于设置AssetList
Portfolio对象的属性。为了显示这一点,Portfolio对象的形成r
重复使用“GetAssetList”
标志设置为真正的
.
r = estimateAssetMoments(r,AssetsTimeTable,“GetAssetList”,真正的);disp (r.AssetList”)
{“apple”}{amazon的}{cisco的}{“戴尔”}{“易趣”}{“google”}{“hp”}{“IBM”}{intel的}{“微软”}{‘ORCL}{“yahoo”}{‘市场’}{“现金”}
从数据中估计资产收益的均值和协方差投资组合
具有完整性约束的对象
创建一个投资组合
对象用于三个资产。
AssetMean = [0.0101110;0.0043532;0.0137058);AssetCovar = [0.00324625 0.00022983 0.00420395;0.00022983 0.00049937 0.00019247;0.00420395 0.00019247 0.00764097];AssetMean = AssetMean/12
AssetMean =3×10.0008 0.0004 0.0011
AssetCovar = AssetCovar/12
AssetCovar =3×3103× 0.2705 0.0192 0.3503 0.0192 0.0416 0.0160 0.3503 0.0160 0.6367
X = portsim(AssetMean', AssetCovar, 120);p =投资组合(“AssetMean”AssetMean,“AssetCovar”, AssetCovar);p = setDefaultConstraints(p);
使用setBounds
用半连续约束来设置西=0
或0.02
< =西
< =0.5
对所有我=1
,……NumAssets。
p = setBounds(p, 0.02, 0.5,“BoundType”,“条件”,“NumAssets”3);
当与投资组合
对象,setMinMaxNumAssets
函数使您能够为只做多的投资组合设置基数约束。属性的基数约束投资组合
对象,其中满足非零半连续约束的已分配资产的总数在MinNumAssets
和MaxNumAssets
.通过设置MinNumAssets
=MaxNumAssets
=2时,三种资产中只有两种投资于投资组合。
p = setMinMaxNumAssets(p, 2,2);
使用estimateAssetMoments
从a的数据中估计资产收益的均值和协方差投资组合
对象。
p = estimateAssetMoments(p, X);[passetmean, passetcovar] = getAssetMoments(p)
passetmean =3×10.0008 0.0004 0.0011
passetcovar =3×3103× 0.2705 0.0192 0.3503 0.0192 0.0416 0.0160 0.3503 0.0160 0.6367
的estimateAssetMoments
函数使用MINLP求解器来解决这个问题。使用setSolverMINLP
函数配置SolverType
和选项。
p.solverOptionsMINLP
ans =带字段的结构:MaxIterations: 1000 AbsoluteGapTolerance: 1.0000 -07 RelativeGapTolerance: 1.0000 -05 NonlinearScalingFactor: 1000 ObjectiveScalingFactor: 1000 Display: 'off' CutGeneration: 'basic' MaxIterationsInactiveCut: 30 activecutttolerance: 1.0000 -07 IntMasterSolverOptions: [1x1 optimal .options. 07。Intlinprog] NumIterationsEarlyIntegerConvergence: 30
输入参数
obj
- - - - - -投资组合的对象
对象
AssetReturns
- - - - - -包含可转换为资产收益的资产价格数据的矩阵、表格或时间表
矩阵|表格|表格
矩阵,表格
,或时间表
属性指定的资产价格数据,该数据可转换为资产回报NumSamples
——- - - - - -NumAssets
矩阵。
AssetReturns
数据可以是:
NumSamples
——- - - - - -NumAssets
矩阵。表
NumSamples
的集合的给定周期的价格或回报NumAssets
资产使用
NumSamples
观察和NumAssets
时间序列
使用可选的DataFormat
参数进行转换AssetReturns
将资产价格数据输入到资产收益中。在使用资产价格数据时要小心,因为投资组合优化通常需要总回报,而不仅仅是价格回报。
数据类型:双
|表格
|时间表
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:p = estimateAssetMoments(p,Y,'dataformat','prices')
DataFormat
- - - - - -将输入数据转换为价格为返回值
“返回”
(默认)|带值的字符向量“返回”
或“价格”
标志,将作为价格的输入数据转换为返回值,由逗号分隔的对组成“DataFormat”
和一个字符向量的值:
“返回”
-资料AssetReturns
包含资产总收益。“价格”
-资料AssetReturns
包含资产总回报价格。
数据类型:字符
MissingData
- - - - - -标志,指示是否使用ECM算法或排除样本南
值
假
(默认)|有价值的逻辑真正的
或假
GetAssetList
- - - - - -标志,指示用于资产列表的资产名称
假
(默认)|有价值的逻辑真正的
或假
标志,指示用于资产列表的资产名称,指定为逗号分隔的对,由“GetAssetList”
和值为的逻辑真正的
或假
.的可接受值GetAssetList
是:
假
—不允许提取和创建资产名称。真正的
—从表格或时间表对象中提取或创建资产名称。
如果一个表格
或时间表
参数传递到此函数中AssetReturns
参数和GetAssetList
国旗是真正的
时,表或时间表对象中的列名被用作资产名称obj。AssetList
.
如果传递一个矩阵GetAssetList
国旗是真正的
属性创建的默认资产名称AbstractPortfolio
财产defaultforAssetList
,即“资产”
.
如果GetAssetList
国旗是假
时,没有动作发生,这是默认行为。
数据类型:逻辑
提示
您还可以使用点符号来估计数据中资产收益的平均值和协方差。
obj = obj. estimateassetmoments (AssetReturns);
版本历史
在R2011a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。