exponenta event banner

случайный

Класс: нелинейная модель

Моделирование откликов для модели нелинейной регрессии

Синтаксис

ysim = random(mdl)
ysim = random(mdl,Xnew)
ysim = random(mdl,Xnew,'Weights',W)

Описание

ysim = random(mdl) моделирует отклики из аппроксимированной нелинейной модели mdl в исходных точках проектирования.

ysim = random(mdl,Xnew) моделирует отклики из аппроксимированной нелинейной модели mdl к данным в Xnew, добавление случайного шума.

ysim = random(mdl,Xnew,'Weights',W) моделирует отклики с использованием весов наблюдения, W.

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

mdl

Модель нелинейной регрессии, построенная fitnlm.

Xnew

Точки, в которых mdl предсказывает ответы.

  • Если Xnew является таблицей или массивом наборов данных, он должен содержать имена предикторов в mdl.

  • Если Xnew является числовой матрицей, она должна иметь такое же количество переменных (столбцов), которое использовалось для создания mdl. Кроме того, все переменные, используемые при создании mdl должен быть числовым.

W

Вектор весов вещественных, положительных значений или дескриптор функции.

  • Если указан вектор, он должен иметь то же количество элементов, что и количество наблюдений (или строк) в Xnew.

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

Заданные веса, W, random оценивает дисперсию ошибок при наблюдении i около MSE*(1/W(i))где MSE - среднеквадратичная ошибка.

По умолчанию: без весов

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

ysim

Вектор прогнозируемых средних значений при Xnew, возмущенный случайным шумом. Шум является независимым, нормально распределенным, со средним нулем и дисперсией, равной оцененной дисперсии ошибок модели.

Примеры

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

Создайте нелинейную модель пробега автомобиля как функцию веса и смоделируйте отклик.

Создайте экспоненциальную модель пробега автомобиля как функцию веса из carsmall данные. Масштабируйте вес в 1000 раз, чтобы все переменные были примерно равны по размеру.

load carsmall
X = Weight;
y = MPG;
modelfun = 'y ~ b1 + b2*exp(-b3*x/1000)';
beta0 = [1 1 1];
mdl = fitnlm(X,y,modelfun,beta0);

Создайте смоделированные ответы на данные.

Xnew = X;
ysim = random(mdl,Xnew);

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

plot(X,y,'o',X,ysim,'x')
legend('Data','Simulated')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Data, Simulated.

Альтернативы

Для прогнозов без дополнительного шума используйте predict.