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

Figure contains an axes. The axes contains 9 objects of type line. These objects represent NE, MidAtl, ENCentral, WNCentral, SAtl, ESCentral, WSCentral, Mtn, Pac.

Подгонка многомерной регрессионой модели 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');

Figure contains an axes. The axes contains 18 objects of type line. These objects represent NE, MidAtl, ENCentral, WNCentral, SAtl, ESCentral, WSCentral, Mtn, Pac.

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

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

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

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

Figure contains an axes. The axes contains 18 objects of type line. These objects represent NE, MidAtl, ENCentral, WNCentral, SAtl, ESCentral, WSCentral, Mtn, Pac.

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

Подбор многомерной регрессионной модели с помощью одной 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')

Figure contains an axes. The axes contains 18 objects of type line. These objects represent NE, MidAtl, ENCentral, WNCentral, SAtl, ESCentral, WSCentral, Mtn, Pac.

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

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

свернуть все

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

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

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

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

  • Если 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.

The 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 использует матрицу Fisher полных данных или ожидаемую информацию для вычисления CovB.

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

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

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

свернуть все

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

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

  • Если вы задаете X как массив ячеек, содержащий одну или несколько матриц d -by K design, 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 -мерного отклика на матрице проекта переменных-предикторов с обычно распределенными ошибками. Ошибки могут быть гетероскедастическими и коррелированными.

Модель является

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-е изд., Хобокен, Нью-Джерси: 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.

Введенный в R2006b