exponenta event banner

estimateAssetMoments

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

Использование 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. Объект портфолио создается в 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' false, который удаляет все образцы с NaN значения. Если, однако, 'MissingData' имеет значение true, estimateAssetMoments использует алгоритм ECM для оценки моментов актива.

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

Кроме того, estimateAssetMoments функция также извлекает имена или идентификаторы активов из объекта расписания, когда аргумент name-value '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 активы

  • Объект расписания с 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 и многомерная нормальная регрессия.

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

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

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

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

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

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

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

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

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

свернуть все

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

Совет

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

obj = obj.estimateAssetMoments(AssetReturns);

Представлен в R2011a