exponenta event banner

LinearModel

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

Описание

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

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

Создание

Создать LinearModel объект с помощью fitlm или stepwiselm.

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

Свойства

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

Оценки коэффициентов

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

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

Дополнительные сведения см. в разделе Стандартные ошибки коэффициентов и доверительные интервалы.

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

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

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

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

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

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

  • Estimate - Расчетное значение коэффициента

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

  • tStat - t-статистика для теста, что коэффициент равен нулю

  • pValue - p-значение для 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. A Leverage значение больше, чем 2*P/N указывает на высокий уровень левериджа.
CooksDistanceРасстояние КукаCooksDistance - мера масштабированного изменения подгоняемых значений. Наблюдение с помощью CooksDistance более чем втрое среднее расстояние Кука может быть больше.
DffitsDelete-1 масштабированные различия в соответствующих значенияхDffits - это масштабированное изменение значений подгонки для каждого наблюдения, которое является результатом исключения этого наблюдения из подгонки. Значения больше 2*sqrt(P/N) в абсолютном значении может считаться влиятельным.
S2_iDelete-1 отклонениеS2_i представляет собой набор оценок остаточной дисперсии, полученных путем поочередного удаления каждого наблюдения. Эти оценки можно сравнить со значением среднеквадратической ошибки (MSE), хранящимся в MSE собственность.
CovRatioDelete-1 отношение определителя ковариацииCovRatio - отношение определителя ковариационной матрицы коэффициентов, при этом каждое наблюдение удаляется, в свою очередь, к определителю ковариационной матрицы для полной модели. Значения больше 1 + 3*P/N или менее 1 – 3*P/N указывают влиятельные моменты.
DfbetasDelete-1 масштабированные различия в оценках коэффициентовDfbetas является Nоколо-P матрица масштабированного изменения в оценках коэффициентов, которое является результатом исключения каждого наблюдения по очереди. Значения больше 3/sqrt(N) в абсолютном значении указывают на то, что наблюдение оказывает значительное влияние на соответствующий коэффициент.
HatMatrixПроекционная матрица для вычисления fitted из наблюдаемых ответовHatMatrix является Nоколо-N матрица такая, что Fitted = HatMatrix*Y, где Y - вектор ответа и Fitted - вектор аппроксимированных значений отклика.

Diagnostics содержит информацию, которая полезна при поиске отклонений и влиятельных наблюдений. Delete-1 диагностика фиксирует изменения, которые являются результатом исключения каждого наблюдения по очереди из посадки. Дополнительные сведения см. в разделах Hat Matrix and Leverage, Cook's Distance и Delete-1 Statistics.

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

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

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

S2i = mdl.Diagnostics.S2_i;

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

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

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

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

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

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

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

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

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

  • AIC - информационный критерий Акаике. 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 - Согласованный информационный критерий Акаике. 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-квадрата для модели, указанное как структура с двумя полями:

  • Ordinary - Обычный (нескорректированный) R-квадрат

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

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

Rsquared = SSR/SST,

где SST - общая сумма квадратов, и SSR - регрессионная сумма квадратов.

Дополнительные сведения см. в разделе Коэффициент определения (R-квадрат).

Чтобы получить любое из этих значений в виде скаляра, выполните индексирование в свойство с помощью точечной нотации. Например, получить скорректированное значение R-квадрата в модели 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

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

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

Примеры

свернуть все

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

Загрузить 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 - Стандартная погрешность коэффициентов.

  • tStat - t-статистика для каждого коэффициента, чтобы проверить нулевую гипотезу, что соответствующий коэффициент равен нулю против альтернативы, что он отличается от нуля, учитывая другие предикторы в модели. Обратите внимание, что tStat = Estimate/SE. Например, t-статистика для перехвата составляет 47,977/3,8785 = 12,37.

  • pValue - p-значение для 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 freedom - n - 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-value - значение p для 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Ι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') и создаёт две индикаторные переменные GroupYear = 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

Выбор опорного уровня в модели

Можно выбрать опорный уровень путем изменения порядка категорий в категориальной переменной. Сначала создайте категориальную переменную 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 для каждой переменной в модели, за исключением члена константы.

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 выполняет прямой выбор и добавляет 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