В этом примере показано, как использовать недостающие алгоритмы данных в оптимизации портфеля и в оценке. Этот пример работает с пятью годами ежедневных данных о совокупном доходе для 12 запасов компьютерной технологии с шестью оборудованием и шестью компаниями-разработчиками программного обеспечения. Пример оценивает среднюю и ковариационную матрицу для этих запасов, формирует границы эффективности и с наивным подходом и с подходом ECM, и затем сравнивает результаты.
Загрузите файл данных.
load ecmtechdemo.mat
Этот файл данных содержит эти три количества:
Assets
массив ячеек тикеров для этих 12 запасов в примере.
Data
1254
- 12
матрица 1 254 ежедневных совокупных доходов для каждого из этих 12 запасов.
Dates
1254
- 1
вектор-столбец дат сопоставлен с данными.
Период времени для данных расширяет с 19 апреля 2000 до 18 апреля 2005. Шестой запас в Assets
Google (GOOG), который начал торговать 19 августа 2004. Так, все возвращается, до 20 августа 2004 отсутствуют и представленные как NaN
s. Кроме того, Amazon (AMZN) имел несколько дней с отсутствующими значениями, рассеянными в течение прошлых пяти лет.
Наивный подход к оценке среднего значения и ковариации для этих 12 активов должен устранить все дни, которые имеют отсутствующие значения для любого из этих 12 активов. Используйте функциональный ecmninit
с 'nanskip'
опция, чтобы сделать это.
[NaNMean, NaNCovar] = ecmninit(Data,'nanskip');
Контрастируйте результат этого подхода с использованием всех доступных данных и функционального ecmnmle
вычислить среднее значение и ковариацию. Во-первых, вызовите ecmnmle
без выходных аргументов, чтобы установить, что достаточно данных доступно, чтобы получить значимые оценки.
ecmnmle(Data);
Этот график показывает что, даже почти с 87% данных Google, являющихся NaN
значения, алгоритм сходится только после четырех итераций.
Оцените среднее значение и ковариацию, как вычислено ecmnmle
.
[ECMMean, ECMCovar] = ecmnmle(Data)
ECMMean = 12×1
0.0008
0.0008
-0.0005
0.0002
0.0011
0.0038
-0.0003
-0.0000
-0.0003
-0.0000
⋮
ECMCovar = 12×12
0.0012 0.0005 0.0006 0.0005 0.0005 0.0003 0.0005 0.0003 0.0006 0.0003 0.0005 0.0006
0.0005 0.0024 0.0007 0.0006 0.0010 0.0004 0.0005 0.0003 0.0006 0.0004 0.0006 0.0012
0.0006 0.0007 0.0013 0.0007 0.0007 0.0003 0.0006 0.0004 0.0008 0.0005 0.0008 0.0008
0.0005 0.0006 0.0007 0.0009 0.0006 0.0002 0.0005 0.0003 0.0007 0.0004 0.0005 0.0007
0.0005 0.0010 0.0007 0.0006 0.0016 0.0006 0.0005 0.0003 0.0006 0.0004 0.0007 0.0011
0.0003 0.0004 0.0003 0.0002 0.0006 0.0022 0.0001 0.0002 0.0002 0.0001 0.0003 0.0016
0.0005 0.0005 0.0006 0.0005 0.0005 0.0001 0.0009 0.0003 0.0005 0.0004 0.0005 0.0006
0.0003 0.0003 0.0004 0.0003 0.0003 0.0002 0.0003 0.0005 0.0004 0.0003 0.0004 0.0004
0.0006 0.0006 0.0008 0.0007 0.0006 0.0002 0.0005 0.0004 0.0011 0.0005 0.0007 0.0007
0.0003 0.0004 0.0005 0.0004 0.0004 0.0001 0.0004 0.0003 0.0005 0.0006 0.0004 0.0005
⋮
Учитывая оценки для среднего значения и ковариации актива возвращается выведенный из наивного и подходов ECM, оценочных портфелей, и сопоставленных ожидаемых доходов и рисков на границе эффективности для обоих подходов.
[ECMRisk, ECMReturn, ECMWts] = portopt(ECMMean',ECMCovar,10); [NaNRisk, NaNReturn, NaNWts] = portopt(NaNMean',NaNCovar,10);
Постройте результаты на том же графике, чтобы проиллюстрировать различия.
figure(gcf) plot(ECMRisk,ECMReturn,'-bo','MarkerFaceColor','b','MarkerSize', 3); hold on plot(NaNRisk,NaNReturn,'-ro','MarkerFaceColor','r','MarkerSize', 3); title('\bfEfficient Frontiers Under Various Assumptions'); legend('ECM','NaN','Location','SouthEast'); xlabel('\bfStd. Deviation of Returns'); ylabel('\bfMean of Returns'); hold off
Безусловно, наивный подход оптимистичен относительно компромиссов возврата риск для этой вселенной 12 технологических акций. Доказательство, однако, находится в весах портфеля. Просмотреть веса:
Assets
Assets = 1x12 cell array
Columns 1 through 6
{'AAPL'} {'AMZN'} {'CSCO'} {'DELL'} {'EBAY'} {'GOOG'}
Columns 7 through 12
{'HPQ'} {'IBM'} {'INTC'} {'MSFT'} {'ORCL'} {'YHOO'}
ECMWts
ECMWts = 10×12
0.0358 0.0011 0 0 0 0.0989 0.0535 0.4676 0 0.3431 0 0
0.0654 0.0110 0 0 0 0.1877 0.0179 0.3899 0 0.3282 0 0
0.0923 0.0194 0 0 0 0.2784 0 0.3025 0 0.3074 0 0
0.1165 0.0264 0 0 0 0.3712 0 0.2054 0 0.2806 0 0
0.1407 0.0334 0 0 0 0.4639 0 0.1083 0 0.2538 0 0
0.1648 0.0403 0 0 0 0.5566 0 0.0111 0 0.2271 0 0
0.1755 0.0457 0 0 0 0.6532 0 0 0 0.1255 0 0
0.1845 0.0509 0 0 0 0.7502 0 0 0 0.0143 0 0
0.1093 0.0174 0 0 0 0.8733 0 0 0 0 0 0
0 0 0 0 0 1.0000 0 0 0 0 0 0
NaNWts
NaNWts = 10×12
0 0 0 0.1185 0 0.0522 0.0824 0.1779 0 0.5691 0 0
0.0576 0 0 0.1219 0 0.0854 0.1274 0.0460 0 0.5617 0 0
0.1248 0 0 0.0952 0 0.1195 0.1674 0 0 0.4802 0.0129 0
0.1969 0 0 0.0529 0 0.1551 0.2056 0 0 0.3621 0.0274 0
0.2690 0 0 0.0105 0 0.1906 0.2438 0 0 0.2441 0.0419 0
0.3414 0 0 0 0 0.2265 0.2782 0 0 0.0988 0.0551 0
0.4235 0 0 0 0 0.2639 0.2788 0 0 0 0.0337 0
0.5245 0 0 0 0 0.3034 0.1721 0 0 0 0 0
0.6269 0 0 0 0 0.3425 0.0306 0 0 0 0 0
1.0000 0 0 0 0 0 0 0 0 0 0 0
Наивные портфели в NaNWts
будьте склонны одобрять AAPL, который, оказалось, преуспел за период от Google IPO в конец периода оценки, в то время как портфели ECM в ECMWts
стремитесь к весящему ниже нормы AAPL и рекомендовать увеличенные веса в GOOG относительно наивных весов.
Оценивать удар ошибки оценки и, в частности, эффект недостающих данных, ecmnstd
использования вычислить стандартные погрешности. Несмотря на то, что возможно оценить стандартные погрешности и для среднего значения и для ковариации, стандартные погрешности для одних только средних оценок обычно являются основными количествами интереса.
StdMeanF = ecmnstd(Data,ECMMean,ECMCovar,'fisher');
Вычислите стандартные погрешности, которые используют сгенерированную данными матрицу Гессиана (который составляет возможную потерю информации из-за недостающих данных) с опцией 'hessian'
.
StdMeanH = ecmnstd(Data,ECMMean,ECMCovar,'hessian');
Различие в стандартных погрешностях показывает увеличение неопределенности в оценке ожидаемых доходов актива из-за недостающих данных. Просмотреть различия:
Assets
Assets = 1x12 cell array
Columns 1 through 6
{'AAPL'} {'AMZN'} {'CSCO'} {'DELL'} {'EBAY'} {'GOOG'}
Columns 7 through 12
{'HPQ'} {'IBM'} {'INTC'} {'MSFT'} {'ORCL'} {'YHOO'}
StdMeanH'
ans = 1×12
0.0010 0.0014 0.0010 0.0009 0.0011 0.0021 0.0009 0.0006 0.0009 0.0007 0.0010 0.0012
StdMeanF'
ans = 1×12
0.0010 0.0014 0.0010 0.0009 0.0011 0.0013 0.0009 0.0006 0.0009 0.0007 0.0010 0.0012
StdMeanH' - StdMeanF'
ans = 1×12
10-3 ×
-0.0000 0.0021 -0.0000 -0.0000 -0.0000 0.7742 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000 -0.0000
Эти два актива с недостающими данными, AMZN и GOOG, являются единственными активами, чтобы разойтись во мнениях из-за недостающей информации.
convert2sur
| ecmlsrmle
| ecmlsrobj
| ecmmvnrfish
| ecmmvnrfish
| ecmmvnrmle
| ecmmvnrobj
| ecmmvnrstd
| ecmmvnrstd
| ecmnfish
| ecmnhess
| ecmninit
| ecmnmle
| ecmnobj
| ecmnstd
| mvnrfish
| mvnrmle
| mvnrobj
| mvnrstd