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)
ans =5×14时间表时间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-一月-2000 0.014634 -0.14877 -0.003039 0.070984 0.066875 NaN -0.006356 0.052837 -0.073363 0.011443 0.00020376 06-一月-2000 -0.086538 -0.060072 - 0.016672 -0.038847 -0.012302 NaN -0.063688 -0.017241 -0.05824 -0.033477 -0.058824 -0.10307 0.011743 0.00020266 07-一月-2000 0.047368 0.061013 0.0587 -0.037708 -0.000964 NaN 0.028416 -0.004386 0.04127 0.076771 0.10609 0.02393 0.00020157
请注意,google
数据丢失(南
),因为该公司在2004年8月之前没有上市。的estimateAssetMoments
函数有一个名值对参数“MissingData”
它用一个布尔值指示是否使用Financial Toolbox™软件缺少的数据功能。的默认值。“MissingData”
是false,它删除所有的样本南
值。然而,如果“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
从数据中估计资产收益的均值和协方差投资组合
对象。
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 =带有字段的结构:maxiteration: 1000 AbsoluteGapTolerance: 1.0000e-07 RelativeGapTolerance: 1.0000e-05 NonlinearScalingFactor: 1000 ObjectiveScalingFactor: 1000 Display: 'off' CutGeneration: 'basic' maxiterationsinactivcut: 30 activecutttolerance: 1.0000e-07 IntMasterSolverOptions: [1x1 optim.options.]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);
版本历史
Matlab명령
다음matlab명령에해당하는링크를클릭했습니다。
명령을실행하려면matlab명령창에입력하십시오。웹브라우저는matlab명령을지원하지않습니다。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。