regress

Многофакторная линейная регрессия

Описание

пример

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 object. The axes object 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 object. The axes object 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-by-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 “Studentizes” остаточные значения. Таким образом, regress делит остаточные значения на оценку их стандартного отклонения, которое независимо от их значения. Остаточные значения Studentized имеют t - распределения с известными степенями свободы. Интервалы возвращены в rint сдвиги 100*(1-alpha)% доверительные интервалы их t - распределения, сосредоточенные в остаточных значениях.

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

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

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

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

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

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

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

Ссылки

[1] Chatterjee, S. и А. С. Хади. “Влиятельные Наблюдения, Высокие Точки Рычагов и Выбросы в Линейной регрессии”. Статистическая Наука. Издание 1, 1986, стр 379–416.

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