LinearModel

Модель линейной регрессии

Описание

LinearModel подходящий объект модели линейной регрессии. Модель регрессии описывает отношение между ответом и предикторами. Линейность в модели линейной регрессии относится к линейности коэффициентов предиктора.

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

Создание

Создайте LinearModel объект при помощи fitlm или stepwiselm.

fitlm подбирает модель линейной регрессии к данным с помощью фиксированной спецификации модели. Использование addTerms, removeTerms, или step добавить или удалить термины из модели. В качестве альтернативы используйте stepwiselm подбирать модель с помощью пошаговой линейной регрессии.

Свойства

развернуть все

Содействующие оценки

Это свойство доступно только для чтения.

Ковариационная матрица коэффициента оценивает в виде p-by-p матрицу числовых значений. p является количеством коэффициентов в подобранной модели.

Для получения дополнительной информации смотрите Содействующие Стандартные погрешности и Доверительные интервалы.

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

Это свойство доступно только для чтения.

Коэффициент называет в виде массива ячеек из символьных векторов, каждый содержащий имя соответствующего термина.

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

Это свойство доступно только для чтения.

Содействующие значения в виде таблицы. Coefficients содержит одну строку для каждого коэффициента и этих столбцов:

  • Estimate — Предполагаемое содействующее значение

  • SE — Стандартная погрешность оценки

  • tStatt - статистическая величина для теста, что коэффициент является нулем

  • pValuep - значение для t - статистическая величина

Использование anova (только для модели линейной регрессии) или coefTest выполнять другие тесты на коэффициентах. Использование coefCI найти доверительные интервалы содействующих оценок.

Чтобы получить любой из этих столбцов как вектор, индексируйте в свойство с помощью записи через точку. Например, получите предполагаемый вектор коэффициентов в модели mdl:

beta = mdl.Coefficients.Estimate

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

Это свойство доступно только для чтения.

Количество коэффициентов модели в виде положительного целого числа. NumCoefficients включает коэффициенты, которые обнуляются, когда термины модели имеют неполный ранг.

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

Это свойство доступно только для чтения.

Количество предполагаемых коэффициентов в модели в виде положительного целого числа. NumEstimatedCoefficients не включает коэффициенты, которые обнуляются, когда термины модели имеют неполный ранг. NumEstimatedCoefficients степени свободы для регрессии.

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

Итоговая статистика

Это свойство доступно только для чтения.

Степени свободы для ошибки (остаточные значения), равняйтесь количеству наблюдений минус количество предполагаемых коэффициентов в виде положительного целого числа.

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

Это свойство доступно только для чтения.

Диагностика наблюдения в виде таблицы, которая содержит одну строку для каждого наблюдения и столбцов, описанных в этой таблице.

СтолбецЗначениеОписание
LeverageДиагональные элементы HatMatrixLeverage поскольку каждое наблюдение указывает, до какой степени подгонка определяется наблюдаемыми значениями предиктора. Значение близко к 1 указывает, что подгонка в основном определяется тем наблюдением с небольшим вкладом от других наблюдений. Значение близко к 0 указывает, что подгонка в основном определяется другими наблюдениями. Для модели с P коэффициенты и N наблюдения, среднее значение Leverage P/N. Leverage значение, больше, чем 2*P/N указывает на высокие рычаги.
CooksDistanceРасстояние повараCooksDistance мера масштабированного изменения в подходящих значениях. Наблюдение с CooksDistance больше, чем три раза расстояние среднего Кука может быть выброс.
DffitsУдалите 1 масштабируемое различие в подходящих значенияхDffits масштабированное изменение в подходящих значениях для каждого наблюдения, которое следует, исключая то наблюдение от подгонки. Значения, больше, чем 2*sqrt(P/N) в абсолютном значении может быть рассмотрен влиятельным.
S2_iУдалите 1 отклонениеS2_i набор остаточных оценок отклонения, полученных путем удаления каждого наблюдения в свою очередь. Эти оценки могут быть по сравнению со значением среднеквадратической ошибки (MSE), сохраненным в MSE свойство.
CovRatioУдалите 1 отношение определителя ковариацииCovRatio отношение определителя содействующей ковариационной матрицы, с каждым наблюдением, удаленным в свою очередь, к определителю ковариационной матрицы для полной модели. Значения, больше, чем   1 + 3*P/N или меньше, чем   1 – 3*P/N укажите на влиятельные точки.
DfbetasУдалите 1 масштабируемое различие в содействующих оценкахDfbetas N- P матрица масштабированного изменения в коэффициенте оценивает, что следует, исключая каждое наблюдение в свою очередь. Значения, больше, чем 3/sqrt(N) в абсолютном значении указывают, что наблюдение имеет значительное влияние на соответствующий коэффициент.
HatMatrixМатрица проекции, чтобы вычислить fitted от наблюдаемых ответовHatMatrix N- N матрицируйте таким образом что   Fitted = HatMatrix*Y, где Y вектор отклика и Fitted вектор из подходящих значений отклика.

Diagnostics содержит информацию, которая полезна в нахождении выбросов и влиятельных наблюдений. Удалите 1 получение диагностики изменения, которые следуют, исключая каждое наблюдение в свою очередь от подгонки. Для получения дополнительной информации смотрите Матрицу Шляпы и Рычаги, Расстояние Повара, и Удалите 1 Статистику.

Использование plotDiagnostics построить диагностику наблюдения.

Строки, не используемые в подгонке из-за отсутствующих значений (в ObservationInfo.Missing) или исключенные значения (в ObservationInfo.Excluded) содержите NaN значения в CooksDistance, Dffits, S2_i, и CovRatio столбцы и нули в Leverage, Dfbetas, и HatMatrix столбцы.

Чтобы получить любой из этих столбцов как массив, индексируйте в свойство с помощью записи через точку. Например, получите удаление 1 вектора отклонения в модели mdl:

S2i = mdl.Diagnostics.S2_i;

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

Это свойство доступно только для чтения.

Адаптированные (предсказанные) значения отклика на основе входных данных в виде n-by-1 числовой вектор. n является количеством наблюдений во входных данных. Используйте predict вычислить предсказания для других значений предиктора или вычислить доверительные границы на Fitted.

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

Это свойство доступно только для чтения.

Логарифмическая правдоподобность значений отклика в виде числового значения, основанного на предположении, что каждое значение отклика следует за нормальным распределением. Среднее значение нормального распределения является подходящим (предсказанным) значением отклика, и отклонением является MSE.

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

Это свойство доступно только для чтения.

Критерий сравнения модели в виде структуры с этими полями:

  • AIC — Критерий информации о Akaike.     AIC = –2*logL + 2*m, где logL логарифмическая правдоподобность и m количество предполагаемых параметров.

  • AICc — Критерий информации о Akaike откорректирован для объема выборки.     AICc = AIC + (2*m*(m + 1))/(n – m – 1), где n количество наблюдений.

  • BIC — Байесов информационный критерий.     BIC = –2*logL + m*log(n).

  • CAIC — Сопоставимый информационный критерий Akaike.     CAIC = –2*logL + m*(log(n) + 1).

Информационные критерии являются инструментами выбора модели, которые можно использовать, чтобы сравнить подгонку многоуровневых моделей к тем же данным. Эти критерии являются основанными на вероятности мерами подгонки модели, которые включают штраф за сложность (а именно, количество параметров). Различные информационные критерии отличает форма штрафа.

Когда вы сравниваете многоуровневые модели, модель с самым низким информационным значением критерия является моделью оптимальной подгонки. Модель оптимальной подгонки может варьироваться в зависимости от критерия, используемого для сравнения модели.

Чтобы получить любое из значений критерия как скаляр, индексируйте в свойство с помощью записи через точку. Например, получите значение AIC aic в модели mdl:

aic = mdl.ModelCriterion.AIC

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

Это свойство доступно только для чтения.

Среднеквадратическая ошибка (остаточные значения) в виде числового значения.

MSE = SSE / DFE,

где MSE является среднеквадратической ошибкой, SSE является суммой квадратичных невязок, и DFE является степенями свободы.

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

Это свойство доступно только для чтения.

Остаточные значения для подобранной модели в виде таблицы, которая содержит одну строку для каждого наблюдения и столбцов, описанных в этой таблице.

СтолбецОписание
RawНаблюдаемый минус подходящие значения
PearsonНеобработанные остаточные значения, разделенные полностью среднеквадратическая ошибка (RMSE)
StandardizedНеобработанные остаточные значения разделены на их предполагаемое стандартное отклонение
StudentizedНеобработанная невязка, разделенная на независимую оценку остаточного стандартного отклонения. Невязка для наблюдения i разделена на оценку ошибочного стандартного отклонения на основе всех наблюдений кроме наблюдения i.

Использование plotResiduals создать график остаточных значений. Для получения дополнительной информации смотрите Остаточные значения.

Строки, не используемые в подгонке из-за отсутствующих значений (в ObservationInfo.Missing) или исключенные значения (в ObservationInfo.Excluded) содержите NaN значения.

Чтобы получить любой из этих столбцов как вектор, индексируйте в свойство с помощью записи через точку. Например, получите необработанный вектор невязок r в модели mdl:

r = mdl.Residuals.Raw

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

Это свойство доступно только для чтения.

Среднеквадратическая ошибка (остаточные значения) в виде числового значения.

RMSE = sqrt (MSE),

где RMSE является среднеквадратической ошибкой, и MSE является среднеквадратической ошибкой.

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

Это свойство доступно только для чтения.

Значение R-squared для модели в виде структуры с двумя полями:

  • Ordinary — Обычный (неприспособленный) R-squared

  • Adjusted — R-squared, настроенный для количества коэффициентов

Значение R-squared является пропорцией полной суммы квадратов, объясненных моделью. Обычное значение R-squared относится к SSR и SST свойства:

Rsquared = SSR/SST,

где SST полная сумма квадратов и SSR сумма квадратов регрессии.

Для получения дополнительной информации смотрите Коэффициент детерминации (R-Squared).

Чтобы получить любое из этих значений как скаляр, индексируйте в свойство с помощью записи через точку. Например, получите настроенное значение R-squared в модели mdl:

r2 = mdl.Rsquared.Adjusted

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

Это свойство доступно только для чтения.

Сумма квадратичных невязок (остаточные значения) в виде числового значения.

Теорема Пифагора подразумевает

SST = SSE + SSR,

где SST полная сумма квадратов, SSE сумма квадратичных невязок и SSR сумма квадратов регрессии.

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

Это свойство доступно только для чтения.

Сумма квадратов регрессии в виде числового значения. Сумма квадратов регрессии равна сумме отклонений в квадрате подходящих значений от их среднего значения.

Теорема Пифагора подразумевает

SST = SSE + SSR,

где SST полная сумма квадратов, SSE сумма квадратичных невязок и SSR сумма квадратов регрессии.

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

Это свойство доступно только для чтения.

Полная сумма квадратов в виде числового значения. Полная сумма квадратов равна сумме отклонений в квадрате вектора отклика y от mean(y).

Теорема Пифагора подразумевает

SST = SSE + SSR,

где SST полная сумма квадратов, SSE сумма квадратичных невязок и SSR сумма квадратов регрессии.

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

Подбор кривой методу

Это свойство доступно только для чтения.

Устойчивая подходящая информация в виде структуры с полями, описанными в этой таблице.

Поле Описание
WgtFunУстойчивая функция взвешивания, такая как 'bisquare' (см. 'RobustOpts')
TuneПостоянная настройка. Это поле пусто ([]) если WgtFun 'ols' или если WgtFun указатель на функцию для пользовательской функции веса со значением по умолчанию, настраивающим постоянный 1.
WeightsВектор из весов используется в итоговой итерации устойчивой подгонки. Это поле пусто для CompactLinearModel объект.

Эта структура пуста, если вы не подбираете модель с помощью устойчивой регрессии.

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

Это свойство доступно только для чтения.

Пошагово подходящая информация в виде структуры с полями, описанными в этой таблице.

Поле Описание
StartФормула, представляющая стартовую модель
LowerФормула, представляющая модель нижней границы. Термины в Lower должен остаться в модели.
UpperФормула, представляющая модель верхней границы. Модель не может содержать больше терминов, чем Upper.
CriterionКритерий используется для пошагового алгоритма, такого как 'sse'
PEnterПорог для Criterion добавить термин
PRemoveПорог для Criterion удалить термин
HistoryТаблица, представляющая шаги, сделанные в подгонке

History таблица содержит одну строку для каждого шага, включая начальную подгонку и столбцы, описанные в этой таблице.

СтолбецОписание
Action

Меры приняты во время шага:

  • 'Start' — Первый шаг

  • 'Add' — Термин добавляется

  • 'Remove' — Термин удален

TermName
  • Если Action 'Start', TermName задает стартовую спецификацию модели.

  • Если Action 'Add' или 'Remove', TermName задает термин, добавленный или удаленный на шаге.

TermsСпецификация модели в Матрице Условий
DFСтепени свободы регрессии после шага
delDFИзменитесь в степенях свободы регрессии от предыдущего шага (отрицательный для шагов, которые удаляют термин),
DevianceОтклонение (остаточная сумма квадратов) на шаге (только для обобщенной линейной модели регрессии)
FStatF-статистическая-величина, которая приводит к шагу
PValuep-значение F-статистической-величины

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

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

Входные данные

Это свойство доступно только для чтения.

Информация модели в виде LinearFormula объект.

Отобразите формулу подобранной модели mdl использование записи через точку:

mdl.Formula

Это свойство доступно только для чтения.

Количество наблюдений подходящая функция используется в подборе кривой в виде положительного целого числа. NumObservations количество наблюдений, предоставленных в исходной таблице, наборе данных или матрице, минус любые исключенные строки (набор с 'Exclude' аргумент пары "имя-значение") или строки с отсутствующими значениями.

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

Это свойство доступно только для чтения.

Количество переменных предикторов раньше подбирало модель в виде положительного целого числа.

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

Это свойство доступно только для чтения.

Количество переменных во входных данных в виде положительного целого числа. NumVariables количество переменных в исходной таблице или наборе данных или общем количестве столбцов в матрице предиктора и векторе отклика.

NumVariables также включает любые переменные, которые не используются, чтобы подбирать модель как предикторы или как ответ.

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

Это свойство доступно только для чтения.

Информация о наблюдении в виде n-by-4 таблица, где n равен количеству строк входных данных. ObservationInfo содержит столбцы, описанные в этой таблице.

СтолбецОписание
WeightsВеса наблюдения в виде числового значения. Значением по умолчанию является 1.
ExcludedИндикатор исключенных наблюдений в виде логического значения. Значением является true если вы исключаете наблюдение из подгонки при помощи 'Exclude' аргумент пары "имя-значение".
MissingИндикатор недостающих наблюдений в виде логического значения. Значением является true если наблюдение отсутствует.
SubsetИндикатор того, использует ли подходящая функция наблюдение в виде логического значения. Значением является true если наблюдение не исключено или пропавшие без вести, означая, что подходящая функция использует наблюдение.

Чтобы получить любой из этих столбцов как вектор, индексируйте в свойство с помощью записи через точку. Например, получите вектор веса w из модели mdl:

w = mdl.ObservationInfo.Weights

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

Это свойство доступно только для чтения.

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

  • Если подгонка основана на таблице или наборе данных, содержащем имена наблюдения, ObservationNames использование те имена.

  • В противном случае, ObservationNames массив пустой ячейки.

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

Это свойство доступно только для чтения.

Имена предикторов раньше подбирали модель в виде массива ячеек из символьных векторов.

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

Это свойство доступно только для чтения.

Имя переменной отклика в виде вектора символов.

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

Это свойство доступно только для чтения.

Информация о переменных содержится в VariablesВ виде таблицы с одной строкой для каждой переменной и столбцов, описанных в этой таблице.

СтолбецОписание
ClassПеременный класс в виде массива ячеек из символьных векторов, такого как 'double' и 'categorical'
Range

Переменный диапазон в виде массива ячеек векторов

  • Непрерывная переменная — Двухэлементный вектор [minMax ], минимальные и максимальные значения

  • Категориальная переменная — Вектор из отличных значений переменных

InModelИндикатор которого переменные находятся в подобранной модели в виде логического вектора. Значением является true если модель включает переменную.
IsCategoricalИндикатор категориальных переменных в виде логического вектора. Значением является true если переменная является категориальной.

VariableInfo также включает любые переменные, которые не используются, чтобы подбирать модель как предикторы или как ответ.

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

Это свойство доступно только для чтения.

Имена переменных в виде массива ячеек из символьных векторов.

  • Если подгонка основана на таблице или наборе данных, это свойство обеспечивает имена переменных в таблице или наборе данных.

  • Если подгонка основана на матрице предиктора и векторе отклика, VariableNames содержит значения, заданные 'VarNames' аргумент пары "имя-значение" подходящего метода. Значение по умолчанию 'VarNames' {'x1','x2',...,'xn','y'}.

VariableNames также включает любые переменные, которые не используются, чтобы подбирать модель как предикторы или как ответ.

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

Это свойство доступно только для чтения.

Входные данные в виде таблицы. Variables содержит и предиктор и значения отклика. Если подгонка основана на таблице или массиве набора данных, Variables содержит все данные из массива набора данных или таблицы. В противном случае, Variables таблица, составленная из матрицы входных данных X и вектор отклика y.

Variables также включает любые переменные, которые не используются, чтобы подбирать модель как предикторы или как ответ.

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

Функции объекта

развернуть все

compactКомпактная модель линейной регрессии
addTermsДобавьте термины в модель линейной регрессии
removeTermsУдалите термины из модели линейной регрессии
stepУлучшите модель линейной регрессии путем добавления или удаления терминов
fevalПредскажите ответы модели линейной регрессии использование входа того для каждого предиктора
predictПредскажите ответы модели линейной регрессии
randomСимулируйте ответы со случайным шумом для модели линейной регрессии
anovaДисперсионный анализ для модели линейной регрессии
coefCIДоверительные интервалы содействующих оценок модели линейной регрессии
coefTestЛинейный тест гипотезы на коэффициентах модели линейной регрессии
dwtestТест Дербин-Уотсона с объектом модели линейной регрессии
partialDependenceВычислите частичную зависимость
plotГрафик поля точек или добавленный переменный график модели линейной регрессии
plotAddedДобавленный переменный график модели линейной регрессии
plotAdjustedResponseНастроенный график отклика модели линейной регрессии
plotDiagnosticsПостройте диагностику наблюдения модели линейной регрессии
plotEffectsПостройте основные эффекты предикторов в модели линейной регрессии
plotInteractionПостройте эффекты взаимодействия двух предикторов в модели линейной регрессии
plotPartialDependenceСоздайте графики отдельного условного ожидания (ICE) и частичный график зависимости (PDP)
plotResidualsПостройте остаточные значения модели линейной регрессии
plotSliceГрафик срезов через подходящую поверхность линейной регрессии
gatherСоберите свойства объекта Statistics and Machine Learning Toolbox от графического процессора

Примеры

свернуть все

Подбирайте модель линейной регрессии использование матричного набора входных данных.

Загрузите carsmall набор данных, матричные входные данные установлены.

load carsmall
X = [Weight,Horsepower,Acceleration];

Подбирайте модель линейной регрессии при помощи fitlm.

mdl = fitlm(X,MPG)
mdl = 
Linear regression model:
    y ~ 1 + x1 + x2 + x3

Estimated Coefficients:
                    Estimate        SE          tStat        pValue  
                   __________    _________    _________    __________

    (Intercept)        47.977       3.8785        12.37    4.8957e-21
    x1             -0.0065416    0.0011274      -5.8023    9.8742e-08
    x2              -0.042943     0.024313      -1.7663       0.08078
    x3              -0.011583      0.19333    -0.059913       0.95236


Number of observations: 93, Error degrees of freedom: 89
Root Mean Squared Error: 4.09
R-squared: 0.752,  Adjusted R-Squared: 0.744
F-statistic vs. constant model: 90, p-value = 7.38e-27

Отображение модели включает формулу модели, оцененные коэффициенты и итоговую статистику модели.

Формула модели в отображении, y ~ 1 + x1 + x2 + x3, соответствует y=β0+β1X1+β2X2+β3X3+ϵ.

Отображение модели также показывает предполагаемую информацию о коэффициенте, которая хранится в Coefficients свойство. Отобразите Coefficients свойство.

mdl.Coefficients
ans=4×4 table
                    Estimate        SE          tStat        pValue  
                   __________    _________    _________    __________

    (Intercept)        47.977       3.8785        12.37    4.8957e-21
    x1             -0.0065416    0.0011274      -5.8023    9.8742e-08
    x2              -0.042943     0.024313      -1.7663       0.08078
    x3              -0.011583      0.19333    -0.059913       0.95236

Coefficient свойство включает эти столбцы:

  • Estimate — Коэффициент оценивает для каждого соответствующего члена в модели. Например, оценка для постоянного термина (intercept) 47.977.

  • SE — Стандартная погрешность коэффициентов.

  • tStatt-статистическая-величина для каждого коэффициента, чтобы протестировать нулевую гипотезу, что соответствующий коэффициент является нулем против альтернативы, что это отличается от нуля, учитывая другие предикторы в модели. Обратите внимание на то, что tStat = Estimate/SE. Например, t-статистическая-величина для точки пересечения является 47.977/3.8785 = 12.37.

  • pValuep-значение для t-статистической-величины теста гипотезы, который соответствующий коэффициент равен нулю или нет. Например, p-значение t-статистической-величины для x2 больше 0.05, таким образом, этот термин не является значительным на 5%-м уровне значения, учитывая другие члены в модели.

Итоговые статистические данные модели:

  • Number of observations — Количество строк без любого NaN значения. Например, Number of observations 93 потому что MPG вектор данных имеет шесть NaN значения и Horsepower вектор данных имеет один NaN значение для различного наблюдения, где количество строк в X и MPG 100.

  • Error degrees of freedomn p, где n является количеством наблюдений, и p является количеством коэффициентов в модели, включая точку пересечения. Например, модель имеет четыре предиктора, таким образом, Error degrees of freedom 93 – 4 = 89.

  • Root mean squared error — Квадратный корень из среднеквадратической ошибки, которая оценивает стандартное отклонение распределения ошибок.

  • R-squared и Adjusted R-squared — Коэффициент детерминации и настроенный коэффициент детерминации, соответственно. Например, R-squared значение предполагает, что модель объясняет приблизительно 75% изменчивости в переменной отклика MPG.

  • F-statistic vs. constant model — Протестируйте статистическую величину на F-тест на модели регрессии, которая тестирует, соответствует ли модель значительно лучше, чем вырожденная модель, состоящая только из постоянного термина.

  • p-valuep-значение для F-теста на модели. Например, модель является значительной с p-значением 7.3816e-27.

Можно найти эти статистические данные в свойствах модели (NumObservations, DFE, RMSE, и Rsquared) и при помощи anova функция.

anova(mdl,'summary')
ans=3×5 table
                SumSq     DF    MeanSq      F         pValue  
                ______    __    ______    ______    __________

    Total       6004.8    92    65.269                        
    Model         4516     3    1505.3    89.987    7.3816e-27
    Residual    1488.8    89    16.728                        

Используйте plot создать добавленный переменный график (частичный график рычагов регрессии) для целой модели кроме константы (точка пересечения) термин.

plot(mdl)

Figure contains an axes object. The axes object with title Added variable plot for whole model contains 3 objects of type line. These objects represent Adjusted data, Fit: y=0.0449564*x, 95% conf. bounds.

Подбирайте модель линейной регрессии, которая содержит категориальный предиктор. Переупорядочьте категории категориального предиктора, чтобы управлять контрольным уровнем в модели. Затем используйте anova протестировать значение категориальной переменной.

Модель с категориальным предиктором

Загрузите carsmall набор данных и создает модель линейной регрессии MPG в зависимости от Model_Year. Обрабатывать числовой векторный Model_Year как категориальная переменная, идентифицируйте предиктор с помощью 'CategoricalVars' аргумент пары "имя-значение".

load carsmall
mdl = fitlm(Model_Year,MPG,'CategoricalVars',1,'VarNames',{'Model_Year','MPG'})
mdl = 
Linear regression model:
    MPG ~ 1 + Model_Year

Estimated Coefficients:
                     Estimate      SE      tStat       pValue  
                     ________    ______    ______    __________

    (Intercept)        17.69     1.0328    17.127    3.2371e-30
    Model_Year_76     3.8839     1.4059    2.7625     0.0069402
    Model_Year_82      14.02     1.4369    9.7571    8.2164e-16


Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 5.56
R-squared: 0.531,  Adjusted R-Squared: 0.521
F-statistic vs. constant model: 51.6, p-value = 1.07e-15

Формула модели в отображении, MPG ~ 1 + Model_Year, соответствует

MPG=β0+β1ΙYear=76+β2ΙYear=82+ϵ,

где ΙYear=76 и ΙYear=82 переменные индикатора, значение которых является тем если значение Model_Year 76 и 82, соответственно. Model_Year переменная включает три отличных значения, которые можно проверять при помощи unique функция.

unique(Model_Year)
ans = 3×1

    70
    76
    82

fitlm выбирает наименьшее значение в Model_Year как контрольный уровень ('70') и создает две переменные индикатора ΙYear=76 и ΙYear=82. Модель включает только две переменные индикатора, потому что матрица проекта становится неполным рангом, если модель включает три переменные индикатора (один для каждого уровня) и термин точки пересечения.

Модель с полными переменными индикатора

Можно интерпретировать формулу модели mdl как модель, которая имеет три переменные индикатора без термина точки пересечения:

y=β0Ιx1=70+(β0+β1)Ιx1=76+(β0+β2)Ιx2=82+ϵ.

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

temp_Year = dummyvar(categorical(Model_Year));
Model_Year_70 = temp_Year(:,1);
Model_Year_76 = temp_Year(:,2);
Model_Year_82 = temp_Year(:,3);
tbl = table(Model_Year_70,Model_Year_76,Model_Year_82,MPG);
mdl = fitlm(tbl,'MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82 - 1')
mdl = 
Linear regression model:
    MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82

Estimated Coefficients:
                     Estimate      SE       tStat       pValue  
                     ________    _______    ______    __________

    Model_Year_70      17.69      1.0328    17.127    3.2371e-30
    Model_Year_76     21.574     0.95387    22.617    4.0156e-39
    Model_Year_82      31.71     0.99896    31.743    5.2234e-51


Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 5.56

Выберите Reference Level in Model

Можно выбрать контрольный уровень путем изменения порядка категорий в категориальной переменной. Во-первых, создайте категориальную переменную Year.

Year = categorical(Model_Year);

Проверяйте порядок категорий при помощи categories функция.

categories(Year)
ans = 3x1 cell
    {'70'}
    {'76'}
    {'82'}

Если вы используете Year как переменный предиктор, затем fitlm выбирает первую категорию '70' как контрольный уровень. Переупорядочьте Year при помощи reordercats функция.

Year_reordered = reordercats(Year,{'76','70','82'});
categories(Year_reordered)
ans = 3x1 cell
    {'76'}
    {'70'}
    {'82'}

Первая категория Year_reordered '76'. Создайте модель линейной регрессии MPG в зависимости от Year_reordered.

mdl2 = fitlm(Year_reordered,MPG,'VarNames',{'Model_Year','MPG'})
mdl2 = 
Linear regression model:
    MPG ~ 1 + Model_Year

Estimated Coefficients:
                     Estimate      SE        tStat       pValue  
                     ________    _______    _______    __________

    (Intercept)       21.574     0.95387     22.617    4.0156e-39
    Model_Year_70    -3.8839      1.4059    -2.7625     0.0069402
    Model_Year_82     10.136      1.3812     7.3385    8.7634e-11


Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 5.56
R-squared: 0.531,  Adjusted R-Squared: 0.521
F-statistic vs. constant model: 51.6, p-value = 1.07e-15

mdl2 использование '76' как контрольный уровень и включает две переменные индикатора ΙYear=70 и ΙYear=82.

Оцените категориальный предиктор

Отображение модели mdl2 включает p-значение каждого термина, чтобы протестировать, равен ли соответствующий коэффициент нулю. Каждое p-значение исследует каждую переменную индикатора. Исследовать категориальную переменную Model_Year как группа переменных индикатора, используйте anova. Используйте 'components'опция (по умолчанию), чтобы возвратить таблицу ANOVA компонента, которая включает статистику Дисперсионного Анализа для каждой переменной в модели кроме постоянного термина.

anova(mdl2,'components')
ans=2×5 table
                  SumSq     DF    MeanSq      F        pValue  
                  ______    __    ______    _____    __________

    Model_Year    3190.1     2    1595.1    51.56    1.0694e-15
    Error         2815.2    91    30.936                       

Таблица ANOVA компонента включает p-значение Model_Year переменная, которая меньше, чем p-значения переменных индикатора.

Загрузите hald набор данных, который измеряет эффект цементного состава на его стабилизирующем тепле.

load hald

Этот набор данных включает переменные ingredients и heat. Матричный ingredients содержит состав процента четырех химикатов, существующих в цементе. Векторный heat содержит значения для тепла, укрепляющегося после 180 дней для каждой цементной выборки.

Подбирайте устойчивую модель линейной регрессии к данным.

mdl = fitlm(ingredients,heat,'RobustOpts','on')
mdl = 
Linear regression model (robust fit):
    y ~ 1 + x1 + x2 + x3 + x4

Estimated Coefficients:
                   Estimate      SE        tStat       pValue 
                   ________    _______    ________    ________

    (Intercept)       60.09     75.818     0.79256      0.4509
    x1               1.5753    0.80585      1.9548    0.086346
    x2               0.5322    0.78315     0.67957     0.51596
    x3              0.13346     0.8166     0.16343     0.87424
    x4             -0.12052     0.7672    -0.15709     0.87906


Number of observations: 13, Error degrees of freedom: 8
Root Mean Squared Error: 2.65
R-squared: 0.979,  Adjusted R-Squared: 0.969
F-statistic vs. constant model: 94.6, p-value = 9.03e-07

Для получения дополнительной информации смотрите, что тема Уменьшает Эффекты Выброса Используя Устойчивую Регрессию, которая сравнивает результаты устойчивой подгонки к стандартному методу наименьших квадратов.

Загрузите hald набор данных, который измеряет эффект цементного состава на его стабилизирующем тепле.

load hald

Этот набор данных включает переменные ingredients и heat. Матричный ingredients содержит состав процента четырех химикатов, существующих в цементе. Векторный heat содержит значения для тепла, укрепляющегося после 180 дней для каждой цементной выборки.

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

 mdl = stepwiselm(ingredients,heat,'PEnter',0.06)
1. Adding x4, FStat = 22.7985, pValue = 0.000576232
2. Adding x1, FStat = 108.2239, pValue = 1.105281e-06
3. Adding x2, FStat = 5.0259, pValue = 0.051687
4. Removing x4, FStat = 1.8633, pValue = 0.2054
mdl = 
Linear regression model:
    y ~ 1 + x1 + x2

Estimated Coefficients:
                   Estimate       SE       tStat       pValue  
                   ________    ________    ______    __________

    (Intercept)     52.577       2.2862    22.998    5.4566e-10
    x1              1.4683       0.1213    12.105    2.6922e-07
    x2             0.66225     0.045855    14.442     5.029e-08


Number of observations: 13, Error degrees of freedom: 10
Root Mean Squared Error: 2.41
R-squared: 0.979,  Adjusted R-Squared: 0.974
F-statistic vs. constant model: 230, p-value = 4.41e-09

По умолчанию стартовая модель является постоянной моделью. stepwiselm выполняет прямой выбор и добавляет x4x1 , и x2 термины (в том порядке), потому что соответствующие p-значения меньше PEnter значение 0,06. stepwiselm затем использование обратное устранение и удаляет x4 из модели, потому что, однажды x2 находится в модели, p-значении x4 больше значения по умолчанию PRemove, 0.1.

Больше о

развернуть все

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

  • Для сокращения времени вычисления на высоко-размерных наборах данных подбирайте модель линейной регрессии использование fitrlinear функция.

  • Чтобы упорядочить регрессию, использовать fitrlinear, lasso, ridge, или plsregress.

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

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

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

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

Расширенные возможности

Представленный в R2012a