estimateAssetMoments

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

Используя a fints объект для AssetReturns аргумент estimateAssetMoments не рекомендуется. Использование 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×14 timetable
       Time          AAPL         AMZN         CSCO         DELL         EBAY       GOOG       HPQ          IBM         INTC         MSFT         ORCL         YHOO        MARKET         CASH   
    ___________    _________    _________    _________    _________    _________    ____    _________    _________    _________    _________    _________    _________    _________    __________

    03-Jan-2000     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    -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     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    -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     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 имя аргумента и 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 — Извлеките или создайте имена актива из объекта таблицы или расписания.

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

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

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

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

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

свернуть все

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

Советы

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

obj = obj.estimateAssetMoments(AssetReturns);

Введенный в R2011a