регресс

Несколько линейная регрессия

Синтаксис

b = regress(y,X)
[b,bint] = regress(y,X)
[b,bint,r] = regress(y,X)
[b,bint,r,rint] = regress(y,X)
[b,bint,r,rint,stats] = regress(y,X)
[___] = regress(y,X,alpha)

Описание

пример

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 - значение и оценка ошибочного отклонения.

пример

[___] = 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

Загрузите набор данных 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

Загрузите набор данных 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 является p-by-1 вектор, где p является количеством предикторов в X.

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

Интервалы, чтобы диагностировать выбросы, возвращенные как числовая матрица. rint является p-by-2 матрица, где p является количеством предикторов в 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