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-by-P, матрица масштабированного изменения в коэффициенте оценивает, что следует, исключая каждое наблюдение в свою очередь. Значения, больше, чем 3/sqrt(N) в абсолютном значении, указывают, что наблюдение имеет значительное влияние на соответствующий коэффициент.
HatMatrixМатрица проекции, чтобы вычислить fitted из наблюдаемых ответовHatMatrix является N-by-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

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

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

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

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

Критерий образцового сравнения, заданного как структура с этими полями:

  • AIC — Критерий информации о Akaike.     AIC = –2*logL + 2*m, где logL является loglikelihood и 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 = 1 – SSE/SST,

где SST является полной суммой квадратов, SSE является суммой квадратичных невязок, и 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

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

  • запуск Первый шаг

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

  • Удаление Термин удален

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

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

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

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

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Тест Дербин-Уотсона с объектом модели линейной регрессии
plotГрафик поля точек или добавленный переменный график модели линейной регрессии
plotAddedДобавленный переменный график модели линейной регрессии
plotAdjustedResponseНастроенный график ответа модели линейной регрессии
plotDiagnosticsПостройте диагностику наблюдения модели линейной регрессии
plotEffectsПостройте основные эффекты предикторов в модели линейной регрессии
plotInteractionПостройте эффекты взаимодействия двух предикторов в модели линейной регрессии
plotPartialDependenceСоздайте графики отдельного условного ожидания (ICE) и частичный график зависимости (PDP)
plotResidualsПостройте невязки модели линейной регрессии
plotSliceГрафик срезов через подходящую поверхность линейной регрессии

Примеры

свернуть все

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

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

Соответствуйте модели линейной регрессии, которая содержит категориальный предиктор. Переупорядочьте категории категориального предиктора, чтобы управлять контрольным уровнем в модели. Затем используйте 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ΙГод=76+β2ΙГод=82+ϵ,

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

unique(Model_Year)
ans = 3×1

    70
    76
    82

fitlm выбирает наименьшее значение в Model_Year как контрольный уровень ('70') и создает две переменные индикатора ΙГод=76 и ΙГод=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 array
    {'70'}
    {'76'}
    {'82'}

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

Year_reordered = reordercats(Year,{'76','70','82'});
categories(Year_reordered)
ans = 3x1 cell array
    {'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' в качестве контрольного уровня и включает две переменные индикатора ΙГод=70 и ΙГод=82.

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

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

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                       

Таблица АНОВОЙ компонента включает 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 выполняет прямой выбор и добавляет x4, x1 и условия x2 (в том порядке), потому что соответствующие p-значения являются меньше, чем значение PEnter 0,06. stepwiselm затем использует обратное устранение и удаляет x4 из модели, потому что, если x2 находится в модели, p-значение x4 больше, чем значение по умолчанию PRemove, 0.1.

Больше о

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

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

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

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

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

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

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

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

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

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