Модель линейной регрессии
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 . Leverage значение, больше, чем 2*P/N указывает на высокие рычаги. |
CooksDistance | Расстояние повара | CooksDistance мера масштабированного изменения в подходящих значениях. Наблюдение с CooksDistance больше, чем три раза расстояние среднего Кука может быть выброс. |
Dffits | Удалите 1 масштабируемое различие в подходящих значениях | Dffits масштабированное изменение в подходящих значениях для каждого наблюдения, которое следует, исключая то наблюдение от подгонки. Значения, больше, чем 2*sqrt(P/N) в абсолютном значении может быть рассмотрен влиятельным. |
S2_i | Удалите 1 отклонение | S2_i набор остаточных оценок отклонения, полученных путем удаления каждого наблюдения в свою очередь. Эти оценки могут быть по сравнению со значением среднеквадратической ошибки (MSE), сохраненным в MSE свойство. |
CovRatio | Удалите 1 отношение определителя ковариации | CovRatio отношение определителя содействующей ковариационной матрицы, с каждым наблюдением, удаленным в свою очередь, к определителю ковариационной матрицы для полной модели. Значения, больше, чем 1 + 3*P/N или меньше, чем 1 – 3*P/N укажите на влиятельные точки. |
Dfbetas | Удалите 1 масштабируемое различие в содействующих оценках | Dfbetas N - P матрица масштабированного изменения в коэффициенте оценивает, что следует, исключая каждое наблюдение в свою очередь. Значения, больше, чем 3/sqrt(N) в абсолютном значении указывают, что наблюдение имеет значительное влияние на соответствующий коэффициент. |
HatMatrix | Матрица проекции, чтобы вычислить fitted от наблюдаемых ответов | HatMatrix N - N матрицируйте таким образом что Fitted = HatMatrix*Y , где Y вектор отклика и Fitted вектор подходящих значений ответа. |
Diagnostics
содержит информацию, которая полезна в нахождении выбросов и влиятельных наблюдений. Удалите 1 получение диагностики изменения, которые следуют, исключая каждое наблюдение в свою очередь от подгонки. Для получения дополнительной информации смотрите Матрицу Шляпы и Рычаги, Расстояние Повара, и Удалите 1 Статистику.
Используйте plotDiagnostics
построить диагностику наблюдения.
Строки, не используемые в подгонке из-за отсутствующих значений (в ObservationInfo.Missing
) или исключенные значения (в ObservationInfo.Excluded
) содержите NaN
значения в CooksDistance
, Dffits
, S2_i
, и CovRatio
столбцы и нули в Leverage
, Dfbetas
, и HatMatrix
столбцы.
Чтобы получить любой из этих столбцов как массив, индексируйте в свойство с помощью записи через точку. Например, получите удаление 1 вектора отклонения в модели mdl
:
S2i = mdl.Diagnostics.S2_i;
Типы данных: table
Fitted
— Подходящие значения ответа на основе входных данныхЭто свойство доступно только для чтения.
Адаптированные (предсказанные) значения ответа на основе входных данных, заданных как n-by-1 числовой вектор. n является количеством наблюдений во входных данных. Используйте predict
вычислить прогнозы для других значений предиктора или вычислить доверительные границы на Fitted
.
Типы данных: single
| double
LogLikelihood
— Логарифмическая правдоподобностьЭто свойство доступно только для чтения.
Логарифмическая правдоподобность значений ответа, заданных как числовое значение, основанное на предположении, что каждое значение ответа следует за нормальным распределением. Среднее значение нормального распределения является подходящим (предсказанным) значением ответа, и отклонением является MSE
.
Типы данных: single
| double
ModelCriterion
— Критерий сравнения моделиЭто свойство доступно только для чтения.
Критерий сравнения модели, заданного как структура с этими полями:
AIC
— Критерий информации о Akaike. AIC = –2*logL + 2*m
, где logL
логарифмическая правдоподобность и m
количество предполагаемых параметров.
AICc
— Критерий информации о Akaike откорректирован для объема выборки. AICc = AIC + (2*m*(m+1))/(n–m–1)
, где n
количество наблюдений.
BIC
— Байесов информационный критерий. BIC = –2*logL + m*log(n)
.
CAIC
— Сопоставимый информационный критерий Akaike. CAIC = –2*logL + m*(log(n)+1)
.
Информационные критерии являются инструментами выбора модели, которые можно использовать, чтобы сравнить подгонку многоуровневых моделей к тем же данным. Эти критерии являются основанными на вероятности мерами подгонки модели, которые включают штраф за сложность (а именно, количество параметров). Различные информационные критерии отличает форма штрафа.
Когда вы сравниваете многоуровневые модели, модель с самым низким информационным значением критерия является моделью оптимальной подгонки. Модель оптимальной подгонки может варьироваться в зависимости от критерия, используемого в сравнении модели.
Чтобы получить любое из значений критерия как скаляр, индексируйте в свойство с помощью записи через точку. Например, получите значение AIC aic
в модели mdl
:
aic = mdl.ModelCriterion.AIC
Типы данных: struct
MSE
— Среднеквадратическая ошибкаЭто свойство доступно только для чтения.
Среднеквадратическая ошибка (остаточные значения), заданные как числовое значение.
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-squared для моделиЭто свойство доступно только для чтения.
Значение R-squared для модели, заданной как структура с двумя полями:
Ordinary
— Обычный (неприспособленный) R-squared
Adjusted
— R-squared, настроенный для количества коэффициентов
Значение R-squared является пропорцией полной суммы квадратов, объясненных моделью. Обычное значение R-squared относится к SSR
и SST
свойства:
Rsquared = SSR/SST = 1 – SSE/SST
,
где SST
полная сумма квадратов, SSE
сумма квадратичных невязок и SSR
сумма квадратов регрессии.
Для получения дополнительной информации смотрите Коэффициент детерминации (R-Squared).
Чтобы получить любое из этих значений как скаляр, индексируйте в свойство с помощью записи через точку. Например, получите настроенное значение R-squared в модели mdl
:
r2 = mdl.Rsquared.Adjusted
Типы данных: struct
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
CompactLinearModel
compact | Компактная модель линейной регрессии |
addTerms | Добавьте условия в модель линейной регрессии |
removeTerms | Удалите условия из модели линейной регрессии |
step | Улучшите модель линейной регрессии путем добавления или удаления условий |
plot | График поля точек или добавленный переменный график модели линейной регрессии |
plotAdded | Добавленный переменный график модели линейной регрессии |
plotAdjustedResponse | Настроенный график отклика модели линейной регрессии |
plotDiagnostics | Постройте диагностику наблюдения модели линейной регрессии |
plotEffects | Постройте основные эффекты предикторов в модели линейной регрессии |
plotInteraction | Постройте эффекты взаимодействия двух предикторов в модели линейной регрессии |
plotPartialDependence | Создайте графики отдельного условного ожидания (ICE) и частичный график зависимости (PDP) |
plotResiduals | Постройте остаточные значения модели линейной регрессии |
plotSlice | График срезов через подходящую поверхность линейной регрессии |
Подбирайте модель линейной регрессии использование матричного набора входных данных.
Загрузите carsmall
набор данных, матричные входные данные установлены.
load carsmall
X = [Weight,Horsepower,Acceleration];
Подбирайте модель линейной регрессии при помощи fitlm
.
mdl = fitlm(X,MPG)
mdl = Linear regression model: y ~ 1 + x1 + x2 + x3 Estimated Coefficients: Estimate SE tStat pValue __________ _________ _________ __________ (Intercept) 47.977 3.8785 12.37 4.8957e-21 x1 -0.0065416 0.0011274 -5.8023 9.8742e-08 x2 -0.042943 0.024313 -1.7663 0.08078 x3 -0.011583 0.19333 -0.059913 0.95236 Number of observations: 93, Error degrees of freedom: 89 Root Mean Squared Error: 4.09 R-squared: 0.752, Adjusted R-Squared: 0.744 F-statistic vs. constant model: 90, p-value = 7.38e-27
Отображение модели включает формулу модели, оцененные коэффициенты и итоговую статистику модели.
Формула модели в отображении, y ~ 1 + x1 + x2 + x3
, соответствует .
Отображение модели также показывает предполагаемую информацию о коэффициенте, которая хранится в 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
, соответствует
,
где и переменные индикатора, значение которых является тем если значение Model_Year
76 и 82, соответственно. Model_Year
переменная включает три отличных значения, которые можно проверять при помощи unique
функция.
unique(Model_Year)
ans = 3×1
70
76
82
fitlm
выбирает наименьшее значение в Model_Year
как контрольный уровень ('70'
) и создает две переменные индикатора и . Модель включает только две переменные индикатора, потому что матрица проекта становится неполным рангом, если модель включает три переменные индикатора (один для каждого уровня) и термин прерывания.
Модель с полными переменными индикатора
Можно интерпретировать формулу модели mdl
как модель, которая имеет три переменные индикатора без термина прерывания:
.
В качестве альтернативы можно создать модель, которая имеет три переменные индикатора без термина прерывания путем ручного создания переменных индикатора и определения формулы модели.
temp_Year = dummyvar(categorical(Model_Year));
Model_Year_70 = temp_Year(:,1);
Model_Year_76 = temp_Year(:,2);
Model_Year_82 = temp_Year(:,3);
tbl = table(Model_Year_70,Model_Year_76,Model_Year_82,MPG);
mdl = fitlm(tbl,'MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82 - 1')
mdl = Linear regression model: MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82 Estimated Coefficients: Estimate SE tStat pValue ________ _______ ______ __________ Model_Year_70 17.69 1.0328 17.127 3.2371e-30 Model_Year_76 21.574 0.95387 22.617 4.0156e-39 Model_Year_82 31.71 0.99896 31.743 5.2234e-51 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 5.56
Выберите Reference Level in Model
Можно выбрать контрольный уровень путем изменения порядка категорий в категориальной переменной. Во-первых, создайте категориальную переменную Year
.
Year = categorical(Model_Year);
Проверяйте порядок категорий при помощи categories
функция.
categories(Year)
ans = 3x1 cell array
{'70'}
{'76'}
{'82'}
Если вы используете Year
как переменный предиктор, затем fitlm
выбирает первую категорию '70'
как контрольный уровень. Переупорядочьте Year
при помощи reordercats
функция.
Year_reordered = reordercats(Year,{'76','70','82'}); categories(Year_reordered)
ans = 3x1 cell array
{'76'}
{'70'}
{'82'}
Первая категория Year_reordered
'76'
. Создайте модель линейной регрессии MPG
как функция Year_reordered
.
mdl2 = fitlm(Year_reordered,MPG,'VarNames',{'Model_Year','MPG'})
mdl2 = Linear regression model: MPG ~ 1 + Model_Year Estimated Coefficients: Estimate SE tStat pValue ________ _______ _______ __________ (Intercept) 21.574 0.95387 22.617 4.0156e-39 Model_Year_70 -3.8839 1.4059 -2.7625 0.0069402 Model_Year_82 10.136 1.3812 7.3385 8.7634e-11 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 5.56 R-squared: 0.531, Adjusted R-Squared: 0.521 F-statistic vs. constant model: 51.6, p-value = 1.07e-15
mdl2
использование '76'
как контрольный уровень и включает две переменные индикатора и .
Оцените категориальный предиктор
Отображение модели mdl2
включает p-значение каждого термина, чтобы протестировать, равен ли соответствующий коэффициент нулю. Каждое p-значение исследует каждую переменную индикатора. Исследовать категориальную переменную Model_Year
как группа переменных индикатора, используйте anova
. Используйте 'components'
опция (по умолчанию), чтобы возвратить таблицу ANOVA компонента, которая включает статистику Дисперсионного Анализа для каждой переменной в модели кроме постоянного термина.
anova(mdl2,'components')
ans=2×5 table
SumSq DF MeanSq F pValue
______ __ ______ _____ __________
Model_Year 3190.1 2 1595.1 51.56 1.0694e-15
Error 2815.2 91 30.936
Таблица ANOVA компонента включает p-значение Model_Year
переменная, которая меньше, чем p-значения переменных индикатора.
Загрузите hald
набор данных, который измеряет эффект цементного состава на его стабилизирующем тепле.
load hald
Этот набор данных включает переменные ingredients
и heat
. Матричный ingredients
содержит состав процента четырех химикатов, существующих в цементе. Векторный heat
содержит значения для тепла, укрепляющегося после 180 дней для каждой цементной выборки.
Подбирайте устойчивую модель линейной регрессии к данным.
mdl = fitlm(ingredients,heat,'RobustOpts','on')
mdl = Linear regression model (robust fit): y ~ 1 + x1 + x2 + x3 + x4 Estimated Coefficients: Estimate SE tStat pValue ________ _______ ________ ________ (Intercept) 60.09 75.818 0.79256 0.4509 x1 1.5753 0.80585 1.9548 0.086346 x2 0.5322 0.78315 0.67957 0.51596 x3 0.13346 0.8166 0.16343 0.87424 x4 -0.12052 0.7672 -0.15709 0.87906 Number of observations: 13, Error degrees of freedom: 8 Root Mean Squared Error: 2.65 R-squared: 0.979, Adjusted R-Squared: 0.969 F-statistic vs. constant model: 94.6, p-value = 9.03e-07
Для получения дополнительной информации смотрите тему, Устойчивая Регрессия — Уменьшает Эффекты Выброса, который сравнивает результаты устойчивой подгонки к стандартной подгонке наименьших квадратов.
Загрузите hald
набор данных, который измеряет эффект цементного состава на его стабилизирующем тепле.
load hald
Этот набор данных включает переменные ingredients
и heat
. Матричный ingredients
содержит состав процента четырех химикатов, существующих в цементе. Векторный heat
содержит значения для тепла, укрепляющегося после 180 дней для каждой цементной выборки.
Подбирайте пошаговую модель линейной регрессии к данным. Задайте 0.06 как порог для критерия, чтобы добавить термин в модель.
mdl = stepwiselm(ingredients,heat,'PEnter',0.06)
1. Adding x4, FStat = 22.7985, pValue = 0.000576232 2. Adding x1, FStat = 108.2239, pValue = 1.105281e-06 3. Adding x2, FStat = 5.0259, pValue = 0.051687 4. Removing x4, FStat = 1.8633, pValue = 0.2054
mdl = Linear regression model: y ~ 1 + x1 + x2 Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ __________ (Intercept) 52.577 2.2862 22.998 5.4566e-10 x1 1.4683 0.1213 12.105 2.6922e-07 x2 0.66225 0.045855 14.442 5.029e-08 Number of observations: 13, Error degrees of freedom: 10 Root Mean Squared Error: 2.41 R-squared: 0.979, Adjusted R-Squared: 0.974 F-statistic vs. constant model: 230, p-value = 4.41e-09
По умолчанию стартовая модель является постоянной моделью. stepwiselm
выполняет прямой выбор и добавляет x4
x1
, и x2
условия (в том порядке), потому что соответствующие p-значения меньше PEnter
значение 0,06. stepwiselm
затем использование обратное устранение и удаляет x4
из модели, потому что, однажды x2
находится в модели, p-значении x4
больше значения по умолчанию PRemove
, 0.1.
Матрица условий T
t (p + 1) матричные условия определения в модели, где t является количеством условий, p является количеством переменных предикторов и +1 счетом на переменную отклика. Значение T(i,j)
экспонента переменной j
в термине i
.
Например, предположите, что вход включает три переменных предиктора A
B
, и C
и переменная отклика Y
в порядке A
B
C
, и Y
. Каждая строка T
представляет один термин:
[0 0 0 0] — Постоянный термин или прерывание
[0 1 0 0]
B
; эквивалентно, A^0 * B^1 * C^0
[1 0 1 0] —
A*C
[2 0 0 0] —
A^2
[0 1 2 0] —
B*(C^2)
0
в конце каждого термина представляет переменную отклика. В общем случае вектор-столбец из нулей в матрице условий представляет положение переменной отклика. Если у вас есть переменные прогноза и переменные отклика в матрице и вектор-столбце, то необходимо включать 0
для переменной отклика в последнем столбце каждой строки.
Для сокращения времени вычисления на высоко-размерных наборах данных подбирайте модель линейной регрессии использование fitrlinear
функция.
Чтобы упорядочить регрессию, используйте fitrlinear
, lasso
, ridge
, или plsregress
.
fitrlinear
упорядочивает регрессию для высоко-размерных наборов данных с помощью лассо или гребенчатой регрессии.
lasso
удаляет избыточные предикторы в линейной регрессии с помощью лассо или эластичной сети.
ridge
упорядочивает регрессию с коррелироваными условиями с помощью гребенчатой регрессии.
plsregress
упорядочивает регрессию с коррелироваными условиями с помощью частичных наименьших квадратов.
Указания и ограничения по применению:
Когда вы подбираете модель при помощи fitlm
или stepwiselm
, вы не можете снабдить обучающими данными в таблице, которая содержит логический вектор, символьный массив, категориальный массив, массив строк или массив ячеек из символьных векторов. Кроме того, вы не можете использовать 'CategoricalVars'
аргумент пары "имя-значение". Генерация кода не поддерживает категориальные предикторы. Чтобы включать категориальные предикторы в модель, предварительно обработайте категориальные предикторы при помощи dummyvar
прежде, чем подбирать модель.
Для получения дополнительной информации смотрите Введение в Генерацию кода.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.