exponenta event banner

Класс NonLinearModel

Класс модели нелинейной регрессии

Описание

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

Строительство

Создать NonLinearModel объект с использованием fitnlm.

Свойства

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

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

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

Дополнительные сведения см. в разделе Стандартные ошибки коэффициентов и доверительные интервалы.

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

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

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

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

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

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

  • Estimate - Расчетное значение коэффициента

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

  • tStat - t-статистика для теста, что коэффициент равен нулю

  • pValue - p-значение для t-статистики

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

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

beta = mdl.Coefficients.Estimate

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

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

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

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

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

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

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

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

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

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

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

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

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

Отображение формулы подогнанной модели mdl используя точечную нотацию.

mdl.Formula

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

Информация о процессе фитинга, заданная как структура со следующими полями:

  • InitialCoefs - Начальные значения коэффициентов ( beta0 вектор)

  • IterOpts - Опции, включенные в Options аргумент пары имя-значение для fitnlm.

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

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

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

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

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

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

  • AIC - информационный критерий Акаике. 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 - Согласованный информационный критерий Акаике. CAIC = –2*logL + m*(log(n) + 1).

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

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

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

aic = mdl.ModelCriterion.AIC

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

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

Среднеквадратичная ошибка, заданная как числовое значение. Среднеквадратичная ошибка - это оценка дисперсии члена ошибки в модели.

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

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

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

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

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

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

Типы данных: 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

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

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

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

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

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

КолонкаОписание
RawНаблюдаемые минус установленные значения
PearsonНеобработанные остатки, разделенные на среднеквадратичную ошибку (RMSE)
StandardizedНеобработанные остатки, деленные на их расчетное стандартное отклонение
StudentizedНеобработанный остаток, деленный на независимую оценку остаточного стандартного отклонения. Остаток для наблюдения i делится на оценку среднеквадратического отклонения погрешности на основе всех наблюдений, кроме наблюдения i.

Использовать plotResiduals для создания графика остатков. Дополнительные сведения см. в разделе Остатки.

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

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

r = mdl.Residuals.Raw

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

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

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

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

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

Среднеквадратическая ошибка корня, заданная как числовое значение. Среднеквадратичная ошибка - это оценка стандартного отклонения члена ошибки в модели.

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

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

Надежная информация о посадке, заданная как структура со следующими полями:

ОбластьОписание
WgtFunНадежная взвешивающая функция, например 'bisquare' (см. robustfit)
TuneЗначение, указанное для параметра настройки (может быть [])
WeightsВектор весов, использованных при окончательной итерации надежной посадки

Эта структура пуста, если fitnlm построил модель с использованием надежной регрессии.

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

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

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

  • Ordinary - Обычный (нескорректированный) R-квадрат

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

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

Rsquared = SSR/SST,

где SST - общая сумма квадратов, и SSR - регрессионная сумма квадратов.

Дополнительные сведения см. в разделе Коэффициент определения (R-квадрат).

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

r2 = mdl.Rsquared.Adjusted

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

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

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

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

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

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

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

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

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

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

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

Информация о переменных, содержащихся в 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

Функции объекта

coefCIДоверительные интервалы оценок коэффициентов модели нелинейной регрессии
coefTestТест линейной гипотезы по коэффициентам модели нелинейной регрессии
fevalОценка прогноза модели нелинейной регрессии
partialDependenceВычислить частичную зависимость
plotPartialDependenceСоздание графиков частичной зависимости (PDP) и индивидуального условного ожидания (ICE)
plotDiagnosticsДиагностика графика нелинейной регрессионной модели
plotResidualsПечать остатков модели нелинейной регрессии
plotSliceГрафик срезов через подогнанную нелинейную регрессионную поверхность
predictПрогнозирование отклика модели нелинейной регрессии
randomМоделирование откликов для модели нелинейной регрессии

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

Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

Подгонка модели нелинейной регрессии для автоматического пробега на основе carbig данные. Спрогнозировать пробег среднего автомобиля.

Загрузите образцы данных. Создание матрицы X содержащий измерения для лошадиных сил (Horsepower) и вес (Weight) каждого вагона. Создание вектора y содержащие значения отклика в милях на галлон (MPG).

load carbig
X = [Horsepower,Weight];
y = MPG;

Подгонка нелинейной регрессионной модели.

modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + ...
    b(4)*x(:,2).^b(5);
beta0 = [-50 500 -1 500 -1];
mdl = fitnlm(X,y,modelfun,beta0)
mdl = 
Nonlinear regression model:
    y ~ b1 + b2*x1^b3 + b4*x2^b5

Estimated Coefficients:
          Estimate      SE        tStat       pValue 
          ________    _______    ________    ________

    b1     -49.383     119.97    -0.41164     0.68083
    b2      376.43     567.05     0.66384     0.50719
    b3    -0.78193    0.47168     -1.6578    0.098177
    b4      422.37     776.02     0.54428     0.58656
    b5    -0.24127    0.48325    -0.49926     0.61788


Number of observations: 392, Error degrees of freedom: 387
Root Mean Squared Error: 3.96
R-Squared: 0.745,  Adjusted R-Squared 0.743
F-statistic vs. constant model: 283, p-value = 1.79e-113

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

Xnew = mean(X,'omitnan')  
Xnew = 1×2
103 ×

    0.1051    2.9794

MPGnew = predict(mdl,Xnew)
MPGnew = 21.8073

Подробнее

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