mvregress

Многомерная линейная регрессия

Синтаксис

beta = mvregress(X,Y)
beta = mvregress(X,Y,Name,Value)
[beta,Sigma] = mvregress(___)
[beta,Sigma,E,CovB,logL] = mvregress(___)

Описание

пример

beta = mvregress(X,Y) возвращает предполагаемые коэффициенты для многомерной нормальной регрессии d - размерные ответы в Y на матрицах проекта в X.

пример

beta = mvregress(X,Y,Name,Value) возвращает предполагаемые коэффициенты с помощью дополнительных опций, заданных одним или несколькими аргументами пары "имя-значение". Например, можно задать алгоритм оценки, значения первоначальной оценки или максимальное количество итераций для регрессии.

пример

[beta,Sigma] = mvregress(___) также возвращает предполагаемый d-by-d ковариационная матрица отклонения Y, с помощью любого из входных параметров от предыдущих синтаксисов.

пример

[beta,Sigma,E,CovB,logL] = mvregress(___) также возвращает матрицу невязок E, оцененная ковариационная матрица отклонения коэффициентов регрессии CovB и значение логарифмической целевой функции вероятности после последней итерации logL.

Примеры

свернуть все

Соответствуйте многомерной модели регрессии, чтобы снабдить данные панелями, принимая различные прерывания и общие наклоны.

Загрузите выборочные данные.

load('flu')

Массив набора данных flu содержит национальные оценки гриппа CDC, и девять, разделяет региональные оценки на основе данных о запросе Google®.

Извлеките данные о предикторе и ответ.

Y = double(flu(:,2:end-1));
[n,d] = size(Y);
x = flu.WtdILI;

Ответы в Y являются девятью региональными оценками гриппа. Наблюдения существуют в течение каждой недели за однолетний период, таким образом, = 52. Размерность ответов соответствует областям, таким образом, = 9. Предикторы в x являются еженедельными национальными оценками гриппа.

Отобразите на графике данные о гриппе, сгруппированные областью.

figure;
regions = flu.Properties.VarNames(2:end-1);
plot(x,Y,'x')
legend(regions,'Location','NorthWest')

Соответствуйте многомерной модели регрессии

где и, с параллельной корреляцией между областями

Существуют = 10 коэффициентов регрессии, чтобы оценить: девять условий прерывания и общий наклон. Входной параметр X должен быть - массив ячеек элемента матриц проекта.

X = cell(n,1);
for i = 1:n
	X{i} = [eye(d) repmat(x(i),d,1)];
end
[beta,Sigma] = mvregress(X,Y);

beta содержит оценки - размерный вектор коэффициентов

Sigma содержит оценки ковариационной матрицы отклонения для параллельных корреляций между областями.

Постройте подходящую модель регрессии.

B = [beta(1:d)';repmat(beta(end),1,d)];
xx = linspace(.5,3.5)';
fits = [ones(size(xx)),xx]*B;

figure;
h = plot(x,Y,'x',xx,fits,'-');
for i = 1:d
	set(h(d+i),'color',get(h(i),'color'));
end
legend(regions,'Location','NorthWest');

График показывает, что каждая линия регрессии имеет различное прерывание, но тот же наклон. После визуального осмотра некоторые линии регрессии, кажется, соответствуют данным лучше, чем другие.

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

Загрузите выборочные данные.

load('flu');

Массив набора данных flu содержит национальные оценки гриппа CDC, и девять, разделяет региональные оценки на основе запросов Google®.

Извлеките данные о предикторе и ответ.

Y = double(flu(:,2:end-1));
[n,d] = size(Y);
x = flu.WtdILI;

Ответы в Y являются девятью региональными оценками гриппа. Наблюдения существуют в течение каждой недели за однолетний период, таким образом, = 52. Размерность ответов соответствует областям, таким образом, = 9. Предикторы в x являются еженедельными национальными оценками гриппа.

Соответствуйте многомерной модели регрессии

где и, с параллельной корреляцией между областями

Существуют = 18 коэффициентов регрессии, чтобы оценить: девять условий прерывания и девять наклонных условий. X - массив ячеек элемента матриц проекта.

X = cell(n,1);
for i = 1:n
    X{i} = [eye(d) x(i)*eye(d)];
end
[beta,Sigma] = mvregress(X,Y,'algorithm','cwls');

beta содержит оценки - размерный вектор коэффициентов

Постройте подходящую модель регрессии.

B = [beta(1:d)';beta(d+1:end)'];
xx = linspace(.5,3.5)';
fits = [ones(size(xx)),xx]*B;

figure;
h = plot(x,Y,'x',xx,fits,'-');
for i = 1:d
	set(h(d+i),'color',get(h(i),'color'));
end

regions = flu.Properties.VarNames(2:end-1);
legend(regions,'Location','NorthWest');

График показывает, что каждая линия регрессии имеет различное прерывание и наклон.

Соответствуйте многомерной модели регрессии использование одной матрицы проекта для всех размерностей ответа.

Загрузите выборочные данные.

load('flu');

Массив набора данных flu содержит национальные оценки гриппа CDC, и девять, разделяет региональные оценки на основе запросов Google®.

Извлеките данные о предикторе и ответ.

Y = double(flu(:,2:end-1));
[n,d] = size(Y);
x = flu.WtdILI;

Ответы в Y являются девятью региональными оценками гриппа. Наблюдения существуют в течение каждой недели за однолетний период, таким образом, = 52. Размерность ответов соответствует областям, таким образом, = 9. Предикторы в x являются еженедельными национальными оценками гриппа.

Создайте матрицу проекта X. Добавьте столбец из единиц, чтобы включать постоянный термин в регрессии.

X = [ones(size(x)),x];

Соответствуйте многомерной модели регрессии

где и, с параллельной корреляцией между областями

Существует 18 коэффициентов регрессии, чтобы оценить: девять условий прерывания и девять наклонных условий.

[beta,Sigma,E,CovB,logL] = mvregress(X,Y);

beta содержит оценки матрицы коэффициентов. Sigma содержит оценки ковариационной матрицы отклонения для параллельных корреляций между областями. E является матрицей невязок. CovB является предполагаемой ковариационной матрицей отклонения коэффициентов регрессии. logL является значением логарифмической целевой функции вероятности после последней итерации.

Постройте подходящую модель регрессии.

B = beta;
xx = linspace(.5,3.5)';
fits = [ones(size(xx)),xx]*B;

figure;
h = plot(x,Y,'x', xx,fits,'-');
for i = 1:d
    set(h(d+i),'color',get(h(i),'color'));
end

regions = flu.Properties.VarNames(2:end-1);
legend(regions,'Location','NorthWest');

График показывает, что каждая линия регрессии имеет различное прерывание и наклон.

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

свернуть все

Разработайте матрицы для многомерной регрессии, заданной как матричный или массив ячеек матриц. n является количеством наблюдений в данных, K является количеством коэффициентов регрессии, чтобы оценить, p является количеством переменных прогноза, и d является количеством размерностей в матрице переменной отклика Y.

  • Если d = 1, то задайте X как один n-by-K матрица проекта.

  • Если d> 1 и все размерности d имеет ту же матрицу проекта, то можно задать X как один n-by-p матрица проекта (не в массиве ячеек).

  • Если d> 1 и все наблюдения n имеет ту же матрицу проекта, то можно задать X как массив ячеек, содержащий один d-by-K матрица проекта.

  • Если d> 1 и все наблюдения n не имеет той же матрицы проекта, то задайте X как массив ячеек длины n, содержащий d-by-K матрицы проекта.

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

mvregress обрабатывает значения NaN в X как отсутствующие значения и игнорирует строки в X с отсутствующими значениями.

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

Переменные отклика, заданные как n-by-d матрица. n является количеством наблюдений в данных, и d является количеством размерностей в ответе. Когда d = 1, mvregress обрабатывает значения в Y как n независимые значения ответа.

mvregress обрабатывает значения NaN в Y как отсутствующие значения и обрабатывает их согласно алгоритму оценки, заданному с помощью аргумента пары "имя-значение" algorithm.

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'algorithm','cwls','covar0',C задает оценку метода взвешенных наименьших квадратов ковариации с помощью ковариационной матрицы C.

Алгоритм оценки, заданный как пара, разделенная запятой, состоящая из 'algorithm' и одно из следующих.

'mvn'Обычная многомерная нормальная оценка наибольшего правдоподобия.
'ecm'Оценка наибольшего правдоподобия с помощью алгоритма ECM.
'cwls'Оценка метода взвешенных наименьших квадратов ковариации.

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

  • Для полных данных значением по умолчанию является 'mvn'.

  • Если существуют какие-либо недостающие ответы (обозначенный NaN), значением по умолчанию является 'ecm', если объем выборки достаточен, чтобы оценить все параметры. В противном случае алгоритмом по умолчанию является 'cwls'.

Примечание

Если algorithm имеет значение 'mvn', то mvregress удаляет наблюдения с недостающими значениями ответа перед оценкой.

Пример: 'algorithm','ecm'

Первоначальные оценки для коэффициентов регрессии, заданных как пара, разделенная запятой, состоящая из 'beta0' и вектора с элементами K. Значение по умолчанию является вектором 0s.

Аргумент beta0 не используется, если оценкой algorithm является 'mvn'.

Первоначальная оценка для ковариационной матрицы отклонения, Sigma, заданного как пара, разделенная запятой, состоящая из 'covar0' и симметричного, определенного положительного, d-by-d матрица. Значение по умолчанию является единичной матрицей.

Если оценка, algorithm является 'cwls', то mvregress использует covar0 в качестве матрицы взвешивания в каждой итерации, не изменяя его.

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

'full'Оцените весь d (d + 1)/2 элементы ковариации отклонения.
'diagonal'Оцените только элементы диагонали d ковариационной матрицы отклонения.

Пример: 'covtype','diagonal'

Максимальное количество итераций для алгоритма оценки, заданного как пара, разделенная запятой, состоящая из 'maxiter' и положительного целого числа.

Итерации продолжаются, пока оценками не является в допусках сходимости tolbeta и tolobj, или максимальное количество итераций, заданных maxiter, достигнуто. Если и tolbeta и tolobj 0, то mvregress выполняет итерации maxiter без тестов сходимости.

Пример: 'maxiter',50

Функция, чтобы оценить в каждой итерации, заданной как пара, разделенная запятой, состоящая из 'outputfcn' и указателя на функцию. Функция должна возвратить логический true или false. В каждой итерации mvregress выполняет функцию. Если результатом является true, остановка итераций. В противном случае итерации продолжаются. Например, вы могли задать функцию, которая строит или отображает текущие результаты итерации и возвращает true, если вы закрываете фигуру.

Функция должна принять три входных параметра в этом порядке:

  • Вектор текущих содействующих оценок

  • Структура, содержащая эти три поля:

    CovarТекущее значение ковариационной матрицы отклонения
    iterationТекущий номер итерации
    fvalТекущее значение loglikelihood целевой функции

  • Текст, который принимает эти три значения:

    'init'Когда функция вызвана во время инициализации
    'iter'Когда функция вызвана после итерации
    'done'Когда функция вызвана после завершения

Допуск сходимости для коэффициентов регрессии, заданных как пара, разделенная запятой, состоящая из 'tolbeta' и значения положительной скалярной величины.

Пусть bt обозначьте оценку вектора коэффициентов в итерации t, и τβ будьте допуском, заданным tolbeta. Критерий сходимости для оценки коэффициента регрессии

btbt1<τβK(1+bt),

где K является длиной bt и v норма вектора v.

Итерации продолжаются, пока оценками не является в допусках сходимости tolbeta и tolobj, или максимальное количество итераций, заданных maxiter, достигнуто. Если и tolbeta и tolobj 0, то mvregress выполняет итерации maxiter без тестов сходимости.

Пример: 'tolbeta',1e-5

Допуск сходимости для loglikelihood целевой функции, заданной как пара, разделенная запятой, состоящая из 'tolobj' и значения положительной скалярной величины.

Пусть Lt обозначьте значение loglikelihood целевой функции при итерации t, и τ будьте допуском, заданным tolobj. Критерий сходимости для целевой функции

|LtLt1|<τ(1+|Lt|).

Итерации продолжаются, пока оценками не является в допусках сходимости tolbeta и tolobj, или максимальное количество итераций, заданных maxiter, достигнуто. Если и tolbeta и tolobj 0, то mvregress выполняет итерации maxiter без тестов сходимости.

Пример: 'tolobj',1e-5

Формат для параметра оценивает ковариационную матрицу отклонения, CovB, заданный как пара, разделенная запятой, состоящая из 'varformat' и одно из следующих.

'beta'Возвратите ковариационную матрицу отклонения только для оценок коэффициента регрессии, beta.
'full'Возвратите ковариационную матрицу отклонения и для оценок коэффициента регрессии, beta, и для оценки ковариационной матрицы отклонения, Sigma.

Пример: 'varformat','full'

Тип ковариационной матрицы отклонения для оценок параметра, заданных как пара, разделенная запятой, состоящая из 'vartype' и или 'hessian' или 'fisher'.

  • Если значением является 'hessian', то mvregress использует Гессиан или наблюдаемую информацию, матрица, чтобы вычислить CovB.

  • Если значением является 'fisher', то mvregress использует полные данные Фишер или ожидаемая информация, матрица, чтобы вычислить CovB.

Метод 'hessian' учитывает неуверенность увеличения из-за недостающих данных, в то время как метод 'fisher' не делает.

Пример: 'vartype','fisher'

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

свернуть все

Предполагаемые коэффициенты регрессии, возвращенные как вектор-столбец или матрица.

  • Если вы задаете X как один n-by-K матрица проекта, то mvregress возвращает beta как вектор-столбец длины K. Например, если X 20 5 матрица проекта, то beta является вектор-столбцом 5 на 1.

  • Если вы задаете X как массив ячеек, содержащий один или несколько d-by-K матрицы проекта, то mvregress возвращает beta как вектор-столбец длины K. Например, если X является массивом ячеек, содержащим, 2 10 разрабатывают матрицы, то beta является вектор-столбцом 10 на 1.

  • Если вы задаете X как один n-by-p матрица проекта (не в массиве ячеек), и Y имеет размерность d> 1, то mvregress возвращает beta как p-by-d матрица. Например, если X 20 5 матрица проекта, и Y имеет две размерности, таким образом, что d = 2, затем beta 5 2 матрица, и подходящими значениями Y является X × beta.

Предполагаемая ковариационная матрица отклонения для ответов в Y, возвращенном как d-by-d квадратная матрица.

Примечание

Предполагаемая ковариационная матрица отклонения, Sigma, не является матрицей выборочной ковариации остаточной матрицы, E.

Невязки для подходящей модели регрессии, возвращенной как n-by-d матрица.

Если algorithm имеет значение 'ecm' или 'cwls', то mvregress вычисляет остаточные значения, соответствующие отсутствующим значениям в Y как различие между условно оценочными значениями и подходящими значениями.

Примечание

Если algorithm имеет значение 'mvn', то mvregress удаляет наблюдения с недостающими значениями ответа перед оценкой.

Оценочная ковариационная матрица отклонения параметра, возвращенная как квадратная матрица.

  • Если varformat имеет значение 'beta' (значение по умолчанию), то CovB является предполагаемой ковариационной матрицей отклонения содействующих оценок в beta.

  • Если varformat имеет значение 'full', то CovB является предполагаемой ковариационной матрицей отклонения объединенных оценок в beta и Sigma.

Значение целевой функции Loglikelihood после последней итерации, возвращенной как скалярное значение.

Больше о

свернуть все

Многомерная нормальная регрессия

Многомерная нормальная регрессия является регрессией d - размерный ответ на матрице проекта переменных прогноза с нормально распределенными ошибками. Ошибки могут быть heteroscedastic и коррелируемый.

Модель

yi=Xiβ+ei,i=1,,n,

где

  • yi d - размерный вектор ответов.

  • Xi матрица проекта переменных прогноза.

  • β вектор или матрица коэффициентов регрессии.

  • ei d - размерный вектор остаточных членов, с многомерным нормальным распределением

    ei~MVNd(0,Σ).

Условно оценочные значения

Максимизация ожидания/условного выражения ('ecm') и метод взвешенных наименьших квадратов ковариации ('cwls') алгоритмы оценки включает обвинение недостающих значений ответа.

Пусть y˜ обозначьте недостающие наблюдения. Условно оценочные значения являются ожидаемым значением недостающего наблюдения, учитывая наблюдаемые данные, Ε(y˜|y).

Совместное распределение пропавших без вести и наблюдаемые ответы являются многомерным нормальным распределением,

(y˜y)~MVN{(X˜βXβ),(Σy˜Σy˜yΣyy˜Σy)}.

Используя свойства многомерного нормального распределения, оценочным условным ожиданием дают

Ε(y˜|y)=X˜β+Σy˜yΣy1(yXβ).

Примечание

mvregress только приписывает недостающие значения ответа. Наблюдения с отсутствующими значениями в матрице проекта удалены.

Ссылки

[1] Мало, Родерик Дж. А. и Дональд Б. Рубин. Статистический анализ с Недостающими Данными. 2-й редактор, Хобокен, NJ: 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.

Представленный в R2006b

Для просмотра документации необходимо авторизоваться на сайте