random

Класс: NonLinearModel

Симулируйте отклики для нелинейной регрессионой модели

Синтаксис

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.