Подбирайте обобщенную линейную модель регрессии
задает дополнительные опции с помощью одних или нескольких аргументов name-value. Например, можно задать b
= glmfit(X
,y
,distr
,Name,Value
)'Constant','off'
не использовать постоянный термин из модели.
[
также возвращает значение b
,dev
] = glmfit(___)dev
, отклонение подгонки.
Подбирайте обобщенную линейную модель регрессии и вычислите предсказанные (оцененные) значения для данных о предикторе с помощью подобранной модели.
Создайте набор выборочных данных.
x = [2100 2300 2500 2700 2900 3100 ...
3300 3500 3700 3900 4100 4300]';
n = [48 42 31 34 31 21 23 23 21 16 17 21]';
y = [1 2 0 3 8 8 14 17 19 15 17 21]';
x
содержит значения переменного предиктора. Каждый y
значение является количеством успехов в соответствующем количестве испытаний в n
.
Подбирайте модель регрессии пробита для y
на x
.
b = glmfit(x,[y n],'binomial','Link','probit');
Вычислите предполагаемое количество успехов.
yfit = glmval(b,x,'probit','Size',n);
Постройте наблюдаемый процент успеха и оцененный процент успеха по сравнению с x
значения.
plot(x,y./n,'o',x,yfit./n,'-')
Задайте функцию настраиваемой ссылки и используйте ее, чтобы подбирать обобщенную линейную модель регрессии.
Загрузите выборочные данные.
load fisheriris
Вектор-столбец species
содержит ирисовые цветы трех различных разновидностей: setosa, versicolor, и virginica. Матричный meas
содержит четыре типа измерений для цветов, длины и ширины чашелистиков и лепестков в сантиметрах.
Задайте переменные предикторы и переменную отклика.
X = meas(51:end,:);
y = strcmp('versicolor',species(51:end));
Задайте функцию настраиваемой ссылки для функции ссылки логита. Создайте три указателя на функцию, которые задают функцию ссылки, производную функции ссылки и обратной функции ссылки. Сохраните их в массиве ячеек.
link = @(mu) log(mu./(1-mu)); derlink = @(mu) 1./(mu.*(1-mu)); invlink = @(resp) 1./(1+exp(-resp)); F = {link,derlink,invlink};
Подбирайте модель логистической регрессии использование glmfit
с функцией настраиваемой ссылки.
b = glmfit(X,y,'binomial','link',F)
b = 5×1
42.6378
2.4652
6.6809
-9.4294
-18.2861
Подбирайте обобщенную линейную модель при помощи встроенного logit
соедините функцию и сравните результаты.
b = glmfit(X,y,'binomial','link','logit')
b = 5×1
42.6378
2.4652
6.6809
-9.4294
-18.2861
Подбирайте обобщенную линейную модель регрессии, которая содержит точку пересечения и линейный член для каждого предиктора. Выполните тест отклонения, который определяет, соответствует ли модель значительно лучше, чем постоянная модель.
Сгенерируйте выборочные данные с помощью случайных чисел Пуассона с двумя базовыми предикторами X(:,1)
и X(:,2)
.
rng('default') % For reproducibility rndvars = randn(100,2); X = [2 + rndvars(:,1),rndvars(:,2)]; mu = exp(1 + X*[1;2]); y = poissrnd(mu);
Подбирайте обобщенную линейную модель регрессии, которая содержит точку пересечения и линейный член для каждого предиктора.
[b,dev] = glmfit(X,y,'poisson');
Второй выходной аргумент dev
Отклонение подгонки.
Подбирайте обобщенную линейную модель регрессии, которая содержит только точку пересечения. Задайте переменный предиктор как столбец 1 с и задайте 'Constant'
как 'off'
так, чтобы glmfit
не включает постоянный член в модели.
[~,dev_noconstant] = glmfit(ones(100,1),y,'poisson','Constant','off');
Вычислите различие между dev_constant
и dev
.
D = dev_noconstant - dev
D = 2.9533e+05
D
имеет распределение хи-квадрат с 2 степенями свободы. Степени свободы равняются различию в количестве предполагаемых параметров в модели, соответствующей dev
и количество предполагаемых параметров в постоянной модели. Найдите p-значение для теста отклонения.
p = 1 - chi2cdf(D,2)
p = 0
Маленькое p-значение указывает, что модель значительно отличается от константы.
В качестве альтернативы можно создать обобщенную линейную модель регрессии данных Пуассона при помощи fitglm
функция. Отображение модели включает статистическую величину (Chi^2-statistic vs. constant model
) и p-значение.
mdl = fitglm(X,y,'y ~ x1 + x2','Distribution','poisson')
mdl = Generalized linear regression model: log(y) ~ 1 + x1 + x2 Distribution = Poisson Estimated Coefficients: Estimate SE tStat pValue ________ _________ ______ ______ (Intercept) 1.0405 0.022122 47.034 0 x1 0.9968 0.003362 296.49 0 x2 1.987 0.0063433 313.24 0 100 observations, 97 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 2.95e+05, p-value = 0
Можно также использовать devianceTest
функция с объектом подобранной модели.
devianceTest(mdl)
ans=2×4 table
Deviance DFE chi2Stat pValue
__________ ___ __________ ______
log(y) ~ 1 2.9544e+05 99
log(y) ~ 1 + x1 + x2 107.4 97 2.9533e+05 0
X
— Переменные предикторыПеременные предикторы в виде n-by-p числовая матрица, где n является количеством наблюдений и p, являются количеством переменных предикторов. Каждый столбец X
представляет одну переменную, и каждая строка представляет одно наблюдение.
По умолчанию, glmfit
включает постоянный член в модели. Не добавляйте столбец 1 с непосредственно к X
. Можно изменить поведение по умолчанию glmfit
путем определения 'Constant'
аргумент значения имени.
Типы данных: single
| double
y
— Переменная откликаПеременная отклика в виде вектора или матрицы.
Если distr
не 'binomial'
, затем y
должен быть n-by-1 вектор, где n является количеством наблюдений. Каждая запись в y
ответ для соответствующей строки X
. Тип данных должен быть одним или двойным.
Если distr
'binomial'
, затем y
n-by-1 вектор, указывающий на успешность или неуспешность при каждом наблюдении или n-by-2 матрица, первый столбец которой указывает на количество успехов для каждого наблюдения, и второй столбец указывает на количество испытаний за каждое наблюдение.
Типы данных: single
| double
| logical
| categorical
distr
— Распределение переменной отклика'normal'
(значение по умолчанию) | 'binomial'
| 'poisson'
| 'gamma'
| 'inverse gaussian'
Распределение переменной отклика в виде одного из значений в этой таблице.
Значение | Описание |
---|---|
'normal' | Нормальное распределение (значение по умолчанию) |
'binomial' | Биномиальное распределение |
'poisson' | Распределение Пуассона |
'gamma' | Гамма распределение |
'inverse gaussian' | Обратное Распределение Гаусса |
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
b = glmfit(X,y,'normal','link','probit')
указывает, что распределение ответа нормально и сообщает glmfit
чтобы использовать пробит соединяют функцию.B0
— Начальные значения для содействующих оценокНачальные значения для коэффициента оценивают в виде числового вектора. Значениями по умолчанию являются начальные подходящие значения, полученные на входные данные.
Типы данных: single
| double
Constant
— Индикатор для постоянного термина'on'
(значение по умолчанию) | 'off'
Индикатор для постоянного термина (точка пересечения) в подгонке в виде любого 'on'
включать постоянный термин или 'off'
удалить его из модели.
'on'
(значение по умолчанию) — glmfit
включает постоянный член в модели и возвращается (p + 1)-by-1, вектор из коэффициента оценивает b
, где p является количеством предикторов в X
. Коэффициент постоянного термина является первым элементом b
.
'off'
— glmfit
не использует постоянный термин и возвращает p-by-1, вектор из коэффициента оценивает b
.
Пример: 'Constant','off'
EstDisp
— Индикатор, чтобы вычислить дисперсионный параметр'off'
для 'binomial'
и 'poisson'
распределения (значение по умолчанию) | 'on'
Индикатор, чтобы вычислить дисперсионный параметр для 'binomial'
и 'poisson'
распределения в виде 'on'
или 'off'
.
Значение | Описание |
---|---|
'on' | Оцените дисперсионный параметр при вычислении стандартных погрешностей. Предполагаемое дисперсионное значение параметров является суммой остаточных значений Пирсона в квадрате, разделенных на степени свободы для ошибки (DFE). |
'off' | Используйте теоретическое значение 1 при вычислении стандартных погрешностей (значение по умолчанию). |
Подходящая функция всегда оценивает дисперсию для других распределений.
Пример: 'EstDisp','on'
Link
— Функция ссылкиФункция ссылки, чтобы использовать вместо канонической ссылки функционирует в виде одной из встроенных функций ссылки в следующей таблице или функции настраиваемой ссылки.
Соедините имя функции | Функция ссылки | Средняя (обратная) функция |
---|---|---|
'identity' (значение по умолчанию для 'normal' распределение) | f (μ) = μ | μ = Xb |
'log' (значение по умолчанию для 'poisson' распределение) | f (μ) = журнал (μ) | μ = exp (Xb) |
'logit' (значение по умолчанию для 'binomial' распределение) | f (μ) = журнал (μ / (1 – μ)) | μ = exp (Xb) / (1 + exp (Xb)) |
'probit' | f (μ) = Φ–1(μ), где Φ является кумулятивной функцией распределения стандартного нормального распределения | μ = Φ (Xb) |
| f (μ) = журнал (-журнал (μ)) | μ = exp (–exp (Xb)) |
'comploglog' | f (μ) = журнал (-журнал (1 – μ)) | μ = 1 – exp (–exp (Xb)) |
'reciprocal' (значение по умолчанию для 'gamma' распределение) | f (μ) = 1/μ | μ = 1 / (Xb) |
p (номер, значение по умолчанию для 'inverse gaussian' распределение с p = –2) | f (μ) = μp | μ = Xb1/p |
'Link'
по умолчанию значение является канонической функцией ссылки, которая зависит от распределения переменной отклика, заданной
distr
аргумент.
Можно задать функцию настраиваемой ссылки использование массива структур или массива ячеек.
Структура с тремя полями. Каждое поле структуры (например, S
) содержит указатель на функцию, который принимает вектор из входных параметров и возвращает вектор, одного размера:
S.Link
— Функция ссылки, f (μ) = S.Link
(μ)
S.Derivative
— Производная функции ссылки
S.Inverse
— Обратная функция ссылки, μ = S.Inverse
xb
Массив ячеек формы {FL FD FI}
это задает функцию ссылки (FL(mu)
), производная функции ссылки (FD = dFL(mu)/dmu
), и обратная функция ссылки (FI = FL^(–1)
). Каждая запись содержит указатель на функцию, который принимает вектор из входных параметров и возвращает вектор, одного размера.
Функция ссылки задает отношение f (μ) = X *b между средним ответом μ и линейной комбинацией предикторов X *b.
Пример: 'Link','probit'
Типы данных: single
| double
| char
| string
| struct
| cell
Offset
— Переменная OffsetВозместите переменную в подгонке в виде числового вектора с той же длиной как ответ y
.
glmfit
использование Offset
как дополнительный предиктор с содействующим значением, зафиксированным в 1. Другими словами, формула для подбора кривой
f (μ) = Offset + X*b
,
где f является функцией ссылки, μ является средним ответом, и X *b является линейной комбинацией предикторов X. Offset
предиктор имеет коэффициент 1
.
Например, рассмотрите модель регрессии Пуассона. Предположим по теоретическим причинам, количество количеств должно быть пропорционально предиктору A
. При помощи журнала соединяют функцию и определение log(A)
как смещение, можно обеспечить модель, чтобы удовлетворить этому теоретическому ограничению.
Типы данных: single
| double
Options
— Опции оптимизацииstatset ('glmfit
')
(значение по умолчанию) | структураОпции оптимизации в виде структуры. Этот аргумент определяет параметры управления для итеративного алгоритма это glmfit
использование.
Создайте 'Options'
значение при помощи функции statset
или путем создания массива структур, содержащего поля и значения, описан в этой таблице.
Имя поля | Значение | Значение по умолчанию |
---|---|---|
Display | Объем информации отображен алгоритмом
| 'off' |
MaxIter | Максимальное количество итераций позволено в виде положительного целого числа | 100
|
TolX | Допуск завершения к параметрам в виде положительной скалярной величины | 1e-6 |
Можно также ввести statset ('
в Командном окне, чтобы видеть имена и значения по умолчанию полей это glmfit
')glmfit
принимает в 'Options'
аргумент значения имени.
Пример: 'Options',statset('Display','final','MaxIter',1000)
задает, чтобы отобразить итоговую информацию результатов итеративного алгоритма и изменить максимальное количество итераций, позволенных 1 000.
Типы данных: struct
Weights
— Веса наблюденияones(n,1)
(значение по умолчанию) | n-by-1 вектор из неотрицательных скалярных значенийВеса наблюдения в виде n-by-1 вектор из неотрицательных скалярных значений, где n является количеством наблюдений.
Типы данных: single
| double
b
— Содействующие оценкиСодействующие оценки, возвращенные как числовой вектор.
Если 'Constant'
'on'
(значение по умолчанию), затем glmfit
включает постоянный член в модели и возвращается (p + 1)-by-1, вектор из коэффициента оценивает b
, где p является количеством предикторов в X
. Коэффициент постоянного термина является первым элементом b
.
Если 'Constant'
'off'
то glmfit
не использует постоянный термин и возвращает p-by-1, вектор из коэффициента оценивает b
.
dev
— Отклонение подгонкиОтклонение подгонки, возвращенной как числовое значение. Отклонение полезно для сравнения двух моделей, когда одна модель является особым случаем другой модели. Различие между отклонением этих двух моделей имеет распределение хи-квадрат со степенями свободы, равными различию в количестве предполагаемых параметров между этими двумя моделями.
Для получения дополнительной информации смотрите Отклонение.
stats
— Статистика моделиСтатистика модели, возвращенная как структура со следующими полями:
beta
— Коэффициент оценивает b
dfe
— Степени свободы для ошибки
sfit
— Предполагаемый дисперсионный параметр
s
— Теоретический или оцененный дисперсионный параметр
estdisp
— 0, когда 'EstDisp'
'off'
и 1, когда 'EstDisp'
'on'
covb
— Предполагаемая ковариационная матрица для b
se
— Вектор из стандартных погрешностей коэффициента оценивает b
coeffcorr
— Корреляционная матрица для b
t
— статистика t для b
p
— p-значения для b
resid
— Вектор из остаточных значений
residp
— Вектор из остаточных значений Пирсона
residd
— Вектор из остаточных значений отклонения
resida
— Вектор из остаточных значений Anscombe
Если вы оцениваете дисперсионный параметр для бинома или распределения Пуассона, то stats.s
равно stats.sfit
. Кроме того, элементы stats.se
отличайтесь факторным stats.s
от их теоретических значений.
Отклонение является обобщением остаточной суммы квадратов. Это измеряет качество подгонки по сравнению с влажной моделью.
Отклонение модели M 1 является дважды различием между логарифмической правдоподобностью модели M 1 и влажной моделью M s. Влажная модель является моделью с максимальным количеством параметров, которые можно оценить.
Например, если у вас есть наблюдения n (y i, i = 1, 2..., n) с потенциально различными значениями для X iTβ, затем можно задать влажную модель параметрами n. Позвольте L (b, y) обозначают максимальное значение функции правдоподобия для модели параметрами b. Затем отклонение модели M 1
где b 1 и b s содержит предполагаемые параметры для модели M 1 и влажной модели, соответственно. Отклонение имеет распределение хи-квадрат с n – степени свободы p, где n является количеством параметров во влажной модели, и p является количеством параметров в модели M 1.
Примите, что у вас есть две различных обобщенных линейных модели M регрессии 1 и M 2, и M 1 имеет подмножество терминов в M 2. Можно оценить припадок моделей путем сравнения отклонений D 1 и D 2 из этих двух моделей. Различие отклонений
Асимптотически, различие D имеет распределение хи-квадрат со степенями свободы v, равный различию в количестве параметров, оцененных в M 1 и M 2. Можно получить p - значение для этого теста при помощи 1 – chi2cdf(D,v)
.
Как правило, вы исследуете D с помощью модели M 2 с постоянным термином и никакими предикторами. Поэтому D имеет распределение хи-квадрат с p – 1 степень свободы. Если дисперсия оценивается, различие, разделенное на предполагаемую дисперсию, имеет распределение F с p – 1 степенью свободы числителя и n – степени свободы знаменателя p.
glmfit
полезно, когда вам просто нужны выходные аргументы функции или, когда это необходимо, повторить подбирающую модель многократно в цикле. Если необходимо исследовать подобранную модель далее, создайте обобщенный линейный объект модели регрессии GeneralizedLinearModel
при помощи fitglm
или stepwiseglm
. GeneralizedLinearModel
объект обеспечивает больше функций, чем glmfit
.
Используйте свойства GeneralizedLinearModel
исследовать подобранную модель. Свойства объектов включают информацию о содействующих оценках, итоговой статистике, подходящем методе и входных данных.
Используйте объектные функции GeneralizedLinearModel
чтобы предсказать ответы и изменить, оцените и визуализируйте обобщенную линейную модель регрессии.
Можно найти информацию в выходе glmfit
использование свойств и объектных функций GeneralizedLinearModel
.
Выход glmfit | Эквивалентные стоимости в GeneralizedLinearModel |
---|---|
b | Смотрите Estimate столбец Coefficients свойство. |
dev | Смотрите Deviance свойство. |
stats | Смотрите отображение модели в Командном окне. Можно найти статистику в свойствах модели ( Дисперсионный параметр в |
[1] Добсон, A. J. Введение в обобщенные линейные модели. Нью-Йорк: Chapman & Hall, 1990.
[2] Маккуллаг, P. и Дж. А. Нелдер. Обобщенные линейные модели. Нью-Йорк: Chapman & Hall, 1990.
[3] Collett, D. Моделирование двоичных данных. Нью-Йорк: Chapman & Hall, 2002.
Эта функция полностью поддерживает массивы графического процессора. Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox).
glmval
| regress
| regstats
| GeneralizedLinearModel
| fitglm
| stepwiseglm
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.