Многомерная линейная регрессия
возвращает оцененные коэффициенты для многомерной нормальной регрессии d -мерных характеристик в beta
= mvregress(X
,Y
)Y
на проектных матрицах в X
.
возвращает оцененные коэффициенты с помощью дополнительных опций, заданных одним или несколькими аргументами пары "имя-значение". Для примера можно задать алгоритм оценки, начальные значения оценки или максимальное количество итераций для регрессии.beta
= mvregress(X
,Y
,Name,Value
)
Подгонка многомерной регрессионной модели к панельным данным с учетом различных точек пересечения и общих склонов.
Загрузите выборочные данные.
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')
График показывает, что каждая линия регрессии имеет различные точки пересечения и уклон.
X
- Проект матрицПроектируйте матрицы для многомерной регрессии, заданные как матрица или массив ячеек матриц. 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
Y
- Переменные откликаПеременные отклика, заданные как 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'
| 'cwls'
Алгоритм оценки, заданный как разделенная разделенными запятой парами, состоящая из 'algorithm'
и одно из следующих.
'mvn' | Обычная многомерная нормальная максимальная оценка правдоподобия. |
'ecm' | Максимальная оценка правдоподобия через алгоритм ECM. |
'cwls' | Ковариационная взвешенная оценка методом наименьших квадратов. |
Алгоритм по умолчанию зависит от наличия отсутствующих данных.
Для полных данных значением по умолчанию является 'mvn'
.
Если отсутствуют какие-либо ответы (обозначенные NaN
), по умолчанию является 'ecm'
при условии, что размер выборки достаточен для оценки всех параметров. В противном случае алгоритм по умолчанию является 'cwls'
.
Примечание
Если algorithm
имеет значение 'mvn'
, затем mvregress
удаляет наблюдения с отсутствующими значениями отклика перед оценкой.
Пример: 'algorithm','ecm'
'beta0'
- Первоначальные оценки коэффициентов регрессииНачальные оценки для коэффициентов регрессии, заданные как разделенная разделенными запятой парами, состоящая из 'beta0'
и вектор с K элементами. Значение по умолчанию является вектором 0s.
The beta0
аргумент не используется, если оценка algorithm
является 'mvn'
.
'covar0'
- Начальная оценка дисперсионно-ковариационной матрицыНачальная оценка для дисперсионно-ковариационной матрицы, Sigma
, заданная как разделенная разделенными запятой парами, состоящая из 'covar0'
и симметричная, положительно определенная, d -by - d матрица. Значение по умолчанию является матрицей тождеств.
Если оценка algorithm
является 'cwls'
, затем mvregress
использует covar0
как матрица взвешивания при каждой итерации, не меняя её.
'covtype'
- Тип дисперсионно-ковариационной матрицы'full'
(по умолчанию) | 'diagonal'
Тип дисперсионно-ковариационной матрицы для оценки Y
, заданная как разделенная разделенными запятой парами, состоящая из 'covtype'
и одно из следующих.
'full' | Оцените все d (d + 1 )/2 дисперсионно-ковариационные элементы. |
'diagonal' | Оцените только d диагональные элементы дисперсионно-ковариационной матрицы. |
Пример: 'covtype','diagonal'
'maxiter'
- Максимальное количество итераций100
(по умолчанию) | положительное целое числоМаксимальное количество итераций для алгоритма оценки, заданное как разделенная разделенными запятой парами, состоящая из 'maxiter'
и положительное целое число.
Итерации продолжаются до тех пор, пока оценки не окажутся в пределах допусков сходимости tolbeta
и tolobj
, или максимальное количество итераций, заданных maxiter
достигается. Если оба tolbeta
и tolobj
равны 0, тогда mvregress
выполняет maxiter
итерации без тестов сходимости.
Пример: 'maxiter',50
'outputfcn'
- Функция для оценки каждой итерацииФункция для вычисления при каждой итерации, заданная как разделенная разделенными запятой парами, состоящая из 'outputfcn'
и указатель на функцию. Функция должна вернуть логическое true
или false
. При каждой итерации mvregress
вычисляет функцию. Если результат true
, итерации остановлены. В противном случае итерации продолжаются. Например, можно задать функцию, которая строит или отображает текущие результаты итерации и возвращается true
если вы закрываете рисунок.
Функция должна принимать три входных параметров в таком порядке:
Вектор оценок коэффициентов тока
Структура, содержащая эти три поля:
Covar | Текущее значение дисперсионно-ковариационной матрицы |
iteration | Текущее число итерации |
fval | Текущее значение целевой функции логарифмической правдоподобности |
Текст, который принимает эти три значения:
'init' | Когда функция вызывается во время инициализации |
'iter' | Когда функция вызывается после итерации |
'done' | Когда функция вызывается после завершения |
'tolbeta'
- Допуск сходимости для коэффициентов регрессииsqrt(eps)
(по умолчанию) | положительное скалярное значениеДопуск сходимости для коэффициентов регрессии, заданный как разделенная разделенными запятой парами, состоящая из 'tolbeta'
и положительная скалярная величина значение.
Давайте обозначить оценку вектора коэффициента при итерации t, и быть допуском, заданным как tolbeta
. Критерий сходимости для оценки коэффициента регрессии
где K - длина и - норма вектора
Итерации продолжаются до тех пор, пока оценки не окажутся в пределах допусков сходимости tolbeta
и tolobj
, или максимальное количество итераций, заданных maxiter
достигается. Если оба tolbeta
и tolobj
равны 0, тогда mvregress
выполняет maxiter
итерации без тестов сходимости.
Пример: 'tolbeta',1e-5
'tolobj'
- Допуск сходимости для целевой функции логарифмической правдоподобностиeps^(3/4)
(по умолчанию) | положительное скалярное значениеДопуск сходимости для целевой функции логарифмической правдоподобности, заданный как разделенная разделенными запятой парами, состоящая из 'tolobj'
и положительная скалярная величина значение.
Давайте обозначить значение целевой функции логарифмической правдоподобности в t итерации, и быть допуском, заданным как tolobj
. Критерий сходимости для целевой функции является
Итерации продолжаются до тех пор, пока оценки не окажутся в пределах допусков сходимости tolbeta
и tolobj
, или максимальное количество итераций, заданных maxiter
достигается. Если оба tolbeta
и tolobj
равны 0, тогда mvregress
выполняет maxiter
итерации без тестов сходимости.
Пример: 'tolobj',1e-5
'varformat'
- Формат для дисперсионно-ковариационной матрицы оценки параметра'beta'
(по умолчанию) | 'full'
Формат дисперсионно-ковариационной матрицы оценки параметра, CovB
, заданная как разделенная разделенными запятой парами, состоящая из 'varformat'
и одно из следующих.
'beta' | Верните дисперсионно-ковариационную матрицу только для оценок коэффициентов регрессии, beta . |
'full' | Верните дисперсионно-ковариационную матрицу для обеих оценок коэффициента регрессии, beta , и дисперсионно-ковариационную оценку матрицы, Sigma . |
Пример: 'varformat','full'
'vartype'
- Тип дисперсионно-ковариационной матрицы для оценок параметров'hessian'
(по умолчанию) | 'fisher'
Тип дисперсионно-ковариационной матрицы для оценок параметров, заданный как разделенная разделенными запятой парами, состоящая из 'vartype'
и любой из них 'hessian'
или 'fisher'
.
Если значение 'hessian'
, затем mvregress
использует матрицу Гессиана или наблюдаемую информацию для вычисления CovB
.
Если значение 'fisher'
, затем mvregress
использует матрицу Fisher полных данных или ожидаемую информацию для вычисления CovB
.
The 'hessian'
метод учитывает увеличение неопределенности из-за недостающих данных, в то время как 'fisher'
метод не делает.
Пример: 'vartype','fisher'
beta
- Предполагаемые коэффициенты регрессииПредполагаемые коэффициенты регрессии, возвращенные как вектор-столбец или матрица.
Если вы задаете 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
.
Sigma
- Предполагаемая дисперсионно-ковариационная матрицаE
- НевязкиНевязки для подобранной регрессионной модели, возвращенные как n -by - d матрица.
Если algorithm
имеет значение 'ecm'
или 'cwls'
, затем mvregress
вычисляет остаточные значения, соответствующие отсутствующим значениям в Y
как различие между условно вменяемыми значениями и подобранными значениями.
Примечание
Если algorithm
имеет значение 'mvn'
, затем mvregress
удаляет наблюдения с отсутствующими значениями отклика перед оценкой.
CovB
- Дисперсионно-ковариационная матрица оценки параметраДисперсионно-ковариационная матрица оценки параметра, возвращенная в виде квадратной матрицы.
logL
- значение целевой функции логарифмической правдоподобностиЗначение целевой функции логарифмической правдоподобности после последней итерации, возвращенное в виде скалярного значения.
Многомерная нормальная регрессия является регрессией d -мерного отклика на матрице проекта переменных-предикторов с обычно распределенными ошибками. Ошибки могут быть гетероскедастическими и коррелированными.
Модель является
где
является d -мерным вектором откликов.
- проект переменных.
является вектором или матрицей коэффициентов регрессии.
является d -мерным вектором членов ошибки с многомерным нормальным распределением
Ожидание/условная максимизация ('ecm'
) и ковариационно-взвешенные наименьшие квадраты ('cwls'
) алгоритмы оценки включают вменение отсутствующих значений отклика.
Давайте обозначают отсутствующие наблюдения. Условно вменяемые значения являются ожидаемым значением отсутствующего наблюдения, учитывая наблюдаемые данные,
Совместное распределение отсутствующих и наблюдаемых ответов является многомерным нормальным распределением,
Используя свойства многомерного нормального распределения, вмененное условное ожидание задается как
Примечание
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.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.