NonLinearModel class

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

Описание

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

Конструкция

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

Свойства

расширить все

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

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

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

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

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

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

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

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

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

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

  • SE - Стандартная ошибка оценки

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

  • pValue - p -value для t -statistic

Использовать 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-by- 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-на-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

Подробнее о

расширить все