случайный

Класс: 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. Масштабируйте вес фактором 1 000, таким образом, все переменные примерно равны в размере.

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')

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

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