Портфели с отсутствующими данными

В этом примере показано, как использовать отсутствующие алгоритмы данных для оптимизации портфеля и для оценки. Этот пример работает с пятью годами ежедневных общих данных о возврате по 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 года отсутствуют и представлены как NaNs. Также у Amazon (AMZN) было несколько дней с отсутствующими значениями, рассеянными в течение последних пяти лет.

Наивный подход к оценке среднего значения и ковариации для этих 12 активов состоит в том, чтобы исключить все дни, которые имеют отсутствующие значения для любого из 12 активов. Используйте функцию ecmninit с 'nanskip' опция для этого.

[NaNMean, NaNCovar] = ecmninit(Data,'nanskip');

Контрастируйте результат этого подхода с использованием всех доступных данных и функциональных ecmnmle вычислить среднее и ковариационное. Во-первых, позвоните ecmnmle без выходных аргументов, чтобы установить, что достаточно данных доступно для получения значимых оценок.

ecmnmle(Data);

Figure contains an axes. The axes with title \bfProgress of ECM Algorithm in ecmnmle contains an object of type line.

Этот график показывает, что даже при почти 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

Figure contains an axes. The axes with title \bfEfficient Frontiers Under Various Assumptions contains 2 objects of type line. These objects represent ECM, NaN.

Очевидно, что наивный подход оптимистичен в отношении компромиссов между рисками и доходностью для этой вселенной из 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, являются единственными активами, которые имеют различия из-за недостающей информации.

См. также

| | | | | | | | | | | | | | | | | |

Похожие темы