exponenta event banner

регресс

Множественная линейная регрессия

Описание

пример

b = regress(y,X) возвращает вектор b оценок коэффициентов для множественной линейной регрессии откликов в векторе y на предикторах в матрице X. Для вычисления оценок коэффициентов для модели с постоянным членом (пересечением) включить в матрицу столбец из единиц X.

[b,bint] = regress(y,X) также возвращает матрицу bint 95% доверительных интервалов для оценок коэффициента.

[b,bint,r] = regress(y,X) также возвращает дополнительный вектор r остатков.

пример

[b,bint,r,rint] = regress(y,X) также возвращает матрицу rint интервалов, которые могут использоваться для диагностики отклонений.

пример

[b,bint,r,rint,stats] = regress(y,X) также возвращает вектор stats который содержит статистику R2, F-статистику и ее p-значение и оценку дисперсии ошибок. Матрица X для правильного вычисления статистики модели необходимо включить столбец из них.

пример

[___] = regress(y,X,alpha) использует 100*(1-alpha)% доверительный уровень для вычисления bint и rint. Укажите любую из комбинаций выходных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Загрузить carsmall набор данных. Определите вес и лошадиную силу как предикторы и пробег как ответ.

load carsmall
x1 = Weight;
x2 = Horsepower;    % Contains NaN data
y = MPG;

Вычислите коэффициенты регрессии для линейной модели с помощью члена взаимодействия.

X = [ones(size(x1)) x1 x2 x1.*x2];
b = regress(y,X)    % Removes NaN data
b = 4×1

   60.7104
   -0.0102
   -0.1882
    0.0000

Постройте график данных и модели.

scatter3(x1,x2,y,'filled')
hold on
x1fit = min(x1):100:max(x1);
x2fit = min(x2):10:max(x2);
[X1FIT,X2FIT] = meshgrid(x1fit,x2fit);
YFIT = b(1) + b(2)*X1FIT + b(3)*X2FIT + b(4)*X1FIT.*X2FIT;
mesh(X1FIT,X2FIT,YFIT)
xlabel('Weight')
ylabel('Horsepower')
zlabel('MPG')
view(50,10)
hold off

Figure contains an axes. The axes contains 2 objects of type scatter, surface.

Загрузить examgrades набор данных.

load examgrades

Используйте последние оценки экзамена в качестве данных ответа, а первые две оценки экзамена в качестве данных предиктора.

y = grades(:,5);
X = [ones(size(grades(:,1))) grades(:,1:2)];

Выполните множественную линейную регрессию с альфа = 0,01.

[~,~,r,rint] = regress(y,X,0.01);

Диагностика отклонений путем нахождения остаточных интервалов rint которые не содержат 0.

contain0 = (rint(:,1)<0 & rint(:,2)>0);
idx = find(contain0==false)
idx = 2×1

    53
    54

Наблюдения 53 и 54 являются возможными отклонениями.

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

hold on
scatter(y,r)
scatter(y(idx),r(idx),'b','filled')
xlabel("Last Exam Grades")
ylabel("Residuals")
hold off

Figure contains an axes. The axes contains 2 objects of type scatter.

Загрузить hald набор данных. Использовать heat в качестве переменной ответа и ingredients в качестве данных предиктора.

load hald
y = heat;
X1 = ingredients;
x1 = ones(size(X1,1),1);
X = [x1 X1];    % Includes column of ones

Выполните множественную линейную регрессию и создайте статистику модели.

[~,~,~,~,stats] = regress(y,X)
stats = 1×4

    0.9824  111.4792    0.0000    5.9830

Потому что R2 значение 0.9824 близок к 1, и значение p 0.0000 меньше уровня значимости по умолчанию 0,05, существует значительная зависимость линейной регрессии между ответом y и переменные предиктора в X.

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

свернуть все

Данные ответа, указанные как n-by-1 числовой вектор. Ряды y соответствуют разным наблюдениям. y должно иметь то же количество строк, что и X.

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

Данные предиктора, заданные как n-за-p-числовая матрица. Ряды X соответствуют наблюдениям, а столбцы - переменным предиктора. X должно иметь то же количество строк, что и y.

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

Уровень значимости, заданный как положительный скаляр. alpha должно быть в диапазоне от 0 до 1.

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

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

свернуть все

Оценки коэффициентов для множественной линейной регрессии, возвращаемые в виде числового вектора. b является вектором p-by-1, где p - число предикторов в X. Если столбцы X линейно зависимы, regress устанавливает максимальное количество элементов b до нуля.

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

Нижняя и верхняя доверительные границы для оценок коэффициентов, возвращаемых в виде числовой матрицы. bint является матрицей p-by-2, где p - число предикторов в X. Первый столбец bint содержит более низкие доверительные границы для каждой из оценок коэффициентов; второй столбец содержит верхние доверительные границы. Если столбцы X линейно зависимы, regress возвращает нули в элементах bint соответствующие нулевым элементам b.

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

Остатки, возвращаемые в виде числового вектора. r - вектор n-by-1, где n - число наблюдений, или строк, в X.

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

Интервалы для диагностики отклонений, возвращаемые в виде числовой матрицы. rint является матрицей n-by-2, где n - количество наблюдений, или строк, в X. Если интервал rint(i,:) для наблюдения i не содержит нуля, соответствующий остаток больше, чем ожидалось в 100*(1-alpha)% новых наблюдений, предполагающих отклонение. Дополнительные сведения см. в разделе Алгоритмы.

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

Статистика модели, возвращенная в виде числового вектора, включающего R2 статистику, F-статистику и ее p-значение, и оценку дисперсии ошибок.

  • X должен содержать столбец единиц, чтобы модель содержала постоянный член. F-статистика и ее p-значение вычисляются в соответствии с этим предположением и не верны для моделей без константы.

  • F-статистика является тестовой статистикой F-теста на регрессионной модели. F-тест ищет значительную линейную регрессионную зависимость между переменной ответа и переменными предиктора.

  • Статистика R2 может быть отрицательной для моделей без константы, указывая, что модель не подходит для данных.

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

Совет

  • regress удовольствия NaN значения в X или y как отсутствующие значения. regress пропускает наблюдения с отсутствующими значениями из аппроксимации регрессии.

Алгоритмы

свернуть все

Остаточные интервалы

В линейной модели наблюдаемые значения y и их остатки являются случайными переменными. Остатки имеют нормальные распределения с нулевым средним, но с различными дисперсиями при различных значениях предикторов. Чтобы поставить остатки в сопоставимый масштаб, regress «Studentises» остатки. То есть regress делит остатки на оценку их стандартного отклонения, которая не зависит от их значения. Изученные остатки имеют t-распределения с известными степенями свободы. Интервалы, возвращенные в rint являются сдвигами 100*(1-alpha)% доверительных интервалов этих t-распределений, центрированных по остаткам.

Альтернативная функциональность

regress полезно, когда просто нужны выходные аргументы функции и когда нужно повторить подгонку модели несколько раз в цикле. Если необходимо дополнительно исследовать подогнанную регрессионную модель, создайте объект модели линейной регрессии. LinearModel с помощью fitlm или stepwiselm. A LinearModel объект предоставляет больше возможностей, чем regress.

  • Использовать свойства LinearModel для исследования подогнанной модели линейной регрессии. Свойства объекта включают в себя информацию об оценках коэффициентов, сводную статистику, метод подгонки и входные данные.

  • Использовать объектные функции LinearModel прогнозировать отклики и изменять, оценивать и визуализировать модель линейной регрессии.

  • В отличие от этого, regress, fitlm функция не требует столбца единиц во входных данных. Модель, созданная fitlm всегда включает термин перехвата, если вы не указываете не включать его с помощью 'Intercept' аргумент пары имя-значение.

  • Информацию можно найти в выходных данных regress с использованием свойств и функций объекта LinearModel.

    Вывод regressЭквивалентные значения в LinearModel
    bСм. раздел Estimate в столбце Coefficients собственность.
    bintИспользуйте coefCI функция.
    rСм. раздел Raw в столбце Residuals собственность.
    rintНе поддерживается. Вместо этого используйте изученные остатки (Residuals свойства) и диагностику наблюдений (Diagnostics свойство) для поиска отклонений.
    statsСм. отображение модели в окне команд. Статистику можно найти в свойствах модели (MSE и Rsquared) и с помощью anova функция.

Ссылки

[1] Чаттерджи, С. и А. С. Хади. «Влиятельные наблюдения, высокоэффективные точки и отклонения в линейной регрессии». Статистическая наука. Том 1, 1986, стр. 379-416.

Представлен до R2006a