GeneralizedLinearModel

Обобщенный линейный класс модели регрессии

Описание

GeneralizedLinearModel подбиравшая обобщенная линейная модель регрессии. Обобщенная линейная модель регрессии является специальным классом нелинейных моделей, которые описывают нелинейное отношение между ответом и предикторами. Обобщенная линейная модель регрессии обобщила характеристики модели линейной регрессии. Переменная отклика следует за нормальным, биномиальным, Пуассоном, гаммой или обратным Распределением Гаусса параметрами включая средний ответ μ. Функция ссылки f задает отношение между μ и линейной комбинацией предикторов.

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

Создание

Создайте GeneralizedLinearModel объект при помощи fitglm или stepwiseglm.

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

Свойства

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

Содействующие оценки

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

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

Для получения дополнительной информации смотрите Содействующие Стандартные погрешности и Доверительные интервалы.

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

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

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

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

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

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

  • Estimate — Предполагаемое содействующее значение

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

  • tStatt - статистическая величина для теста, что коэффициент является нулем

  • pValuep - значение для t - статистическая величина

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

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

beta = mdl.Coefficients.Estimate

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

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

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

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

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

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

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

Итоговая статистика

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

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

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

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

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

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

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

Диагностика наблюдения в виде таблицы, которая содержит одну строку для каждого наблюдения и столбцов, описанных в этой таблице.

СтолбецЗначениеОписание
LeverageДиагональные элементы HatMatrixLeverage поскольку каждое наблюдение указывает, до какой степени подгонка определяется наблюдаемыми значениями предиктора. Значение близко к 1 указывает, что подгонка в основном определяется тем наблюдением с небольшим вкладом от других наблюдений. Значение близко к 0 указывает, что подгонка в основном определяется другими наблюдениями. Для модели с P коэффициенты и N наблюдения, среднее значение Leverage P/N. Leverage значение, больше, чем 2*P/N указывает на высокие рычаги.
CooksDistanceРасстояние повара масштабированного изменения в подходящих значенияхCooksDistance мера масштабированного изменения в подходящих значениях. Наблюдение с CooksDistance больше, чем три раза расстояние среднего Кука может быть выброс.
HatMatrixМатрица проекции, чтобы вычислить адаптированный из наблюдаемых ответовHatMatrix N- N матрицируйте таким образом что   Fitted = HatMatrix*Y, где Y вектор отклика и Fitted вектор из подходящих значений отклика.

Программное обеспечение вычисляет эти значения по шкале линейной комбинации предикторов, сохраненных в LinearPredictor поле Fitted и Residuals свойства. Например, программное обеспечение вычисляет диагностические значения при помощи подходящего ответа и настроенных значений отклика из модели mdl.

Yfit = mdl.Fitted.LinearPredictor
Yadjusted = mdl.Fitted.LinearPredictor + mdl.Residuals.LinearPredictor

Diagnostics содержит информацию, которая полезна в нахождении выбросов и влиятельных наблюдений. Для получения дополнительной информации смотрите Рычаги, Расстояние Повара и Матрицу Шляпы.

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

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

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

HatMatrix = mdl.Diagnostics.HatMatrix;

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

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

Масштабный коэффициент отклонения ответа в виде числового скаляра.

Если 'DispersionFlag' аргумент пары "имя-значение" fitglm или stepwiseglm true, затем функция оценивает Dispersion масштабный коэффициент в вычислении отклонения ответа. Отклонение ответа равняется теоретическому отклонению, умноженному на масштабный коэффициент. Например, функцией отклонения для биномиального распределения является p (1–p)/n, где p является параметром вероятности, и n является параметром объема выборки. Если Dispersion около 1, отклонение данных, кажется, соглашается с теоретическим отклонением биномиального распределения. Если Dispersion больше, чем 1, набор данных “сверхрассеивается” относительно биномиального распределения.

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

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

Отметьте, чтобы указать ли fitglm используемый Dispersion масштабный коэффициент, чтобы вычислить стандартные погрешности для коэффициентов в Coefficients.SEВ виде логического значения. Если DispersionEstimated false, fitglm используемый теоретическое значение отклонения.

  • DispersionEstimated может быть false только для бинома и распределений Пуассона.

  • Установите DispersionEstimated путем установки 'DispersionFlag' аргумент пары "имя-значение" fitglm или stepwiseglm.

Типы данных: логический

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

Адаптированные (предсказанные) значения на основе входных данных в виде таблицы, которая содержит одну строку для каждого наблюдения и столбцов, описанных в этой таблице.

СтолбецОписание
ResponseОжидаемые значения по шкале ответа
LinearPredictorОжидаемые значения по шкале линейной комбинации предикторов (то же самое, когда функция ссылки применилась к Response подходящие значения)
ProbabilityПодходящие вероятности (включенный только с биномиальным распределением)

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

f = mdl.Fitted.Response

Используйте predict вычислить предсказания для других значений предиктора или вычислить доверительные границы на Fitted.

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

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

Логарифмическая правдоподобность распределения модели в значениях отклика в виде числового значения. Среднее значение адаптировано из модели, и другие параметры оцениваются как часть подгонки модели.

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

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

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

  • 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

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

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

СтолбецОписание
RawНаблюдаемый минус подходящие значения
LinearPredictorОстаточные значения линейной шкалы предиктора, равняйтесь настроенному значению отклика минус подходящая линейная комбинация предикторов
PearsonНеобработанные остаточные значения, разделенные на предполагаемое стандартное отклонение ответа
AnscombeОстаточные значения, заданные на преобразованных данных с преобразованием, выбранным, чтобы удалить скошенность
DevianceОстаточные значения на основе вклада каждого наблюдения к отклонению

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

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

r = mdl.Residuals.Raw

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

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

Значение R-squared для модели в виде структуры с пятью полями:

  • Ordinary — Обычный (неприспособленный) R-squared

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

  • LLR — Отношение логарифмической правдоподобности

  • Deviance — Отклонение

  • AdjGeneralized — Настроенный обобщил R-squared

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

Rsquared = SSR/SST

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

r2 = mdl.Rsquared.Adjusted

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

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

Сумма квадратичных невязок (остаточные значения) в виде числового значения.

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

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

Сумма квадратов регрессии в виде числового значения. Сумма квадратов регрессии равна сумме отклонений в квадрате подходящих значений от их среднего значения.

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

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

Полная сумма квадратов в виде числового значения. Полная сумма квадратов равна сумме отклонений в квадрате вектора отклика y от mean(y).

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

Подходящая информация

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

Пошагово подходящая информация в виде структуры с полями, описанными в этой таблице.

Поле Описание
StartФормула, представляющая стартовую модель
LowerФормула, представляющая модель нижней границы. Условия в Lower должен остаться в модели.
UpperФормула, представляющая модель верхней границы. Модель не может содержать больше условий, чем Upper.
CriterionКритерий используется для пошагового алгоритма, такого как 'sse'
PEnterПорог для Criterion добавить термин
PRemoveПорог для Criterion удалить термин
HistoryТаблица, представляющая шаги, сделанные в подгонке

History таблица содержит одну строку для каждого шага, включая начальную подгонку и столбцы, описанные в этой таблице.

СтолбецОписание
Action

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

  • 'Start' — Первый шаг

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

  • 'Remove' — Термин удален

TermName
  • Если Action 'Start', TermName задает стартовую спецификацию модели.

  • Если Action 'Add' или 'Remove', TermName задает термин, добавленный или удаленный на шаге.

TermsСпецификация модели в Матрице Условий
DFСтепени свободы регрессии после шага
delDFИзменитесь в степенях свободы регрессии от предыдущего шага (отрицательный для шагов, которые удаляют термин),
DevianceОтклонение (остаточная сумма квадратов) на шаге (только для обобщенной линейной модели регрессии)
FStatF-статистическая-величина, которая приводит к шагу
PValuep-значение F-статистической-величины

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

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

Входные данные

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

Обобщенная информация о распределении в виде структуры с полями, описанными в этой таблице.

Поле Описание
NameИмя распределения: 'normal', 'binomial', 'poisson'\Gamma, или 'inverse gaussian'
DevianceFunctionФункция, которая вычисляет компоненты отклонения как функция подходящих значений параметров и значений отклика
VarianceFunctionФункция, которая вычисляет теоретическое отклонение для распределения как функция подходящих значений параметров. Когда DispersionEstimated true, Dispersion умножает функцию отклонения в расчете содействующих стандартных погрешностей.

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

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

Информация модели в виде LinearFormula объект.

Отобразите формулу подобранной модели mdl использование записи через точку:

mdl.Formula

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

Количество наблюдений подходящая функция используется в подборе кривой в виде положительного целого числа. NumObservations количество наблюдений, предоставленных в исходной таблице, наборе данных или матрице, минус любые исключенные строки (набор с 'Exclude' аргумент пары "имя-значение") или строки с отсутствующими значениями.

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

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

Количество переменных предикторов раньше подбирало модель в виде положительного целого числа.

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

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

Количество переменных во входных данных в виде положительного целого числа. NumVariables количество переменных в исходной таблице или наборе данных или общем количестве столбцов в матрице предиктора и векторе отклика.

NumVariables также включает любые переменные, которые не используются, чтобы подбирать модель как предикторы или как ответ.

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

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

Информация о наблюдении в виде n-by-4 таблица, где n равен количеству строк входных данных. ObservationInfo содержит столбцы, описанные в этой таблице.

СтолбецОписание
WeightsВеса наблюдения в виде числового значения. Значением по умолчанию является 1.
ExcludedИндикатор исключенных наблюдений в виде логического значения. Значением является true если вы исключаете наблюдение из подгонки при помощи 'Exclude' аргумент пары "имя-значение".
MissingИндикатор недостающих наблюдений в виде логического значения. Значением является true если наблюдение отсутствует.
SubsetИндикатор того, использует ли подходящая функция наблюдение в виде логического значения. Значением является true если наблюдение не исключено или пропавшие без вести, означая, что подходящая функция использует наблюдение.

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

w = mdl.ObservationInfo.Weights

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

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

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

  • Если подгонка основана на таблице или наборе данных, содержащем имена наблюдения, ObservationNames использование те имена.

  • В противном случае, ObservationNames массив пустой ячейки.

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

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

Возместите переменную в виде числового вектора с той же длиной как количество строк в данных. Offset передается от fitglm или stepwiseglm в 'Offset' аргумент пары "имя-значение". Подходящие функции используют Offset как дополнительный переменный предиктор с содействующим значением, зафиксированным в 1. Другими словами, формула для подбора кривой

f (μ) ~ Offset + (terms involving real predictors)

где f является функцией ссылки. Offset предиктор имеет коэффициент 1.

Например, рассмотрите модель регрессии Пуассона. Предположим, что количество количеств известно по теоретическим причинам быть пропорциональным предиктору A. При помощи журнала соединяют функцию и путем определения log(A) как смещение, можно обеспечить модель, чтобы удовлетворить этому теоретическому ограничению.

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

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

Имена предикторов раньше подбирали модель в виде массива ячеек из символьных векторов.

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

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

Имя переменной отклика в виде вектора символов.

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

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

Информация о переменных содержится в VariablesВ виде таблицы с одной строкой для каждой переменной и столбцов, описанных в этой таблице.

СтолбецОписание
ClassПеременный класс в виде массива ячеек из символьных векторов, такого как 'double' и 'categorical'
Range

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

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

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

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Симулируйте ответы со случайным шумом для обобщенной линейной модели регрессии
coefCIДоверительные интервалы содействующих оценок обобщенной линейной модели регрессии
coefTestЛинейный тест гипотезы на обобщенных линейных коэффициентах модели регрессии
devianceTestАнализ отклонения для обобщенной линейной модели регрессии
partialDependenceВычислите частичную зависимость
plotDiagnosticsПостройте диагностику наблюдения обобщенной линейной модели регрессии
plotPartialDependenceСоздайте графики отдельного условного ожидания (ICE) и частичный график зависимости (PDP)
plotResidualsПостройте остаточные значения обобщенной линейной модели регрессии
plotSliceГрафик срезов через подходящую обобщенную линейную поверхность регрессии
gatherСоберите свойства линейной или обобщенной линейной модели регрессии

Примеры

свернуть все

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

Загрузите hospital набор данных.

load hospital

Преобразуйте массив набора данных в таблицу.

tbl = dataset2table(hospital);

Задайте модель с помощью формулы, которая включает двухсторонние взаимодействия и условия более низкоуровневые.

modelspec = 'Smoker ~ Age*Weight*Sex - Age:Weight:Sex';

Создайте обобщенную линейную модель.

mdl = fitglm(tbl,modelspec,'Distribution','binomial')
mdl = 
Generalized linear regression model:
    logit(Smoker) ~ 1 + Sex*Age + Sex*Weight + Age*Weight
    Distribution = Binomial

Estimated Coefficients:
                        Estimate         SE         tStat      pValue 
                       ___________    _________    ________    _______

    (Intercept)            -6.0492       19.749     -0.3063    0.75938
    Sex_Male               -2.2859       12.424    -0.18399    0.85402
    Age                    0.11691      0.50977     0.22934    0.81861
    Weight                0.031109      0.15208     0.20455    0.83792
    Sex_Male:Age          0.020734      0.20681     0.10025    0.92014
    Sex_Male:Weight        0.01216     0.053168     0.22871     0.8191
    Age:Weight         -0.00071959    0.0038964    -0.18468    0.85348


100 observations, 93 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 5.07, p-value = 0.535

Большое p-значение указывает, что сила модели не отличается статистически от константы.

Создайте данные об ответе с помощью трех из 20 переменных предикторов и создайте обобщенную линейную модель с помощью ступенчатой регрессии из постоянной модели, чтобы видеть если stepwiseglm находит правильные предикторы.

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

rng default % for reproducibility
X = randn(100,20);
mu = exp(X(:,[5 10 15])*[.4;.2;.3] + 1);
y = poissrnd(mu);

Подбирайте обобщенную линейную модель регрессии использование распределения Пуассона. Задайте стартовую модель как модель, которая содержит только константу (прерывание) термин. Кроме того, задайте модель с прерыванием и линейным членом для каждого предиктора как самая большая модель, чтобы рассмотреть как подгонку при помощи 'Upper' аргумент пары "имя-значение".

mdl =  stepwiseglm(X,y,'constant','Upper','linear','Distribution','poisson')
1. Adding x5, Deviance = 134.439, Chi2Stat = 52.24814, PValue = 4.891229e-13
2. Adding x15, Deviance = 106.285, Chi2Stat = 28.15393, PValue = 1.1204e-07
3. Adding x10, Deviance = 95.0207, Chi2Stat = 11.2644, PValue = 0.000790094
mdl = 
Generalized linear regression model:
    log(y) ~ 1 + x5 + x10 + x15
    Distribution = Poisson

Estimated Coefficients:
                   Estimate       SE       tStat       pValue  
                   ________    ________    ______    __________

    (Intercept)     1.0115     0.064275    15.737    8.4217e-56
    x5             0.39508     0.066665    5.9263    3.0977e-09
    x10            0.18863      0.05534    3.4085     0.0006532
    x15            0.29295     0.053269    5.4995    3.8089e-08


100 observations, 96 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 91.7, p-value = 9.61e-20

stepwiseglm находит три правильных предиктора: x5, x10, и x15.

Больше о

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

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

Представленный в R2012a
Для просмотра документации необходимо авторизоваться на сайте