estimateAssetMoments

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

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

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

Описание

пример

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- NumAssets матрица.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

Советы

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

obj = obj.estimateAssetMoments(AssetReturns);

Введенный в R2011a