В этом примере показано, как использовать отсутствующие алгоритмы данных для оптимизации портфеля и оценки. Этот пример работает с пятью годами ежедневных данных об общей доходности по 12 запасам компьютерных технологий, с шестью аппаратными и шестью программными компаниями. Пример оценивает матрицу среднего и ковариации для этих акций, формирует эффективные границы как с наивным подходом, так и с подходом ECM, а затем сравнивает результаты.
Загрузите файл данных.
load ecmtechdemo.matЭтот файл данных содержит следующие три количества:
Assets является массивом ячеек бегущих строк для 12 акций в примере.
Data является 1254около-12 матрица 1254 дневных общих доходностей для каждого из 12 акций.
Dates является 1254около-1 вектор столбца дат, связанных с данными.
Срок действия данных простирается с 19 апреля 2000 года по 18 апреля 2005 года. Шестой запас в Assets является Google (GOOG), которая начала торговаться 19 августа 2004 года. Так, все возвращения до 20 августа 2004 года отсутствуют и представлены как NaNS. Также у 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
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, который оказался успешным в течение периода от IPO Google до конца периода оценки, в то время как портфели ECM в ECMWts склонны к недостаточному весу AAPL и рекомендуют повышенные веса в GOOG по сравнению с наивными весами.
Для оценки влияния ошибки оценки и, в частности, влияния отсутствующих данных следует использовать ecmnstd для вычисления стандартных ошибок. Хотя можно оценить стандартные ошибки как для среднего значения, так и для ковариации, стандартные ошибки только для средних оценок обычно являются основными интересующими количествами.
StdMeanF = ecmnstd(Data,ECMMean,ECMCovar,'fisher');Вычислите стандартные ошибки, которые используют генерируемую данными матрицу Гессена (которая учитывает возможную потерю информации из-за отсутствия данных) с помощью опции 'hessian'.
StdMeanH = ecmnstd(Data,ECMMean,ECMCovar,'hessian');Разница в стандартных ошибках показывает увеличение неопределенности оценки ожидаемой доходности активов из-за отсутствия данных. Для просмотра различий:
Assets
Assets = 1x12 cell
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