estimateAssetMoments

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

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

Описание

пример

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

пример

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

Примеры

свернуть все

Чтобы проиллюстрировать использование estimateAssetMoments function, сгенерировать случайные выборки 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 выше следующие примеры демонстрируют эквивалентные способы оценки моментов актива для объекта Портфолио. Объект Портфолио создается в 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'). В следующем примере сравнивается прямое присвоение моментов в объекте Портфолио p с расчетными моментами из данных о цене активов в Y в объекте Портфолио 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 года. The estimateAssetMoments функция имеет аргумент пары "имя-значение" 'MissingData' это указывает с помощью логического значения, использовать ли отсутствующие возможности данных программного обеспечения Financial Toolbox™. Значение по умолчанию для 'MissingData' false, который удаляет все выборки с NaN значения. Если, однако 'MissingData' задано значение true, estimateAssetMoments использует алгоритм ECM, чтобы оценить моменты актива.

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

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