Класс: GeneralizedLinearModel
(Не Рекомендуемый), Создают обобщенную модель линейной регрессии
GeneralizedLinearModel.fit
не рекомендуется. Используйте fitglm
вместо этого.
mdl = GeneralizedLinearModel.fit(tbl)
mdl = GeneralizedLinearModel.fit(X,y)
mdl = GeneralizedLinearModel.fit(...,modelspec)
mdl = GeneralizedLinearModel.fit(...,Name,Value)
mdl =
GeneralizedLinearModel.fit(...,modelspec,Name,Value)
создает обобщенную линейную модель таблицы или массива набора данных mdl
= GeneralizedLinearModel.fit(tbl
)tbl
.
создает обобщенную линейную модель ответов mdl
= GeneralizedLinearModel.fit(X
,y
)y
к матрице данных X
.
создает обобщенную линейную модель, как задано mdl
= GeneralizedLinearModel.fit(...,modelspec
)modelspec
.
или mdl
= GeneralizedLinearModel.fit(...,Name,Value
)
создает обобщенную линейную модель с дополнительными опциями, заданными одним или несколькими аргументами пары mdl
=
GeneralizedLinearModel.fit(...,modelspec
,Name,Value
)Name,Value
.
tbl
Входные данныеВходные данные, заданные как таблица или массив набора данных. Когда modelspec
является формулой, формула задает переменные прогноза и переменные отклика. В противном случае, если вы не задаете переменные прогноза и переменные отклика, последняя переменная в tbl
является переменной отклика, и другие - переменные прогноза по умолчанию.
Переменные прогноза и переменная отклика могут быть числовыми, логическими, категориальными, символ или строка. Переменная отклика может иметь тип данных кроме числового, только если 'Distribution'
является 'binomial'
.
Чтобы установить различный столбец как переменную отклика, используйте аргумент пары "имя-значение" ResponseVar
. Чтобы использовать подмножество столбцов как предикторы, используйте аргумент пары "имя-значение" PredictorVars
.
X
Переменные прогнозаПеременные прогноза, заданные как n-by-p матрица, где n является количеством наблюдений и p, являются количеством переменных прогноза. Каждый столбец X
представляет одну переменную, и каждая строка представляет одно наблюдение.
По умолчанию существует постоянный член в модели, если вы явным образом не удаляете его, не включайте столбец 1 с в X
.
Типы данных: single | double
y
Переменная откликаПеременная отклика, заданная как n-by-1 вектор, где n является количеством наблюдений. Каждая запись в y
является ответом для соответствующей строки X
.
Типы данных: single
| double
| logical
| categorical
modelspec
— Образцовая спецификация'Y ~ terms'
Образцовая спецификация, заданная как одно из следующего:
Вектор символов или скаляр строки определение типа модели.
Значение | Тип модели |
---|---|
'constant' | Модель содержит только константу (прерывание) термин. |
'linear' | Модель содержит прерывание и линейный член для каждого предиктора. |
'interactions' | Модель содержит прерывание, линейный член для каждого предиктора и все продукты пар отличных предикторов (никакие условия в квадрате). |
'purequadratic' | Модель содержит термин прерывания и линейный и придает условиям квадратную форму для каждого предиктора. |
'quadratic' | Модель содержит термин прерывания, линейный, и придает квадратную форму условиям для каждого предиктора и всем продуктам пар отличных предикторов. |
| Модель является полиномом со всеми условиями до степени i в первом предикторе, степень j во втором предикторе, и так далее. Задайте максимальную степень для каждого предиктора при помощи цифр 0 хотя 9. Модель содержит периоды взаимодействия, но степень каждого периода взаимодействия не превышает максимальное значение заданных степеней. Например, 'poly13' имеет прерывание и x 1, x 2, x 22, x 23, x 1*x2, и x 1*x22 условия, где x 1 и x 2 является первыми и вторыми предикторами, соответственно. |
t (p +1) матрица, а именно, матрица условий, задавая условия, чтобы включать в модель, где t является количеством условий и p, является количеством переменных прогноза, и плюс каждый для переменной отклика.
Вектор символов или скаляр строки представление формулы в форме
,'Y ~ terms'
terms
находится в Обозначении Уилкинсона.Пример: 'quadratic'
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'BinomialSize'
— Количество испытаний за биномиальное распределениеКоличество испытаний за биномиальное распределение, которое является объемом выборки, заданным как пара, разделенная запятой, состоящая из скалярного значения или вектор той же длины как ответ. Это - параметр n
для подходящего биномиального распределения. BinomialSize
применяется только, когда параметром Distribution
является 'binomial'
.
Если BinomialSize
является скалярным значением, которое означает, что все наблюдения имеют то же количество испытаний.
Как альтернатива BinomialSize
, можно задать ответ как 2D вектор-столбец с количествами в столбце 1 и BinomialSize
в столбце 2.
Типы данных: single | double
'CategoricalVars'
— Категориальный список переменныхКатегориальный список переменных, заданный как пара, разделенная запятой, состоящая из 'CategoricalVars'
и или массив строк или массив ячеек из символьных векторов, содержащий категориальные имена переменных в таблице или массиве набора данных tbl
или логический или числовой индексный вектор указание, какие столбцы являются категориальными.
Если данные находятся в таблице или массиве набора данных tbl
, то по умолчанию GeneralizedLinearModel.fit
обрабатывает все категориальные значения, логические значения, символьные массивы, строковые массивы и массивы ячеек из символьных векторов как категориальные переменные.
Если данные находятся в матричном X
, то значением по умолчанию 'CategoricalVars'
является пустой матричный []
. Таким образом, никакая переменная не является категориальной, если вы не задаете его как категориальный.
Например, можно задать наблюдения 2 и 3 из 6 как категориальное использование любого из следующих примеров.
Пример: 'CategoricalVars',[2,3]
Пример: 'CategoricalVars',logical([0 1 1 0 0 0])
Типы данных: single
| double
| logical
| string
| cell
'DispersionFlag'
— Индикатор, чтобы вычислить дисперсионный параметрfalse
для 'binomial'
и дистрибутивов 'poisson'
(значение по умолчанию) | true
Индикатор, чтобы вычислить дисперсионный параметр для 'binomial'
и дистрибутивов 'poisson'
, заданных как пара, разделенная запятой, состоящая из 'DispersionFlag'
и одно из следующих.
true | Оцените дисперсионный параметр при вычислении стандартных погрешностей |
false | Значение по умолчанию. Используйте теоретическое значение при вычислении стандартных погрешностей |
Подходящая функция всегда оценивает дисперсию для других дистрибутивов.
Пример: 'DispersionFlag',true
'Distribution'
— Распределение переменной отклика'normal'
(значение по умолчанию) | 'binomial'
| 'poisson'
| 'gamma'
| 'inverse gaussian'
Распределение переменной отклика, заданной как пара, разделенная запятой, состоящая из 'Distribution'
и одно из следующих.
'normal' | Нормальное распределение |
'binomial' | Биномиальное распределение |
'poisson' | Распределение Пуассона |
'gamma' | Гамма распределение |
'inverse gaussian' | Обратное Распределение Гаусса |
Пример: 'Distribution','gamma'
'Exclude'
— Наблюдения, чтобы исключитьНаблюдения, чтобы исключить из подгонки, заданной как пара, разделенная запятой, состоящая из 'Exclude'
и логического или числового индексного вектора указание, который наблюдения исключить из подгонки.
Например, можно исключить наблюдения 2 и 3 из 6 использований любого из следующих примеров.
Пример: 'Exclude',[2,3]
Пример: 'Exclude',logical([0 1 1 0 0 0])
Типы данных: single
| double
| logical
'Intercept'
— Индикатор для постоянного терминаtrue
(значение по умолчанию) | false
Индикатор для постоянного термина (прерывание) в подгонке, заданной как пара, разделенная запятой, состоящая из 'Intercept'
и или true
, чтобы включать или false
, чтобы удалить постоянный термин из модели.
Используйте 'Intercept'
только при определении модели с помощью вектора символов или представьте в виде строки скаляр, не формулу или матрицу.
Пример: 'Intercept',false
'Link'
— Функция ссылкиФункция ссылки, чтобы использовать вместо канонической функции ссылки, заданной как пара, разделенная запятой, состоящая из 'Link'
и одно из следующих.
Соедините имя функции | Функция ссылки | Средняя (обратная) функция |
---|---|---|
'identity' | f (μ) = μ | μ = Xb |
'log' | f (μ) = журнал (μ) | μ = exp (Xb) |
'logit' | f (μ) = журнал (μ / (1–μ)) | μ = exp (Xb) / (1 + exp (Xb)) |
'probit' | f (μ) = Φ–1 (μ) | μ = Φ (Xb) |
'comploglog' | f (μ) = журнал (-журнал (1 – μ)) | μ = 1 – exp (–exp (Xb)) |
'reciprocal' | f (μ) = 1/μ | μ = 1 / (Xb) |
p (номер) | f (μ) = μp | μ = Xb 1/p |
| f (μ) = S.Link (μ) | μ = S.Inverse (Xb) |
Функция ссылки задает отношение f (μ) = X *b между средним ответом μ и линейной комбинацией предикторов X *b.
Для получения дополнительной информации о канонических функциях ссылки смотрите Каноническую Функцию Ссылки.
Пример: 'Link','probit'
Типы данных: char
| string
| single
| double
| struct
'Offset'
— OffsetСместите переменную в подгонке, заданной как пара, разделенная запятой, состоящая из 'Offset'
и вектора или имени переменной с той же длиной как ответ.
GeneralizedLinearModel.fit
использует Offset
в качестве дополнительного предиктора с содействующим значением, зафиксированным в 1,0. Другими словами, формула для подбора кривой
f (μ) ~ Offset + (terms involving real predictors)
с предиктором Offset
, имеющим коэффициент 1
.
Например, рассмотрите модель регрессии Пуассона. Предположим, что количество количеств известно по теоретическим причинам быть пропорциональным предиктору A
. При помощи логарифмической функции ссылки и путем определения log(A)
как смещения, можно обеспечить модель, чтобы удовлетворить это теоретическое ограничение.
Типы данных: single
| double
| char
| string
'PredictorVars'
— Переменные прогнозаПеременные прогноза, чтобы использовать в подгонке, заданной как пара, разделенная запятой, состоящая из 'PredictorVars'
и или массив строк или массив ячеек из символьных векторов имен переменных в таблице или массиве набора данных tbl
или логический или числовой индексный вектор указание, какие столбцы являются переменными прогноза.
Значения строки или векторы символов должны быть среди имен в tbl
или имен, вы задаете использование аргумента пары "имя-значение" 'VarNames'
.
Значением по умолчанию являются все переменные в X
или все переменные в tbl
за исключением ResponseVar
.
Например, можно задать вторые и третьи переменные как переменные прогноза с помощью любого из следующих примеров.
Пример: 'PredictorVars',[2,3]
Пример: 'PredictorVars',logical([0 1 1 0 0 0])
Типы данных: single
| double
| logical
| string
| cell
'ResponseVar'
— Переменная откликаtbl
(значение по умолчанию) | вектор символов или скаляр строки, содержащий имя переменной | логический или числовой индексный векторПеременная отклика, чтобы использовать в подгонке, заданной как пара, разделенная запятой, состоящая из 'ResponseVar'
и или вектор символов или представить в виде строки скаляр, содержащий имя переменной в таблице или массиве набора данных tbl
или логический или числовой индексный вектор указание, какой столбец является переменной отклика. Обычно необходимо использовать 'ResponseVar'
при подборе кривой таблице или массиву набора данных tbl
.
Например, можно задать четвертую переменную, сказать yield
, как ответ из шести переменных, одним из следующих способов.
Пример: 'ResponseVar','yield'
Пример: 'ResponseVar',[4]
Пример: 'ResponseVar',logical([0 0 0 1 0 0])
Типы данных: single
| double
| logical
| char
| string
varnames
Имена переменных{'x1','x2',...,'xn','y'}
(значение по умолчанию) | массив строк | массив ячеек из символьных векторовИмена переменных, заданных как пара, разделенная запятой, состоящая из 'VarNames'
и массива строк или массива ячеек из символьных векторов включая имена для столбцов X
сначала и имя для переменной отклика y
в последний раз.
'VarNames'
не применим к переменным в таблице или массиве набора данных, потому что те переменные уже имеют имена.
Например, если в ваших данных, лошадиная сила, ускорение, и модельный год автомобилей являются переменными прогноза, и мили на галлон (MPG) являются переменной отклика, то можно назвать переменные можно следующим образом.
Пример: 'VarNames',{'Horsepower','Acceleration','Model_Year','MPG'}
Типы данных: string
| cell
'Weights'
— Веса наблюденияones(n,1)
(значение по умолчанию) | n-by-1 вектор неотрицательных скалярных значенийВеса наблюдения, заданные как пара, разделенная запятой, состоящая из 'Weights'
и n-by-1 вектор неотрицательных скалярных значений, где n является количеством наблюдений.
Типы данных: single | double
mdl
— Обобщенная линейная модельGeneralizedLinearModel
Обобщенная линейная модель, представляющая припадок наименьших квадратов ссылки ответа на данные, возвращенные как объект GeneralizedLinearModel
.
Для свойств и методов обобщенного линейного объекта модели, mdl
, смотрите страницу класса GeneralizedLinearModel
.
Соответствуйте модели логистической регрессии вероятности курения как функция возраста, веса и пола, с помощью двухсторонней модели взаимодействий.
Загрузите массив набора данных 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
Большое - значение указывает, что сила модели не отличается статистически от константы.
Матрица условий 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
для переменной отклика в последнем столбце каждой строки.
Формула для образцовой спецификации является вектором символов или скаляром строки формы
.'Y ~ terms'
Y
является именем ответа.
terms
представляет условия предиктора в модели с помощью обозначения Уилкинсона.
Например:
'Y ~ A + B + C'
задает линейную модель с тремя переменными с прерыванием.
'Y ~ A + B + C – 1'
задает линейную модель с тремя переменными без прерывания. Обратите внимание на то, что формулы включают константу (прерывание) термин по умолчанию. Чтобы исключить постоянный термин из модели, необходимо включать –1
в формулу.
Обозначение Уилкинсона описывает условия, существующие в модели. Обозначение относится к условиям, существующим в модели, не ко множителям (коэффициенты) тех условий.
Обозначение Уилкинсона использует эти символы:
Средние значения +
включают следующую переменную.
Средние значения –
не включают следующую переменную.
:
задает взаимодействие, которое является продуктом условий.
*
задает взаимодействие и все условия более низкоуровневые.
^
возводит предиктор в степень, точно как в повторенном *
, таким образом, ^
включает условия более низкоуровневые также.
Условия групп ()
.
Эта таблица показывает типичные примеры обозначения Уилкинсона.
Обозначение Уилкинсона | Термин в стандартном обозначении |
---|---|
1 | Постоянный (прерывание) термин |
A^k , где k является положительным целым числом | A , A2 ..., Ak |
A + B | A, B
|
A*B | A , B , A*B |
A:B | A*B только |
–B | Не включайте B |
A*B + C | A , B , C , A*B |
A + B + C + A:B | A , B , C , A*B |
A*B*C – A:B:C | A , B , C , A*B , A*C , B*C |
A*(B + C) | A , B , C , A*B , A*C |
Обозначение Statistics and Machine Learning Toolbox™ всегда включает постоянный термин, если вы явным образом не удаляете термин с помощью –1
.
Для получения дополнительной информации смотрите Обозначение Уилкинсона.
Функцией ссылки по умолчанию для обобщенной линейной модели является canonical link function.
Канонические функции ссылки для обобщенных линейных моделей
Распределение | Соедините имя функции | Функция ссылки | Средняя (обратная) функция |
---|---|---|---|
'normal' | 'identity' | f (μ) = μ | μ = Xb |
'binomial' | 'logit' | f (μ) = журнал (μ / (1–μ)) | μ = exp (Xb) / (1 + exp (Xb)) |
'poisson' | 'log' | f (μ) = журнал (μ) | μ = exp (Xb) |
'gamma' | -1 | f (μ) = 1/μ | μ = 1 / (Xb) |
'inverse gaussian' | -2 | f (μ) = 1/μ2 | μ = (Xb) –1/2 |
Обобщенная линейная модель mdl
является стандартной линейной моделью, если вы не задаете в противном случае с парой "имя-значение" Distribution
.
Для других методов, таких как devianceTest
или свойства объекта GeneralizedLinearModel
, смотрите GeneralizedLinearModel
.
Можно также создать обобщенную линейную модель с помощью fitglm
.
Используйте stepwiseglm
, чтобы выбрать образцовую спецификацию автоматически. Используйте step
, addTerms
или removeTerms
, чтобы настроить подобранную модель.
[1] Collett, D. Моделирование двоичных данных. Нью-Йорк: Chapman & Hall, 2002.
[2] Добсон, A. J. Введение в обобщенные линейные модели. Нью-Йорк: Chapman & Hall, 1990.
[3] Маккуллаг, P. и Дж. А. Нелдер. Обобщенные линейные модели. Нью-Йорк: Chapman & Hall, 1990.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.