Модель линейной регрессии
LinearModel является аппроксимированным объектом модели линейной регрессии. Регрессионная модель описывает взаимосвязь между ответом и предикторами. Линейность в модели линейной регрессии относится к линейности коэффициентов предиктора.
Использовать свойства LinearModel объект для исследования подогнанной модели линейной регрессии. Свойства объекта включают в себя информацию об оценках коэффициентов, сводную статистику, метод подгонки и входные данные. Функции объекта используются для прогнозирования откликов, а также для изменения, оценки и визуализации модели линейной регрессии.
Создать LinearModel объект с помощью fitlm или stepwiselm.
fitlm подгоняет модель линейной регрессии к данным с использованием спецификации фиксированной модели. Использовать addTerms, removeTerms, или step для добавления или удаления терминов из модели. В качестве альтернативы можно использовать stepwiselm для подгонки модели с использованием пошаговой линейной регрессии.
CoefficientCovariance - Ковариационная матрица оценок коэффициентовЭто свойство доступно только для чтения.
Ковариационная матрица оценок коэффициентов, заданная как p-by-p матрица числовых значений. p - число коэффициентов в подгоняемой модели.
Дополнительные сведения см. в разделе Стандартные ошибки коэффициентов и доверительные интервалы.
Типы данных: single | double
CoefficientNames - Наименования коэффициентовЭто свойство доступно только для чтения.
Имена коэффициентов, определяемые как массив ячеек символьных векторов, каждый из которых содержит имя соответствующего члена.
Типы данных: cell
Coefficients - Значения коэффициентовЭто свойство доступно только для чтения.
Значения коэффициентов, указанные как таблица. Coefficients содержит одну строку для каждого коэффициента и следующие столбцы:
Estimate - Расчетное значение коэффициента
SE - Стандартная погрешность оценки
tStat - t-статистика для теста, что коэффициент равен нулю
pValue - p-значение для t-статистики
Использовать anova (только для модели линейной регрессии) или coefTest для выполнения других тестов коэффициентов. Использовать coefCI для нахождения доверительных интервалов оценок коэффициентов.
Чтобы получить любой из этих столбцов в виде вектора, выполните индексирование в свойство с помощью точечной нотации. Например, получить оцененный вектор коэффициентов в модели mdl:
beta = mdl.Coefficients.Estimate
Типы данных: table
NumCoefficients - Количество коэффициентов моделиЭто свойство доступно только для чтения.
Число коэффициентов модели, указанное как положительное целое число. NumCoefficients включает в себя коэффициенты, которые устанавливаются равными нулю, когда модельные члены имеют недостаток ранга.
Типы данных: double
NumEstimatedCoefficients - Количество расчетных коэффициентовЭто свойство доступно только для чтения.
Количество расчетных коэффициентов в модели, указанное как положительное целое число. NumEstimatedCoefficients не включает коэффициенты, которые установлены в нуль, когда модельные члены имеют недостаточный ранг. NumEstimatedCoefficients - степени свободы для регрессии.
Типы данных: double
DFE - Степени свободы для ошибкиЭто свойство доступно только для чтения.
Степени свободы для ошибки (остатки), равные количеству наблюдений минус число оцененных коэффициентов, указанных как положительное целое число.
Типы данных: double
Diagnostics - Диагностика наблюденийЭто свойство доступно только для чтения.
Диагностика наблюдений, заданная как таблица, содержащая одну строку для каждого наблюдения и столбцы, описанные в этой таблице.
| Колонка | Значение | Описание |
|---|---|---|
Leverage | Диагональные элементы HatMatrix | Leverage для каждого наблюдения указывает, в какой степени соответствие определяется наблюдаемыми предикторными значениями. Значение, близкое к 1 указывает, что соответствие в значительной степени определяется этим наблюдением при незначительном вкладе других наблюдений. Значение, близкое к 0 указывает, что посадка в значительной степени определяется другими наблюдениями. Для модели с P коэффициенты и N наблюдения, среднее значение Leverage является P/N. A Leverage значение больше, чем 2*P/N указывает на высокий уровень левериджа. |
CooksDistance | Расстояние Кука | CooksDistance - мера масштабированного изменения подгоняемых значений. Наблюдение с помощью CooksDistance более чем втрое среднее расстояние Кука может быть больше. |
Dffits | Delete-1 масштабированные различия в соответствующих значениях | Dffits - это масштабированное изменение значений подгонки для каждого наблюдения, которое является результатом исключения этого наблюдения из подгонки. Значения больше 2*sqrt(P/N) в абсолютном значении может считаться влиятельным. |
S2_i | Delete-1 отклонение | S2_i представляет собой набор оценок остаточной дисперсии, полученных путем поочередного удаления каждого наблюдения. Эти оценки можно сравнить со значением среднеквадратической ошибки (MSE), хранящимся в MSE собственность. |
CovRatio | Delete-1 отношение определителя ковариации | CovRatio - отношение определителя ковариационной матрицы коэффициентов, при этом каждое наблюдение удаляется, в свою очередь, к определителю ковариационной матрицы для полной модели. Значения больше 1 + 3*P/N или менее 1 – 3*P/N указывают влиятельные моменты. |
Dfbetas | Delete-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
Fitted - Установленные значения отклика на основе входных данныхЭто свойство доступно только для чтения.
Аппроксимированные (прогнозируемые) значения отклика на основе входных данных, заданных в виде n-by-1 числового вектора. n - количество наблюдений во входных данных. Использовать predict для вычисления прогнозов для других значений предиктора или для вычисления доверительных границ на Fitted.
Типы данных: single | double
LogLikelihood - Средства к существованиюЭто свойство доступно только для чтения.
Логарифмирование значений ответа, указанных как числовое значение, на основе предположения, что каждое значение ответа следует нормальному распределению. Средним значением нормального распределения является соответствующее (прогнозируемое) значение отклика, а дисперсией - MSE.
Типы данных: single | double
ModelCriterion - Критерий сравнения моделейЭто свойство доступно только для чтения.
Критерий сравнения моделей, указанный как структура со следующими полями:
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 - Среднеквадратичная ошибкаЭто свойство доступно только для чтения.
Среднеквадратичная ошибка (остатки), заданная как числовое значение.
MSE = SSE/DFE,
где MSE - среднеквадратичная ошибка, SSE - сумма квадратичных ошибок, а DFE - степени свободы.
Типы данных: single | double
Residuals - Остатки для установленной моделиЭто свойство доступно только для чтения.
Остатки для подогнанной модели, указанные как таблица, содержащая одну строку для каждого наблюдения и столбцы, описанные в этой таблице.
| Колонка | Описание |
|---|---|
Raw | Наблюдаемые минус установленные значения |
Pearson | Необработанные остатки, разделенные на среднеквадратичную ошибку (RMSE) |
Standardized | Необработанные остатки, деленные на их расчетное стандартное отклонение |
Studentized | Необработанный остаток, деленный на независимую оценку остаточного стандартного отклонения. Остаток для наблюдения i делится на оценку среднеквадратического отклонения погрешности на основе всех наблюдений, кроме наблюдения i. |
Использовать plotResiduals для создания графика остатков. Дополнительные сведения см. в разделе Остатки.
Строки, не используемые в подгонке из-за отсутствия значений (в ObservationInfo.Missing) или исключенные значения (в ObservationInfo.Excluded) содержат NaN значения.
Чтобы получить любой из этих столбцов в виде вектора, выполните индексирование в свойство с помощью точечной нотации. Например, получить необработанный остаточный вектор r в модели mdl:
r = mdl.Residuals.Raw
Типы данных: table
RMSE - Среднеквадратичная ошибка корняЭто свойство доступно только для чтения.
Среднеквадратичная ошибка (остатки) корня, заданная как числовое значение.
RMSE = sqrt (MSE),
где RMSE - среднеквадратичная ошибка, а MSE - среднеквадратичная ошибка.
Типы данных: single | double
Rsquared - R-квадрат для моделиЭто свойство доступно только для чтения.
Значение R-квадрата для модели, указанное как структура с двумя полями:
Ordinary - Обычный (нескорректированный) R-квадрат
Adjusted - R-квадрат, скорректированный на количество коэффициентов
R-квадрат - это доля общей суммы квадратов, объясняемая моделью. Обычное значение R-квадрата относится к SSR и SST свойства:
Rsquared = SSR/SST,
где SST - общая сумма квадратов, и SSR - регрессионная сумма квадратов.
Дополнительные сведения см. в разделе Коэффициент определения (R-квадрат).
Чтобы получить любое из этих значений в виде скаляра, выполните индексирование в свойство с помощью точечной нотации. Например, получить скорректированное значение R-квадрата в модели mdl:
r2 = mdl.Rsquared.Adjusted
Типы данных: struct
SSE - Сумма квадратичных ошибокЭто свойство доступно только для чтения.
Сумма квадратичных ошибок (остатков), заданная как числовое значение.
Теорема Пифагора подразумевает
SST = SSE + SSR,
где SST - общая сумма квадратов, SSE - сумма квадратичных ошибок, и SSR - регрессионная сумма квадратов.
Типы данных: single | double
SSR - Регрессионная сумма квадратовЭто свойство доступно только для чтения.
Регрессионная сумма квадратов, заданная как числовое значение. Сумма регрессии квадратов равна сумме квадратичных отклонений аппроксимируемых значений от их среднего значения.
Теорема Пифагора подразумевает
SST = SSE + SSR,
где SST - общая сумма квадратов, SSE - сумма квадратичных ошибок, и SSR - регрессионная сумма квадратов.
Типы данных: single | double
SST - Общая сумма квадратовЭто свойство доступно только для чтения.
Общая сумма квадратов, заданная как числовое значение. Общая сумма квадратов равна сумме квадратичных отклонений вектора отклика y от mean(y).
Теорема Пифагора подразумевает
SST = SSE + SSR,
где SST - общая сумма квадратов, SSE - сумма квадратичных ошибок, и SSR - регрессионная сумма квадратов.
Типы данных: single | double
Robust - Надежная информация о подгонкеЭто свойство доступно только для чтения.
Надежная информация о посадке, указанная как структура с полями, описанными в этой таблице.
| Область | Описание |
|---|---|
WgtFun | Надежная взвешивающая функция, например 'bisquare' (см. 'RobustOpts') |
Tune | Настройка константы. Это поле пустое ([]), если WgtFun является 'ols' или если WgtFun является дескриптором функции для пользовательской весовой функции с константой настройки по умолчанию 1. |
Weights | Вектор весов, используемый при окончательной итерации надежной посадки. Это поле пусто для CompactLinearModel объект. |
Эта структура пуста, если модель не подходит для надежной регрессии.
Типы данных: struct
Steps - Пошаговая информация о подгонкеЭто свойство доступно только для чтения.
Информация о ступенчатой подгонке, заданная как структура с полями, описанными в этой таблице.
| Область | Описание |
|---|---|
Start | Формула, представляющая начальную модель |
Lower | Формула, представляющая модель нижней границы. Термины в Lower должен оставаться в модели. |
Upper | Формула, представляющая модель верхней границы. Модель не может содержать больше терминов, чем Upper. |
Criterion | Критерий, используемый для пошагового алгоритма, например 'sse' |
PEnter | Порог для Criterion для добавления термина |
PRemove | Порог для Criterion чтобы удалить термин |
History | Таблица, представляющая шаги, предпринятые в соответствии |
History содержит одну строку для каждого шага, включая начальную аппроксимацию, и столбцы, описанные в этой таблице.
| Колонка | Описание |
|---|---|
Action | Меры, принятые на этапе:
|
TermName |
|
Terms | Спецификация модели в матрице терминов |
DF | Регрессионные степени свободы после шага |
delDF | Изменение степеней свободы регрессии по сравнению с предыдущим шагом (отрицательное значение для шагов, удаляющих член) |
Deviance | Отклонение (остаточная сумма квадратов) на шаге (только для обобщенной модели линейной регрессии) |
FStat | F-статистика, которая приводит к шагу |
PValue | p-значение F-статистики |
Структура пуста, если модель не соответствует ступенчатой регрессии.
Типы данных: struct
Formula - Информация о моделиLinearFormula объектЭто свойство доступно только для чтения.
Информация о модели, указанная как LinearFormula объект.
Отображение формулы подогнанной модели mdl с использованием точечной нотации:
mdl.Formula
NumObservations - Количество наблюденийЭто свойство доступно только для чтения.
Число наблюдений функции фитинга, используемой в фитинге, указанное как положительное целое число. NumObservations - количество наблюдений, предоставленных в исходной таблице, наборе данных или матрице, за вычетом всех исключенных строк (задано с помощью 'Exclude' аргумент пары имя-значение) или строки с отсутствующими значениями.
Типы данных: double
NumPredictors - Количество переменных предиктораЭто свойство доступно только для чтения.
Число предикторных переменных, используемых для соответствия модели, указанное как положительное целое число.
Типы данных: double
NumVariables - Количество переменныхЭто свойство доступно только для чтения.
Число переменных во входных данных, указанное как положительное целое число. NumVariables - количество переменных в исходной таблице или наборе данных или общее число столбцов в матрице предиктора и векторе ответа.
NumVariables также включает любые переменные, которые не используются для соответствия модели в качестве предикторов или в качестве ответа.
Типы данных: double
ObservationInfo - Информация о наблюденияхЭто свойство доступно только для чтения.
Информация наблюдения, заданная как таблица n-by-4, где n равно количеству строк входных данных. ObservationInfo содержит столбцы, описанные в этой таблице.
| Колонка | Описание |
|---|---|
Weights | Веса наблюдения, заданные как числовое значение. Значение по умолчанию: 1. |
Excluded | Индикатор исключенных наблюдений, указанный как логическое значение. Значение: true при исключении наблюдения из посадки с помощью 'Exclude' аргумент пары имя-значение. |
Missing | Индикатор отсутствующих наблюдений, указанный как логическое значение. Значение: true если наблюдение отсутствует. |
Subset | Индикатор того, использует ли функция аппроксимации наблюдение, указанное как логическое значение. Значение: true если наблюдение не исключено или отсутствует, т.е. функция фитинга использует наблюдение. |
Чтобы получить любой из этих столбцов в виде вектора, выполните индексирование в свойство с помощью точечной нотации. Например, получить весовой вектор w модели mdl:
w = mdl.ObservationInfo.Weights
Типы данных: table
ObservationNames - Названия наблюденийЭто свойство доступно только для чтения.
Имена наблюдений, определяемые как массив ячеек символьных векторов, содержащих имена наблюдений, используемых при подгонке.
Если подгонка основана на таблице или наборе данных, содержащих имена наблюдений, ObservationNames использует эти имена.
В противном случае ObservationNames является пустым массивом ячеек.
Типы данных: cell
PredictorNames - Названия предикторов, используемых для подгонки моделиЭто свойство доступно только для чтения.
Имена предикторов, используемых для подгонки к модели, заданные как клеточный массив символьных векторов.
Типы данных: cell
ResponseName - Имя переменной ответаЭто свойство доступно только для чтения.
Имя ответной переменной, указанное как символьный вектор.
Типы данных: char
VariableInfo - Информация о переменныхЭто свойство доступно только для чтения.
Информация о переменных, содержащихся в Variables, задается как таблица с одной строкой для каждой переменной и столбцов, описанных в этой таблице.
| Колонка | Описание |
|---|---|
Class | Класс переменных, заданный как массив ячеек символьных векторов, например 'double' и 'categorical' |
Range | Диапазон переменных, заданный как массив ячеек векторов
|
InModel | Индикатор, переменные которого находятся в подогнанной модели, определяемый как логический вектор. Значение: true если модель включает переменную. |
IsCategorical | Индикатор категориальных переменных, указанный как логический вектор. Значение: true если переменная категорична. |
VariableInfo также включает любые переменные, которые не используются для соответствия модели в качестве предикторов или в качестве ответа.
Типы данных: table
VariableNames - имена переменных;Это свойство доступно только для чтения.
Имена переменных, определяемые как массив ячеек символьных векторов.
Если аппроксимация основана на таблице или наборе данных, это свойство предоставляет имена переменных в таблице или наборе данных.
Если подгонка основана на матрице предиктора и векторе отклика, VariableNames содержит значения, указанные 'VarNames' аргумент пары имя-значение метода фитинга. Значение по умолчанию 'VarNames' является {'x1','x2',...,'xn','y'}.
VariableNames также включает любые переменные, которые не используются для соответствия модели в качестве предикторов или в качестве ответа.
Типы данных: cell
Variables - Входные данныеЭто свойство доступно только для чтения.
Входные данные, указанные как таблица. Variables содержит как предикторные, так и ответные значения. Если аппроксимация основана на таблице или массиве наборов данных, Variables содержит все данные из таблицы или массива набора данных. В противном случае Variables - таблица, созданная на основе матрицы входных данных; X и вектор отклика y.
Variables также включает любые переменные, которые не используются для соответствия модели в качестве предикторов или в качестве ответа.
Типы данных: table
CompactLinearModelcompact | Компактная модель линейной регрессии |
addTerms | Добавление членов в модель линейной регрессии |
removeTerms | Удаление членов из модели линейной регрессии |
step | Улучшение модели линейной регрессии путем добавления или удаления членов |
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, соответствует .
На дисплее модели также отображается оценочная информация коэффициента, которая хранится в 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, соответствует
,
где 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 как модель, которая имеет три индикаторные переменные без члена перехвата:
β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' как контрольный уровень и включает две переменные индикатора и .
Оценить категориальный предиктор
Отображение модели 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.
Матрица терминов T представляет собой матрицу t-by- ( p + 1), задающую члены в модели, где t - число членов, p - число переменных предиктора, и + 1 учитывает переменную отклика. Значение T(i,j) - экспонента переменной j в термине i.
Например, предположим, что входные данные включают три прогнозирующие переменные. x1, x2, и x3 и переменная ответа y в порядке x1, x2, x3, и y. Каждая строка T представляет собой один термин:
[0 0 0 0] - Постоянный термин или перехват
[0 1 0 0] — x2; эквивалентно, x1^0 * x2^1 * x3^0
[1 0 1 0] — x1*x3
[2 0 0 0] — x1^2
[0 1 2 0] — x2*(x3^2)
0 в конце каждого члена представляет переменную ответа. В общем случае вектор-столбец нулей в матрице членов представляет положение переменной отклика. Если в матрице и векторе столбца имеются переменные предиктора и отклика, то необходимо включить 0 для переменной ответа в последнем столбце каждой строки.
Для сокращения времени вычислений в высокомерных наборах данных поместите модель линейной регрессии с помощью fitrlinear функция.
Чтобы упорядочить регрессию, используйте fitrlinear, lasso, ridge, или plsregress.
fitrlinear упорядочивает регрессию для высокоразмерных наборов данных, используя регрессию лассо или хребта.
lasso удаляет избыточные предикторы в линейной регрессии с использованием лассо или упругой сетки.
ridge регуляризует регрессию с коррелированными терминами, используя регрессию хребта.
plsregress регуляризует регрессию с коррелированными членами, используя частичные наименьшие квадраты.
Примечания и ограничения по использованию:
Дополнительные сведения см. в разделе Введение в создание кода.
Примечания и ограничения по использованию:
Следующие функции объекта полностью поддерживают массивы GPU:
Следующие функции объектов поддерживают объекты модели, оснащенные входными аргументами массива GPU:
Дополнительные сведения см. в разделе Запуск функций MATLAB на графическом процессоре (панель инструментов параллельных вычислений).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.