Класс GeneralizedLinearModel

Суперклассы: CompactGeneralizedLinearModel

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

Описание

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

Конструкция

mdl = fitglm(tbl) или mdl = fitglm(X,y) создает обобщенную линейную модель таблицы или массива набора данных tbl, или ответов y к матрице данных X. Для получения дополнительной информации смотрите fitglm.

mdl = stepwiseglm(tbl) или mdl = stepwiseglm(X,y) создает обобщенную линейную модель таблицы или массива набора данных tbl, или ответов y к матрице данных X, с неважными исключенными предикторами. Для получения дополнительной информации смотрите stepwiseglm.

Входные параметры

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

Входные данные, заданные как таблица или массив набора данных. Когда modelspec является формулой, формула задает переменные прогноза и переменные отклика. В противном случае, если вы не задаете переменные прогноза и переменные отклика, последняя переменная в tbl является переменной отклика, и другие - переменные прогноза по умолчанию.

Переменные прогноза и переменная отклика могут быть числовыми, логическими, категориальными, символ или строка. Переменная отклика может иметь тип данных кроме числового, только если 'Distribution' является 'binomial'.

Чтобы установить различный столбец как переменную отклика, используйте аргумент пары "имя-значение" ResponseVar. Чтобы использовать подмножество столбцов как предикторы, используйте аргумент пары "имя-значение" PredictorVars.

Переменные прогноза, заданные как n-by-p матрица, где n является количеством наблюдений и p, являются количеством переменных прогноза. Каждый столбец X представляет одну переменную, и каждая строка представляет одно наблюдение.

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

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

Переменная отклика, заданная как n-by-1 вектор, где n является количеством наблюдений. Каждая запись в y является ответом для соответствующей строки X.

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

beta = mdl.Coefficients.Estimate

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

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

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

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

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

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

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

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

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

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

Все эти количества вычисляются в шкале линейного предиктора. Например, в уравнении, которое задает матрицу шляпы:

Yfit = glm.Fitted.LinearPredictor
Y = glm.Fitted.LinearPredictor + glm.Residuals.LinearPredictor

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

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

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

Например, функцией отклонения для биномиального распределения является p (1–p)/n, где p является параметром вероятности, и n является параметром объема выборки. Если Dispersion около 1, отклонение данных, кажется, соглашается с теоретическим отклонением биномиального распределения. Если Dispersion больше, чем 1, набор данных “сверхрассеивается” относительно биномиального распределения.

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

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

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

  • DispersionEstimated может быть false только для дистрибутивов 'poisson' или 'binomial'.

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

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

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

Обобщенная информация распределения, указанная как структура со следующими полями, относящимися к обобщенному распределению.

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

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

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

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

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

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

f = mdl.Fitted.Response

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

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

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

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

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

mdl.Formula

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

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

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

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

Критерий образцового сравнения, заданного как структура с этими полями:

  • AIC — Критерий информации о Akaike.     AIC = –2*logL + 2*m, где logL является loglikelihood и 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

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

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

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

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

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

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

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

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

μ ~ Offset + (terms involving real predictors)

с предиктором Offset, имеющим коэффициент 1.

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

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

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

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

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

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

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

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

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

r = mdl.Residuals.Raw

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

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

  • raw содержит различие между наблюдаемыми и ожидаемыми значениями.

  • standardized является невязкой, стандартизированной обычным способом.

  • studentized совпадает со стандартизированными значениями, потому что эта невязка не используется в оценке остаточного стандартного отклонения.

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

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

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

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

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

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

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

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

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

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

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

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

Rsquared = SSR/SST = 1 - SSE/SST.

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

r2 = mdl.Rsquared.Adjusted

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

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

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

Теорема Пифагора подразумевает

SST = SSE + SSR,

где SST является полной суммой квадратов, SSE является суммой квадратичных невязок, и SSR является суммой квадратов регрессии.

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

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

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

Теорема Пифагора подразумевает

SST = SSE + SSR,

где SST является полной суммой квадратов, SSE является суммой квадратичных невязок, и SSR является суммой квадратов регрессии.

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

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

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

Теорема Пифагора подразумевает

SST = SSE + SSR,

где SST является полной суммой квадратов, SSE является суммой квадратичных невязок, и SSR является суммой квадратов регрессии.

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

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

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

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

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

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

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

  • запуск Первый шаг

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

  • Удаление Термин удален

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

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

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

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

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

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

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

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

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

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

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

InModelИндикатор которого переменные находятся в подобранной модели, заданной как логический вектор. Значением является true, если модель включает переменную.
IsCategoricalИндикатор категориальных переменных, заданных как логический вектор. Значением является true, если переменная является категориальной.

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

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

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

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

  • Если подгонка основана на таблице или наборе данных, это свойство обеспечивает имена переменных в таблице или наборе данных.

  • Если подгонка основана на матрице предиктора и векторе отклика, VariableNames содержит значения, заданные аргументом пары "имя-значение" 'VarNames' подходящего метода. Значением по умолчанию 'VarNames' является {'x1','x2',...,'xn','y'}.

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

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

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

Входные данные, заданные как таблица. Variables содержит и предиктор и значения ответа. Если подгонка основана на таблице или массиве набора данных, Variables содержит все данные из массива набора данных или таблицы. В противном случае Variables является таблицей, составленной из матрицы входных данных X и ответ векторный y.

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

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

Методы

addTermsДобавьте условия в обобщенную линейную модель
компактныйКомпактная обобщенная модель линейной регрессии
подгонка(Не Рекомендуемый), Создают обобщенную модель линейной регрессии
plotDiagnosticsПостройте диагностику обобщенной модели линейной регрессии
plotResidualsПостройте невязки обобщенной модели линейной регрессии
removeTermsУдалите условия из обобщенной линейной модели
шагУлучшите обобщенную модель линейной регрессии путем добавления или удаления условий
пошагово(Не Рекомендуемый), Создают обобщенную модель линейной регрессии пошаговой регрессией

Унаследованные методы

coefCIДоверительные интервалы содействующих оценок обобщенной линейной модели
coefTestЛинейный тест гипотезы на обобщенных коэффициентах модели линейной регрессии
devianceTestАнализ отклонения
dispОтобразите обобщенную модель линейной регрессии
fevalОцените обобщенный прогноз модели линейной регрессии
plotSliceГрафик срезов через подходящую обобщенную поверхность линейной регрессии
предсказатьПредскажите ответ обобщенной модели линейной регрессии
случайныйМоделируйте ответы для обобщенной модели линейной регрессии

Копировать семантику

Значение. Чтобы изучить, как классы значения влияют на операции копии, смотрите Копирование Объектов (MATLAB).

Примеры

свернуть все

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

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

load hospital
ds = hospital; % just to use the ds name

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

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

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

mdl = fitglm(ds,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 предикторов, и создайте обобщенную линейную модель пошагово, чтобы видеть, используют ли они только правильные предикторы.

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

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

Соответствуйте обобщенной линейной модели с помощью распределения Пуассона.

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

Больше о

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

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

Представленный в R2012a