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- NUMSERIES матрица с NUMSAMPLES выборки NUMSERIES- размерный случайный вектор. Отсутствующие значения обозначаются NaNs. Только выборки, которые являются полностью NaNs проигнорированы. (Чтобы проигнорировать выборки по крайней мере с одним NaNИспользование mvnrmle.)

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

Модель проекта в виде матрицы или массива ячеек, который обрабатывает две структуры модели:

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

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

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

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

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

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

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

ParamkParamk1<TolParam×(1+Paramk)

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

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

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

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

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

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

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

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

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

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

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

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

  • 'diagonal' — Обеспечьте ковариационную матрицу, чтобы быть диагональной матрицей.

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

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

свернуть все

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

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

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

Примечание

Оценка ковариации Covariance не может быть выведен из остаточных значений.

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

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

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

Ссылки

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

[2] Мэн, Xiao-литий и Дональд Б. Рубин. “Оценка Наибольшего правдоподобия с помощью Алгоритма ECM”. Biometrika. Издание 80, № 2, 1993, стр 267–278.

[3] Дьячок, Джо и Андерс Риг Свенсен. “Алгоритмы ECM, которые Сходятся по курсу EM”. Biometrika. Издание 87, № 3, 2000, стр 651–662.

[4] Демпстер, A. P. Н. М. Лэрд и Дональд Б. Рубин. “Наибольшее правдоподобие от Неполных данных с помощью Алгоритма EM”. Журнал Королевского Статистического Общества. Серии B, Издание 39, № 1, 1977, стр 1–37.

Введен в R2006a