ecmmvnrmle

Многомерная нормальная регрессия с отсутствующими данными

Описание

пример

[Param,Covar] = ecmmvnrmle(Data,Design) оценивает многомерную регрессионую модель нормальной регрессии с отсутствующими данными. Модель имеет вид

DatakN(Designk×Parameters,Covariance)

для выборок k = 1,..., NUMSAMPLES.

пример

[Param,Covar,Resid,Info] = ecmmvnrmle(___,MaxIterations,TolParam,TolObj,Param0,Covar0,CovarFormat) добавляет необязательные аргументы для MaxIterations, TolParam, TolObj, Param0, Covar0, и CovarFormat.

Примеры

свернуть все

Этот пример показывает, как оценить многомерную нормальную регрессионую модель с отсутствующими данными.

Во-первых, даты загрузки, общие возвраты и символы тикера для двенадцати запасов из MAT-файла.

load CAPMuniverse
whos Assets Data Dates
  Name           Size             Bytes  Class     Attributes

  Assets         1x14              1568  cell                
  Data        1471x14            164752  double              
  Dates       1471x1              11768  double              
Dates = datetime(Dates,'ConvertFrom','datenum');

Активы в модели имеют следующие символы, где последние две серии являются прокси для рынка и безрискового актива.

Assets(1:14)
ans = 1x14 cell
  Columns 1 through 6

    {'AAPL'}    {'AMZN'}    {'CSCO'}    {'DELL'}    {'EBAY'}    {'GOOG'}

  Columns 7 through 12

    {'HPQ'}    {'IBM'}    {'INTC'}    {'MSFT'}    {'ORCL'}    {'YHOO'}

  Columns 13 through 14

    {'MARKET'}    {'CASH'}

Данные охватывают период с 1 января 2000 года по 7 ноября 2005 года с ежедневными общими возвратами. Две акции в этой вселенной имеют отсутствующие значения, которые представлены NaNs. Один из двух запасов имел IPO в течение этого периода и, следовательно, имеет значительно меньше данных, чем другие запасы.

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

[NumSamples, NumSeries] = size(Data);
NumAssets = NumSeries - 2;

StartDate = Dates(1);
EndDate = Dates(end);

Alpha = NaN(1, length(NumAssets));
Beta = NaN(1, length(NumAssets));
Sigma = NaN(1, length(NumAssets));
StdAlpha = NaN(1, length(NumAssets));
StdBeta = NaN(1, length(NumAssets));
StdSigma = NaN(1, length(NumAssets));
for i = 1:NumAssets
	% Set up separate asset data and design matrices
	TestData = zeros(NumSamples,1);
	TestDesign = zeros(NumSamples,2);

	TestData(:) = Data(:,i) - Data(:,14);
	TestDesign(:,1) = 1.0;
	TestDesign(:,2) = Data(:,13) - Data(:,14);

	% Estimate the multivariate normal regression for each asset separately.
	[Param, Covar] = ecmmvnrmle(TestData, TestDesign)
    
end   
Param = 2×1

    0.0012
    1.2294

Covar = 0.0010
Param = 2×1

    0.0006
    1.3661

Covar = 0.0020
Param = 2×1

   -0.0002
    1.5653

Covar = 8.8911e-04
Param = 2×1

   -0.0000
    1.2594

Covar = 6.4996e-04
Param = 2×1

    0.0014
    1.3441

Covar = 0.0014
Param = 2×1

    0.0046
    0.3742

Covar = 6.3272e-04
Param = 2×1

    0.0001
    1.3745

Covar = 6.5040e-04
Param = 2×1

   -0.0000
    1.0807

Covar = 2.8562e-04
Param = 2×1

    0.0001
    1.6002

Covar = 6.9146e-04
Param = 2×1

   -0.0002
    1.1765

Covar = 3.7138e-04
Param = 2×1

    0.0000
    1.5010

Covar = 0.0010
Param = 2×1

    0.0001
    1.6543

Covar = 0.0015

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

свернуть все

Данные, заданные как NUMSAMPLES-by- NUMSERIES матрица с NUMSAMPLES выборки NUMSERIES-мерный случайный вектор. Отсутствующие значения обозначаются NaNs. Только выборки, которые полностью NaNs игнорируются. (Чтобы игнорировать выборки хотя бы с одной NaN, использование mvnrmle.)

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

Проектируйте модель, заданную как матрица или массив ячеек, который обрабатывает две структуры модели:

  • Если NUMSERIES = 1, Design является NUMSAMPLES-by- NUMPARAMS матрица с известными значениями. Эта структура является стандартной формой для регрессии в одной серии.

  • Если NUMSERIES1, Design - массив ячеек. Массив ячеек содержит один или NUMSAMPLES камеры. Каждая камера содержит NUMSERIES-by- NUMPARAMS матрица известных значений.

    Если Design имеет одну камеру, она принята такой же Design матрица для каждой выборки. Если Design имеет более одной камеры, каждая камера содержит Design матрица для каждой выборки.

Типы данных: double | cell

(Необязательно) Максимальное количество итераций для алгоритма оценки, заданное в виде числа.

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

(Необязательно) Допуск сходимости для алгоритма оценки, основанный на изменениях в оценках параметра модели, заданных в виде числа. Тест сходимости для изменений параметров модели

ParamkParamk1<TolParam×(1+Paramk)

где Param представляет выходу Parameters, и итерация k = 2, 3,.... Сходимость принимается, когда оба TolParam и TolObj условия удовлетворены. Если оба TolParam0 и TolObj0, выполните максимальное количество итераций (MaxIterations), независимо от результатов тестов сходимости.

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

(Необязательно) Допуск сходимости для алгоритма оценки, основанный на изменениях в целевой функции, заданных в виде числа. Тест сходимости для изменений в целевой функции

|ObjkObjk1|<TolObj×(1+|Objk|)

для итерации k = 2, 3,.... Сходимость принимается, когда оба TolParam и TolObj условия удовлетворены. Если оба TolParam0 и TolObj0, выполните максимальное количество итераций (MaxIterations), независимо от результатов тестов сходимости.

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

(Необязательно) Оценка параметров регрессионой модели, заданная как NUMPARAMS-by- 1 Вектор-столбец.

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

(Необязательно) Оценка ковариационной матрицы регрессионых невязок, заданная как NUMSERIES-by- NUMSERIES матрица.

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

(Необязательно) Формат ковариационной матрицы, заданный как вектор символов. Возможны следующие варианты:

  • 'full' - Вычислите полную ковариационную матрицу.

  • 'diagonal' - Заставить ковариационную матрицу быть диагональной матрицей.

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

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

свернуть все

Оценки для параметров регрессионой модели, возвращенные как NUMPARAMS-by- 1 Вектор-столбец.

Оценки ковариации невязок регрессионой модели, возвращенные как NUMSERIES-by- NUMSERIES матрица.

Невязки от регрессии, возвращенные как NUMSAMPLES-by- NUMSERIES матрица. Для всех отсутствующих значений в Dataсоответствующая невязка является различием между условно вменяемым значением для Data и модель, то есть вмененная невязка.

Примечание

Ковариационная оценка Covariance не может быть получен из невязок.

Дополнительная информация от регрессии, возвращенная как структура. Структура имеет следующие поля:

  • Info.Obj - вектор-столбец с переменным расширением, не более MaxIterations элементы, которые содержат каждое значение целевой функции при каждой итерации алгоритма оценки. Последнее значение в этом векторе, Obj(end), - терминальная оценка целевой функции. Если вы делаете максимальную оценку правдоподобия, целевой функцией является функция логарифмической правдоподобности.

  • Info.PrevParametersNUMPARAMS-by- 1 вектор-столбец оценок для параметров модели из итерации непосредственно перед итерацией терминала. Info.PrevCovarianceNUMSERIES-by- NUMSERIES матрица оценок для ковариационных параметров из итерации непосредственно перед терминальной итерацией.

Ссылки

[1] Литтл, Родерик Дж. А. и Дональд Б. Рубин. Статистический анализ с отсутствующими данными. 2-е издание. John Wiley & Sons, Inc., 2002.

[2] Мэн, Сяо-Ли и Дональд Б. Рубин. «Максимальная оценка правдоподобия через алгоритм ECM». Биометрика. Том 80, № 2, 1993, стр. 267-278.

[3] Секстон, Джо и Андерс Райг Свенсен. «Алгоритмы ECM, которые сходятся со скоростью EM». Биометрика. Том 87, № 3, 2000, стр. 651-662.

[4] Демпстер, А. П., Н. М. Лэрд и Дональд Б. Рубин. «Максимальная правдоподобность из неполных данных через алгоритм EM». Журнал Королевского статистического общества. Серия B, том 39, № 1, 1977, стр. 1-37.

Введенный в R2006a