glmfit

Подбирайте обобщенную линейную модель регрессии

    Описание

    b = glmfit(X,y,distr) возвращает векторный b из коэффициента оценивает для обобщенной линейной модели регрессии ответов в y на предикторах в X, использование распределения distr.

    пример

    b = glmfit(X,y,distr,Name,Value) задает дополнительные опции с помощью одних или нескольких аргументов name-value. Например, можно задать 'Constant','off' не использовать постоянный термин из модели.

    пример

    [b,dev] = glmfit(___) также возвращает значение dev, отклонение подгонки.

    [b,dev,stats] = glmfit(___) также возвращает статистику модели stats.

    Примеры

    свернуть все

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

    Создайте набор выборочных данных.

    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,'-')

    Figure contains an axes object. The axes object contains 2 objects of type line.

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

    Загрузите выборочные данные.

    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  
    
    

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

    свернуть все

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

    По умолчанию, glmfit включает постоянный член в модели. Не добавляйте столбец 1 с непосредственно к X. Можно изменить поведение по умолчанию glmfit путем определения 'Constant' аргумент значения имени.

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

    Переменная отклика в виде вектора или матрицы.

    • Если distr не 'binomial', затем y должен быть n-by-1 вектор, где n является количеством наблюдений. Каждая запись в y ответ для соответствующей строки X. Тип данных должен быть одним или двойным.

    • Если distr 'binomial', затем y n-by-1 вектор, указывающий на успешность или неуспешность при каждом наблюдении или n-by-2 матрица, первый столбец которой указывает на количество успехов для каждого наблюдения, и второй столбец указывает на количество испытаний за каждое наблюдение.

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

    Распределение переменной отклика в виде одного из значений в этой таблице.

    ЗначениеОписание
    'normal'Нормальное распределение (значение по умолчанию)
    'binomial'Биномиальное распределение
    'poisson'Распределение Пуассона
    'gamma'Гамма распределение
    'inverse gaussian'Обратное Распределение Гаусса

    Аргументы name-value

    Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

    Пример: b = glmfit(X,y,'normal','link','probit') указывает, что распределение ответа нормально и сообщает glmfit чтобы использовать пробит соединяют функцию.

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

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

    Индикатор для постоянного термина (точка пересечения) в подгонке в виде любого 'on' включать постоянный термин или 'off' удалить его из модели.

    • 'on' (значение по умолчанию) — glmfit включает постоянный член в модели и возвращается (p + 1)-by-1, вектор из коэффициента оценивает b, где p является количеством предикторов в X. Коэффициент постоянного термина является первым элементом b.

    • 'off'glmfit не использует постоянный термин и возвращает p-by-1, вектор из коэффициента оценивает b.

    Пример: 'Constant','off'

    Индикатор, чтобы вычислить дисперсионный параметр для 'binomial' и 'poisson' распределения в виде 'on' или 'off'.

    ЗначениеОписание
    'on'Оцените дисперсионный параметр при вычислении стандартных погрешностей. Предполагаемое дисперсионное значение параметров является суммой остаточных значений Пирсона в квадрате, разделенных на степени свободы для ошибки (DFE).
    'off'Используйте теоретическое значение 1 при вычислении стандартных погрешностей (значение по умолчанию).

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

    Пример: 'EstDisp','on'

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

    Соедините имя функцииФункция ссылкиСредняя (обратная) функция
    'identity' (значение по умолчанию для 'normal' распределение)f (μ) = μμ = Xb
    'log' (значение по умолчанию для 'poisson' распределение)f (μ) = журнал (μ)μ = exp (Xb)
    'logit' (значение по умолчанию для 'binomial' распределение)f (μ) = журнал (μ / (1 – μ))μ = exp (Xb) / (1 + exp (Xb))
    'probit'f (μ) = Φ–1(μ), где Φ является кумулятивной функцией распределения стандартного нормального распределенияμ = Φ (Xb)

    'loglog'

    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.Inversexb

    • Массив ячеек формы {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

    Возместите переменную в подгонке в виде числового вектора с той же длиной как ответ y.

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

    f (μ) = Offset + X*b,

    где f является функцией ссылки, μ является средним ответом, и X *b является линейной комбинацией предикторов X. Offset предиктор имеет коэффициент 1.

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

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

    Опции оптимизации в виде структуры. Этот аргумент определяет параметры управления для итеративного алгоритма это glmfit использование.

    Создайте 'Options' значение при помощи функции statset или путем создания массива структур, содержащего поля и значения, описан в этой таблице.

    Имя поляЗначениеЗначение по умолчанию
    Display

    Объем информации отображен алгоритмом

    • 'off' — Отображения никакая информация

    • 'final' — Отображает окончательный вывод

    'off'
    MaxIter

    Максимальное количество итераций позволено в виде положительного целого числа

    100
    TolX

    Допуск завершения к параметрам в виде положительной скалярной величины

    1e-6

    Можно также ввести statset ('glmfit') в Командном окне, чтобы видеть имена и значения по умолчанию полей это glmfit принимает в 'Options' аргумент значения имени.

    Пример: 'Options',statset('Display','final','MaxIter',1000) задает, чтобы отобразить итоговую информацию результатов итеративного алгоритма и изменить максимальное количество итераций, позволенных 1 000.

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

    Веса наблюдения в виде n-by-1 вектор из неотрицательных скалярных значений, где n является количеством наблюдений.

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

    Выходные аргументы

    свернуть все

    Содействующие оценки, возвращенные как числовой вектор.

    • Если 'Constant' 'on' (значение по умолчанию), затем glmfit включает постоянный член в модели и возвращается (p + 1)-by-1, вектор из коэффициента оценивает b, где p является количеством предикторов в X. Коэффициент постоянного термина является первым элементом b.

    • Если 'Constant' 'off'то glmfit не использует постоянный термин и возвращает p-by-1, вектор из коэффициента оценивает b.

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

    Для получения дополнительной информации смотрите Отклонение.

    Статистика модели, возвращенная как структура со следующими полями:

    • beta — Коэффициент оценивает b

    • dfe — Степени свободы для ошибки

    • sfit — Предполагаемый дисперсионный параметр

    • s — Теоретический или оцененный дисперсионный параметр

    • estdisp — 0, когда 'EstDisp' 'off' и 1, когда 'EstDisp' 'on'

    • covb — Предполагаемая ковариационная матрица для b

    • se — Вектор из стандартных погрешностей коэффициента оценивает b

    • coeffcorr — Корреляционная матрица для b

    • t — статистика t для b

    • pp-значения для 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

    2(logL(b1,y)logL(bS,y)),

    где 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=D2D1=2(logL(b2,y)logL(bS,y))+2(logL(b1,y)logL(bS,y))=2(logL(b2,y)logL(b1,y)).

    Асимптотически, различие D имеет распределение хи-квадрат со степенями свободы v, равный различию в количестве параметров, оцененных в M 1 и M 2. Можно получить p - значение для этого теста при помощи   1 – chi2cdf(D,v).

    Как правило, вы исследуете D с помощью модели M 2 с постоянным термином и никакими предикторами. Поэтому D имеет распределение хи-квадрат с p – 1 степень свободы. Если дисперсия оценивается, различие, разделенное на предполагаемую дисперсию, имеет распределение F с p – 1 степенью свободы числителя и nстепени свободы знаменателя p.

    Советы

    • glmfit обработки NaNs в X или y как отсутствующие значения и игнорирует их.

    Альтернативная функциональность

    glmfit полезно, когда вам просто нужны выходные аргументы функции или, когда это необходимо, повторить подбирающую модель многократно в цикле. Если необходимо исследовать подобранную модель далее, создайте обобщенный линейный объект модели регрессии GeneralizedLinearModel при помощи fitglm или stepwiseglm. GeneralizedLinearModel объект обеспечивает больше функций, чем glmfit.

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

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

    • Можно найти информацию в выходе glmfit использование свойств и объектных функций GeneralizedLinearModel.

      Выход glmfitЭквивалентные стоимости в GeneralizedLinearModel
      bСмотрите Estimate столбец Coefficients свойство.
      devСмотрите Deviance свойство.
      stats

      Смотрите отображение модели в Командном окне. Можно найти статистику в свойствах модели (CoefficientCovariance, Coefficients, Dispersion, DispersionEstimated, и Residuals).

      Дисперсионный параметр в statsS из glmfit масштабный коэффициент для стандартных погрешностей коэффициентов, тогда как дисперсионный параметр в Dispersion свойство обобщенной линейной модели является масштабным коэффициентом для отклонения ответа. Поэтому stats.s квадратный корень из Dispersion значение.

    Ссылки

    [1] Добсон, A. J. Введение в обобщенные линейные модели. Нью-Йорк: Chapman & Hall, 1990.

    [2] Маккуллаг, P. и Дж. А. Нелдер. Обобщенные линейные модели. Нью-Йорк: Chapman & Hall, 1990.

    [3] Collett, D. Моделирование двоичных данных. Нью-Йорк: Chapman & Hall, 2002.

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

    Представлено до R2006a