estimateAssetMoments

Оценочное среднее значение и ковариация актива возвращаются из данных

estimateAssetMoments был частично удален и больше не будет принимать объект fints для аргумента AssetReturns. Используйте timetable вместо этого для финансовых временных рядов.

Используйте fts2timetable, чтобы преобразовать объект fints в объект timetable.

Синтаксис

obj = estimateAssetMoments(obj,AssetReturns)
obj = estimateAssetMoments(___,Name,Value)

Описание

пример

obj = estimateAssetMoments(obj,AssetReturns) оценочное среднее значение и ковариация актива возвращаются из данных для объекта Portfolio. Для получения дополнительной информации на рабочем процессе, смотрите Рабочий процесс Объекта Портфеля.

пример

obj = estimateAssetMoments(___,Name,Value) оценочное среднее значение и ковариация актива возвращаются из данных для объекта Portfolio с дополнительными опциями для одного или нескольких аргументов пары Name,Value.

Примеры

свернуть все

Чтобы проиллюстрировать использование функции estimateAssetMoments, сгенерируйте случайные выборки 120 наблюдений за активом, возвращается для четырех активов из среднего значения, и ковариация актива возвращается в переменных m и C с функцией portsim. Поведение по умолчанию portsim создает моделируемые данные с предполагаемым средним значением и ковариацией, идентичной входным моментам m и C. В дополнение к ряду возврата, созданному функцией portsim в переменной X, ценовой ряд создается в переменной Y:

m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0; 
      0.00408 0.0289 0.0204 0.0119;
      0.00192 0.0204 0.0576 0.0336;
      0 0.0119 0.0336 0.1225 ];
m = m/12;
C = C/12;
X = portsim(m', C, 120);
Y = ret2tick(X);

Учитывая актив возвращается и цены в переменных X и Y сверху, следующие примеры демонстрируют эквивалентные способы оценить моменты актива для объекта Portfolio. Объект Portfolio создается в p с моментами актива, возвращает набор непосредственно в объекте Portfolio, и второй объект Portfolio создается в q, чтобы получить среднее значение, и ковариация актива возвращается из актива, возвращают данные в X с помощью функции estimateAssetMoments.

m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0; 
      0.00408 0.0289 0.0204 0.0119;
      0.00192 0.0204 0.0576 0.0336;
      0 0.0119 0.0336 0.1225 ];
m = m/12;
C = C/12;
 
X = portsim(m', C, 120);
p = Portfolio('mean',m,'covar',C);
q = Portfolio;
q = estimateAssetMoments(q, X);
 
[passetmean, passetcovar] = getAssetMoments(p)
passetmean = 4×1

    0.0042
    0.0083
    0.0100
    0.0150

passetcovar = 4×4

    0.0005    0.0003    0.0002         0
    0.0003    0.0024    0.0017    0.0010
    0.0002    0.0017    0.0048    0.0028
         0    0.0010    0.0028    0.0102

[qassetmean, qassetcovar] = getAssetMoments(q)
qassetmean = 4×1

    0.0042
    0.0083
    0.0100
    0.0150

qassetcovar = 4×4

    0.0005    0.0003    0.0002   -0.0000
    0.0003    0.0024    0.0017    0.0010
    0.0002    0.0017    0.0048    0.0028
   -0.0000    0.0010    0.0028    0.0102

Заметьте, как любой подход приводит к тем же моментам. Поведение по умолчанию функции estimateAssetMoments должно работать с активом, возвращается. Если, вместо этого, у вас есть цены активов, такой как в переменной Y, функция estimateAssetMoments принимает, что название параметра 'DataFormat' с соответствующим набором значений к 'prices' указывает, что вход к методу в форме цен активов и не возвращается (значением параметров по умолчанию для 'DataFormat' является 'returns'). Следующий пример сравнивает прямое присвоение моментов в объекте Portfolio p с предполагаемыми моментами от данных цен активов в Y в объекте Portfolio q:

m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0; 
      0.00408 0.0289 0.0204 0.0119;
      0.00192 0.0204 0.0576 0.0336;
      0 0.0119 0.0336 0.1225 ];
m = m/12;
C = C/12;
 
X = portsim(m', C, 120);
Y = ret2tick(X);

p = Portfolio('mean',m,'covar',C);
        
q = Portfolio;
q = estimateAssetMoments(q, Y, 'dataformat', 'prices');
 
[passetmean, passetcovar] = getAssetMoments(p)
passetmean = 4×1

    0.0042
    0.0083
    0.0100
    0.0150

passetcovar = 4×4

    0.0005    0.0003    0.0002         0
    0.0003    0.0024    0.0017    0.0010
    0.0002    0.0017    0.0048    0.0028
         0    0.0010    0.0028    0.0102

[qassetmean, qassetcovar] = getAssetMoments(q)
qassetmean = 4×1

    0.0042
    0.0083
    0.0100
    0.0150

qassetcovar = 4×4

    0.0005    0.0003    0.0002   -0.0000
    0.0003    0.0024    0.0017    0.0010
    0.0002    0.0017    0.0048    0.0028
   -0.0000    0.0010    0.0028    0.0102

Чтобы проиллюстрировать использование функции estimateAssetMoments с данными AssetReturns, продолженными в объекте timetable, используйте CAPMuniverse.mat, который содержит объект timetable (AssetTimeTable) для данных о возвратах.

load CAPMuniverse
AssetsTimeTable.Properties;
head(AssetsTimeTable,5)
ans=5×15 timetable
            Time              AAPL         AMZN         CSCO         DELL         EBAY       GOOG       HPQ          IBM         INTC         MSFT         ORCL         YHOO        MARKET         CASH   
    ____________________    _________    _________    _________    _________    _________    ____    _________    _________    _________    _________    _________    _________    _________    __________

    03-Jan-2000 00:00:00     0.088805       0.1742     0.008775    -0.002353      0.12829    NaN       0.03244     0.075368      0.05698    -0.001627     0.054078     0.097784    -0.012143    0.00020522
    04-Jan-2000 00:00:00    -0.084331     -0.08324     -0.05608     -0.08353    -0.093805    NaN     -0.075613    -0.033966    -0.046667    -0.033802      -0.0883    -0.067368     -0.03166    0.00020339
    05-Jan-2000 00:00:00     0.014634     -0.14877    -0.003039     0.070984     0.066875    NaN     -0.006356      0.03516     0.008199     0.010567    -0.052837    -0.073363     0.011443    0.00020376
    06-Jan-2000 00:00:00    -0.086538    -0.060072    -0.016619    -0.038847    -0.012302    NaN     -0.063688    -0.017241     -0.05824    -0.033477    -0.058824     -0.10307     0.011743    0.00020266
    07-Jan-2000 00:00:00     0.047368     0.061013       0.0587    -0.037708    -0.000964    NaN      0.028416    -0.004386      0.04127     0.013091     0.076771      0.10609      0.02393    0.00020157

Заметьте, что GOOG имеет недостающие данные (NaN), потому что это не было перечислено до августа 2004. Функция estimateAssetMoments имеет аргумент пары "имя-значение" 'MissingData', который указывает с булевым значением, использовать ли недостающую поддержку данных программного обеспечения Financial Toolbox™. Значение по умолчанию для 'MissingData' является ложным, который удаляет все выборки со значениями NaN. Если, однако, 'MissingData' установлен в истину, estimateAssetMoments использует алгоритм ECM, чтобы оценить моменты актива.

r = Portfolio;
r = estimateAssetMoments(r,AssetsTimeTable,'dataformat','returns','missingdata',true);

Кроме того, функция estimateAssetMoments также извлекает имена актива или идентификаторы от объекта расписания, когда набор аргумента 'GetAssetList' значения имени к true (его значением по умолчанию является false). Если значением 'GetAssetList' является true, идентификаторы столбцов расписания используются, чтобы установить свойство AssetList объекта Portfolio. Чтобы показать это, формирование объекта Portfolio, r повторяется с набором флага 'GetAssetList' к true.

r = estimateAssetMoments(r,AssetsTimeTable,'GetAssetList',true);
disp(r.AssetList')
    'AAPL'
    'AMZN'
    'CSCO'
    'DELL'
    'EBAY'
    'GOOG'
    'HPQ'
    'IBM'
    'INTC'
    'MSFT'
    'ORCL'
    'YHOO'
    'MARKET'
    'CASH'

Входные параметры

свернуть все

Объект для портфеля, заданное использование объекта Portfolio. Для получения дополнительной информации о создании объекта портфеля смотрите

Типы данных: object

Матрица, table или timetable, который содержит данные цен активов, которые могут быть преобразованы в актив, возвращаются, заданный NumSamples-by-NumAssets матрица.

Данные AssetReturns могут быть:

  • NumSamples-by-NumAssets матрица.

  • Таблица цен NumSamples или возвращается в данной периодичности для набора активов NumAssets

  • Объект Timetable с наблюдениями NumSamples и временными рядами NumAssets

Используйте дополнительный аргумент DataFormat, чтобы преобразовать входные данные AssetReturns, который является ценами активов в актив, возвращается. Будьте осторожны при использовании данных цен активов, потому что оптимизация портфеля обычно требует совокупных доходов и не, просто цена возвращается.

Типы данных: double | table | timetable

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: p = estimateAssetMoments(p,Y,'dataformat','prices')

Отметьте, чтобы преобразовать входные данные как цены в возвраты, заданные как пара, разделенная запятой, состоящая из 'DataFormat' и вектора символов со значениями:

  • Возвращается Данные в AssetReturns содержат совокупные доходы актива.

  • 'Prices' — Данные в AssetReturns содержат цены совокупного дохода актива.

Типы данных: char

Отметьте указание, использовать ли алгоритм ECM или исключаете выборки со значениями NaN, заданными как пара, разделенная запятой, состоящая из 'MissingData' и логического со значением true или false.

Чтобы обработать временные ряды с недостающими данными (обозначенный со значениями NaN), флаг MissingData или использует алгоритм ECM, чтобы получить оценки наибольшего правдоподобия в присутствии значений NaN или исключает выборки со значениями NaN. Поскольку значением по умолчанию является false, необходимо задать MissingData как true, чтобы использовать алгоритм ECM.

Приемлемые значения для MissingData:

  • ложь Не используйте алгоритм ECM, чтобы обработать значения NaN (исключите значения NaN).

  • tRUE Используйте алгоритм ECM, чтобы обработать значения NaN.

Для получения дополнительной информации об алгоритме ECM смотрите ecmnmle и Многомерную Нормальную Регрессию.

Типы данных: логический

Отметьте указание, которое актив называет, чтобы использовать для списка активов, заданного как пара, разделенная запятой, состоящая из 'GetAssetList' и логического со значением true или false. Приемлемые значения для GetAssetList:

  • ложь Не извлекайте или создавайте имена актива.

  • tRUE Извлеките или создайте имена актива из объекта таблицы или расписания.

Если table или timetable передаются в эту функцию с помощью аргумента AssetReturns, и флагом GetAssetList является true, имена столбцов от объекта таблицы или расписания используются в качестве имен актива в obj.AssetList.

Если матрица передается, и флагом GetAssetList является true, имена актива по умолчанию создаются на основе свойства AbstractPortfolio defaultforAssetList, который является 'Asset'.

Если флагом GetAssetList является false, никакое действие не происходит, который является поведением по умолчанию.

Типы данных: логический

Выходные аргументы

свернуть все

Обновленный объект портфеля, возвращенный как объект Portfolio. Для получения дополнительной информации о создании объекта портфеля смотрите

Советы

Можно также использовать запись через точку, чтобы оценить среднее значение, и ковариация актива возвращается из данных.

obj = obj.estimateAssetMoments(AssetReturns);

Введенный в R2011a