主要内容

estimateAssetMoments

从数据中估计资产收益的均值和协方差

使用一个弗林特对象的AssetReturns的观点estimateAssetMoments不建议使用。使用时间表而是金融时间序列。有关更多信息,请参见将财务时间序列对象转换为时间表

描述

例子

obj= estimateAssetMoments (objAssetReturns从a的数据估计资产收益的平均值和协方差投资组合对象。关于工作流的详细信息,请参见投资组合对象工作流

例子

obj= estimateAssetMoments (___名称,值通过一个或多个附加选项,从一个Portfolio对象的数据中估计资产回报的平均值和协方差名称,值对参数。

例子

全部折叠

为了说明如何使用estimateAssetMoments函数,从变量中资产收益的均值和协方差生成四种资产的120个资产收益观察值的随机样本Cportsim函数。默认行为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);

给定资产回报率和价格中的变量XY从上面,下面的例子演示了评估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”值是真正的时,时间表列标识符用于设置AssetListPortfolio对象的属性。为了显示这一点,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用半连续约束来设置西00.02< =西< =0.5对所有1,……NumAssets。

p = setBounds(p, 0.02, 0.5,“BoundType”“条件”“NumAssets”3);

当与投资组合对象,setMinMaxNumAssets函数使您能够为只做多的投资组合设置基数约束。属性的基数约束投资组合对象,其中满足非零半连续约束的已分配资产的总数在MinNumAssetsMaxNumAssets.通过设置MinNumAssetsMaxNumAssets=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

输入参数

全部折叠

对象的组合,使用投资组合对象。有关创建投资组合对象的更多信息,请参见

数据类型:对象

矩阵,表格,或时间表属性指定的资产价格数据,该数据可转换为资产回报NumSamples——- - - - - -NumAssets矩阵。

AssetReturns数据可以是:

  • NumSamples——- - - - - -NumAssets矩阵。

  • NumSamples的集合的给定周期的价格或回报NumAssets资产

  • 使用NumSamples观察和NumAssets时间序列

使用可选的DataFormat参数进行转换AssetReturns将资产价格数据输入到资产收益中。在使用资产价格数据时要小心,因为投资组合优化通常需要总回报,而不仅仅是价格回报。

数据类型:|表格|时间表

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:p = estimateAssetMoments(p,Y,'dataformat','prices')

标志,将作为价格的输入数据转换为返回值,由逗号分隔的对组成“DataFormat”和一个字符向量的值:

  • “返回”-资料AssetReturns包含资产总收益。

  • “价格”-资料AssetReturns包含资产总回报价格。

数据类型:字符

标志,指示是否使用ECM算法或排除样本值,指定为逗号分隔的对,由“MissingData”和值为的逻辑真正的

处理缺少数据的时间序列(用值),MissingDataflag使用ECM算法来获得存在的最大似然估计的值或不包含样本值。因为默认为,有必要详细说明MissingData作为真正的使用ECM算法。

的可接受值MissingData是:

  • —请勿使用ECM算法进行处理值(排除值)。

  • 真正的—使用ECM算法进行处理值。

有关ECM算法的更多信息,请参见ecmnmle多元正态回归

数据类型:逻辑

标志,指示用于资产列表的资产名称,指定为逗号分隔的对,由“GetAssetList”和值为的逻辑真正的.的可接受值GetAssetList是:

  • —不允许提取和创建资产名称。

  • 真正的—从表格或时间表对象中提取或创建资产名称。

如果一个表格时间表参数传递到此函数中AssetReturns参数和GetAssetList国旗是真正的时,表或时间表对象中的列名被用作资产名称obj。AssetList

如果传递一个矩阵GetAssetList国旗是真正的属性创建的默认资产名称AbstractPortfolio财产defaultforAssetList,即“资产”

如果GetAssetList国旗是时,没有动作发生,这是默认行为。

数据类型:逻辑

输出参数

全部折叠

更新的投资组合对象,返回为投资组合对象。有关创建投资组合对象的更多信息,请参见

提示

您还可以使用点符号来估计数据中资产收益的平均值和协方差。

obj = obj. estimateassetmoments (AssetReturns);

版本历史

在R2011a中引入

Baidu
map