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

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

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

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

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

ecmnmle(Data);

Figure contains an axes object. The axes object with title P r o g r e s s blank o f blank E C M blank A l g o r i t h m blank i n blank e c m n m l e 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 object. The axes object with title E f f i c i e n t blank F r o n t i e r s blank U n d e r blank V a r i o u s blank A s s u m p t i o n s 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, который, оказалось, преуспел за период от Google IPO в конец периода оценки, в то время как портфели 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, являются единственными активами, чтобы разойтись во мнениях из-за недостающей информации.

Смотрите также

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

Похожие темы