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 девять региональных оценок гриппа. Наблюдения существуют в течение каждой недели за однолетний период, таким образом, n = 52. Размерность ответов соответствует областям, таким образом, d = 9. Предикторы в x еженедельные национальные оценки гриппа.

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

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

Подбирайте многомерную модель регрессии yij=αj+βxij+ϵij, где i=1,,n и j=1,,d, с параллельной корреляцией между областями COV(ϵij,ϵij)=σjj.

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

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

beta содержит оценки K- размерный вектор коэффициентов (α1,α2,,α9,β).

Sigma содержит оценки d - d ковариационная матрица отклонения (σij)d×d, i,j=1,,d для параллельных корреляций между областями.

Постройте подбиравшую модель регрессии.

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 девять региональных оценок гриппа. Наблюдения существуют в течение каждой недели за однолетний период, таким образом, n = 52. Размерность ответов соответствует областям, таким образом, d = 9. Предикторы в x еженедельные национальные оценки гриппа.

Подбирайте многомерную модель регрессии yij=αj+βjxij+ϵij, где i=1,,n и j=1,,d, с параллельной корреляцией между областями COV(ϵij,ϵij)=σjj.

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

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 содержит оценки K- размерный вектор коэффициентов (α1,α2,,α9,β1,β2,,β9).

Постройте подбиравшую модель регрессии.

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');

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

Подбирайте многомерную модель регрессии использование сингла n-P спроектируйте матрицу для всех размерностей ответа.

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

load('flu')

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

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

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

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

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

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

Подбирайте многомерную модель регрессии

yij=αj+βjxij+ϵij,

где i=1,,n и j=1,,d, с параллельной корреляцией между областями

COV(ϵij,ϵij)=σjj.

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

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

beta содержит оценки P-d матрица коэффициентов. Sigma содержит оценки d-d ковариационная матрица отклонения для параллельных корреляций между областями. 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 имя аргумента и 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Текущее значение целевой функции логарифмической правдоподобности

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

    '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

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

Пусть Lt обозначьте значение целевой функции логарифмической правдоподобности при итерации 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.

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

Больше о

свернуть все

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

Многомерная нормальная регрессия является регрессией 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

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