В этом примере показано, как использовать отсутствующие алгоритмы данных для оптимизации портфеля и для оценки. Этот пример работает с пятью годами ежедневных общих данных о возврате по 12 запасам компьютерных технологий, с шестью аппаратными и шестью программными компаниями. Пример оценивает среднюю и ковариационную матрицу для этих запасов, формирует эффективные границы как с помощью наивного подхода, так и с помощью подхода ECM, а затем сравнивает результаты.
Загрузите файл данных.
load ecmtechdemo.mat
Этот файл данных содержит следующие три величины:
Assets
- массив ячеек из тикеров для 12 запасов в примере.
Data
является 1254
-by- 12
матрица из 1254 суточных общих возвратов для каждого из 12 запасов.
Dates
является 1254
-by- 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
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