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 -value для t -statistic

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

Diagnostics содержит информацию, которая полезна для нахождения выбросов и влиятельных наблюдений. Delete-1 диагностика фиксирует изменения, которые являются результатом исключения каждого наблюдения, в свою очередь, из подгонки. Для получения дополнительной информации смотрите Hat Matrix и 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-на-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Таблица, представляющая шаги, предпринятые в подгонке

The 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-на-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

The 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, соответственно. The 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

Выберите ссылочный уровень в модели

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

Дисперсионный Анализ компонента включает 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