Класс модели нелинейной регрессии
Объект, содержащий обучающие данные, описание модели, диагностическую информацию и соответствующие коэффициенты для нелинейной регрессии. Прогнозирование ответов модели с помощью predict или feval методы.
Создать NonLinearModel объект с использованием fitnlm.
CoefficientCovariance - Ковариационная матрица оценок коэффициентовЭто свойство доступно только для чтения.
Ковариационная матрица оценок коэффициентов, заданная как p-by-p матрица числовых значений. p - число коэффициентов в подгоняемой модели.
Дополнительные сведения см. в разделе Стандартные ошибки коэффициентов и доверительные интервалы.
Типы данных: single | double
CoefficientNames - Наименования коэффициентовЭто свойство доступно только для чтения.
Имена коэффициентов, определяемые как массив ячеек символьных векторов, каждый из которых содержит имя соответствующего члена.
Типы данных: cell
Coefficients - Значения коэффициентовЭто свойство доступно только для чтения.
Значения коэффициентов, указанные как таблица. Coefficients содержит одну строку для каждого коэффициента и следующие столбцы:
Estimate - Расчетное значение коэффициента
SE - Стандартная погрешность оценки
tStat - t-статистика для теста, что коэффициент равен нулю
pValue - p-значение для t-статистики
Использовать anova (только для модели линейной регрессии) или coefTest для выполнения других тестов коэффициентов. Использовать coefCI для нахождения доверительных интервалов оценок коэффициентов.
Чтобы получить любой из этих столбцов в виде вектора, выполните индексирование в свойство с помощью точечной нотации. Например, получить оцененный вектор коэффициентов в модели mdl:
beta = mdl.Coefficients.Estimate
Типы данных: table
Diagnostics - Диагностическая информацияЭто свойство доступно только для чтения.
Диагностическая информация для модели, указанная как таблица. Диагностика может помочь выявить отклонения и влиятельные наблюдения. 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
DFE - Степени свободы для ошибкиЭто свойство доступно только для чтения.
Степени свободы для ошибки (остатки), равные количеству наблюдений минус число оцененных коэффициентов, указанных как положительное целое число.
Типы данных: double
Fitted - Установленные значения отклика на основе входных данныхЭто свойство доступно только для чтения.
Аппроксимированные (прогнозируемые) значения на основе входных данных, заданных как числовой вектор. fitnlm попытки сделать Fitted как можно ближе к ответным данным.
Типы данных: single | double
Formula - Информация о моделиNonLinearFormula объектЭто свойство доступно только для чтения.
Информация о модели, указанная как NonLinearFormula объект.
Отображение формулы подогнанной модели mdl используя точечную нотацию.
mdl.Formula
Iterative - Информация о процессе фитингаЭто свойство доступно только для чтения.
Информация о процессе фитинга, заданная как структура со следующими полями:
InitialCoefs - Начальные значения коэффициентов ( beta0 вектор)
IterOpts - Опции, включенные в Options аргумент пары имя-значение для fitnlm.
Типы данных: struct
LogLikelihood - Средства к существованиюЭто свойство доступно только для чтения.
Логарифмическое значение распределения модели при значениях ответа, указанных как числовое значение. Среднее значение подгоняется по модели, а другие параметры оцениваются как часть подгонки модели.
Типы данных: single | double
ModelCriterion - Критерий сравнения моделейЭто свойство доступно только для чтения.
Критерий сравнения моделей, указанный как структура со следующими полями:
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
MSE - Среднеквадратичная ошибкаЭто свойство доступно только для чтения.
Среднеквадратичная ошибка, заданная как числовое значение. Среднеквадратичная ошибка - это оценка дисперсии члена ошибки в модели.
Типы данных: single | double
NumCoefficients - Количество коэффициентов моделиЭто свойство доступно только для чтения.
Число коэффициентов в подгоняемой модели, указанное как положительное целое число. NumCoefficients является таким же, как NumEstimatedCoefficients для NonLinearModel объекты. NumEstimatedCoefficients равен степеням свободы для регрессии.
Типы данных: double
NumEstimatedCoefficients - Количество расчетных коэффициентовЭто свойство доступно только для чтения.
Количество расчетных коэффициентов в подогнанной модели, указанное как положительное целое число. NumEstimatedCoefficients является таким же, как NumCoefficients для NonLinearModel объекты. NumEstimatedCoefficients равен степеням свободы для регрессии.
Типы данных: double
NumPredictors - Количество переменных предиктораЭто свойство доступно только для чтения.
Число предикторных переменных, используемых для соответствия модели, указанное как положительное целое число.
Типы данных: double
NumVariables - Количество переменныхЭто свойство доступно только для чтения.
Число переменных во входных данных, указанное как положительное целое число. NumVariables - количество переменных в исходной таблице или наборе данных или общее число столбцов в матрице предиктора и векторе ответа.
NumVariables также включает любые переменные, которые не используются для соответствия модели в качестве предикторов или в качестве ответа.
Типы данных: double
ObservationInfo - Информация о наблюденияхЭто свойство доступно только для чтения.
Информация наблюдения, заданная как таблица n-by-4, где n равно количеству строк входных данных. ObservationInfo содержит столбцы, описанные в этой таблице.
| Колонка | Описание |
|---|---|
Weights | Веса наблюдения, заданные как числовое значение. Значение по умолчанию: 1. |
Excluded | Индикатор исключенных наблюдений, указанный как логическое значение. Значение: true при исключении наблюдения из посадки с помощью 'Exclude' аргумент пары имя-значение. |
Missing | Индикатор отсутствующих наблюдений, указанный как логическое значение. Значение: true если наблюдение отсутствует. |
Subset | Индикатор того, использует ли функция аппроксимации наблюдение, указанное как логическое значение. Значение: true если наблюдение не исключено или отсутствует, т.е. функция фитинга использует наблюдение. |
Чтобы получить любой из этих столбцов в виде вектора, выполните индексирование в свойство с помощью точечной нотации. Например, получить весовой вектор w модели mdl:
w = mdl.ObservationInfo.Weights
Типы данных: table
ObservationNames - Названия наблюденийЭто свойство доступно только для чтения.
Имена наблюдений, определяемые как массив ячеек символьных векторов, содержащих имена наблюдений, используемых при подгонке.
Если подгонка основана на таблице или наборе данных, содержащих имена наблюдений, ObservationNames использует эти имена.
В противном случае ObservationNames является пустым массивом ячеек.
Типы данных: cell
PredictorNames - Названия предикторов, используемых для подгонки моделиЭто свойство доступно только для чтения.
Имена предикторов, используемых для подгонки к модели, заданные как клеточный массив символьных векторов.
Типы данных: cell
Residuals - Остатки для установленной моделиЭто свойство доступно только для чтения.
Остатки для подогнанной модели, указанные как таблица, содержащая одну строку для каждого наблюдения и столбцы, описанные в этой таблице.
| Колонка | Описание |
|---|---|
Raw | Наблюдаемые минус установленные значения |
Pearson | Необработанные остатки, разделенные на среднеквадратичную ошибку (RMSE) |
Standardized | Необработанные остатки, деленные на их расчетное стандартное отклонение |
Studentized | Необработанный остаток, деленный на независимую оценку остаточного стандартного отклонения. Остаток для наблюдения i делится на оценку среднеквадратического отклонения погрешности на основе всех наблюдений, кроме наблюдения i. |
Использовать plotResiduals для создания графика остатков. Дополнительные сведения см. в разделе Остатки.
Строки, не используемые в подгонке из-за отсутствия значений (в ObservationInfo.Missing) или исключенные значения (в ObservationInfo.Excluded) содержат NaN значения.
Чтобы получить любой из этих столбцов в виде вектора, выполните индексирование в свойство с помощью точечной нотации. Например, получить необработанный остаточный вектор r в модели mdl:
r = mdl.Residuals.Raw
Типы данных: table
ResponseName - Имя переменной ответаЭто свойство доступно только для чтения.
Имя ответной переменной, указанное как символьный вектор.
Типы данных: char
RMSE - Среднеквадратичная ошибка корняЭто свойство доступно только для чтения.
Среднеквадратическая ошибка корня, заданная как числовое значение. Среднеквадратичная ошибка - это оценка стандартного отклонения члена ошибки в модели.
Типы данных: single | double
Robust - Надежная информация о подгонкеЭто свойство доступно только для чтения.
Надежная информация о посадке, заданная как структура со следующими полями:
| Область | Описание |
|---|---|
WgtFun | Надежная взвешивающая функция, например 'bisquare' (см. robustfit) |
Tune | Значение, указанное для параметра настройки (может быть []) |
Weights | Вектор весов, использованных при окончательной итерации надежной посадки |
Эта структура пуста, если fitnlm построил модель с использованием надежной регрессии.
Типы данных: struct
Rsquared - R-квадрат для моделиЭто свойство доступно только для чтения.
Значение R-квадрата для модели, указанное как структура с двумя полями:
Ordinary - Обычный (нескорректированный) R-квадрат
Adjusted - R-квадрат, скорректированный на количество коэффициентов
R-квадрат - это доля общей суммы квадратов, объясняемая моделью. Обычное значение R-квадрата относится к SSR и SST свойства:
Rsquared = SSR/SST,
где SST - общая сумма квадратов, и SSR - регрессионная сумма квадратов.
Дополнительные сведения см. в разделе Коэффициент определения (R-квадрат).
Чтобы получить любое из этих значений в виде скаляра, выполните индексирование в свойство с помощью точечной нотации. Например, получить скорректированное значение R-квадрата в модели mdl:
r2 = mdl.Rsquared.Adjusted
Типы данных: struct
SSE - Сумма квадратичных ошибокЭто свойство доступно только для чтения.
Сумма квадратичных ошибок (остатков), заданная как числовое значение.
Типы данных: single | double
SSR - Регрессионная сумма квадратовЭто свойство доступно только для чтения.
Регрессионная сумма квадратов, заданная как числовое значение. Сумма регрессии квадратов равна сумме квадратичных отклонений аппроксимируемых значений от их среднего значения.
Типы данных: single | double
SST - Общая сумма квадратовЭто свойство доступно только для чтения.
Общая сумма квадратов, заданная как числовое значение. Общая сумма квадратов равна сумме квадратичных отклонений вектора отклика y от mean(y).
Типы данных: single | double
VariableInfo - Информация о переменныхЭто свойство доступно только для чтения.
Информация о переменных, содержащихся в Variables, задается как таблица с одной строкой для каждой переменной и столбцов, описанных в этой таблице.
| Колонка | Описание |
|---|---|
Class | Класс переменных, заданный как массив ячеек символьных векторов, например 'double' и 'categorical' |
Range | Диапазон переменных, заданный как массив ячеек векторов
|
InModel | Индикатор, переменные которого находятся в подогнанной модели, определяемый как логический вектор. Значение: true если модель включает переменную. |
IsCategorical | Индикатор категориальных переменных, указанный как логический вектор. Значение: true если переменная категорична. |
VariableInfo также включает любые переменные, которые не используются для соответствия модели в качестве предикторов или в качестве ответа.
Типы данных: table
VariableNames - имена переменных;Это свойство доступно только для чтения.
Имена переменных, определяемые как массив ячеек символьных векторов.
Если аппроксимация основана на таблице или наборе данных, это свойство предоставляет имена переменных в таблице или наборе данных.
Если подгонка основана на матрице предиктора и векторе отклика, VariableNames содержит значения, указанные 'VarNames' аргумент пары имя-значение метода фитинга. Значение по умолчанию 'VarNames' является {'x1','x2',...,'xn','y'}.
VariableNames также включает любые переменные, которые не используются для соответствия модели в качестве предикторов или в качестве ответа.
Типы данных: cell
Variables - Входные данныеЭто свойство доступно только для чтения.
Входные данные, указанные как таблица. 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
Hat-матрица H определяется в терминах матрицы X данных и Jacobian-матрицы J:
Здесь f - функция нелинейной модели, а β - вектор коэффициентов модели.
Матрица Hat H представляет собой
H = J (JTJ) -1JT.
Диагональные элементы Hii удовлетворяют
где n - количество наблюдений (строк X), а p - число коэффициентов в регрессионной модели.
Леверидж - это мера влияния конкретного наблюдения на регрессионные прогнозы из-за положения этого наблюдения в пространстве входных данных.
Леверидж наблюдения i является значением i-го диагонального члена hii матрицы hat H. Поскольку сумма значений левериджа равна p (число коэффициентов в регрессионной модели), наблюдение i можно считать отклонением, если его леверидж существенно превышает p/n, где n - число наблюдений.
Расстояние Кука Di наблюдения i
) 2p MSE,
где
j - j-ое совпадающее значение отклика.
(i) - значение j-ой подогнанной реакции, где посадка не включает в себя наблюдение i.
MSE - это среднеквадратичная ошибка.
p - число коэффициентов в регрессионной модели.
Расстояние Кука алгебраически эквивалентно следующему выражению:
hii) 2),
где ei - i-й остаток.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.