Y
должен быть "номинальным результатом", то есть не непрерывным, чтобы использовать mnrfit
.Нам не нужно превращать Y
в целые числа, просто по категориям.Категориальный массив является дискретным в том, что касается MATLAB, независимо от того, представлены ли категории двойными значениями.
X = rand(5,3); % Predictors (should be double or single)
Y = rand(5,1); % Response (doubles, will cause error)
B = mnrfit( X, Y )
% ERROR: If Y is a column vector, it must contain positive integer category numbers.
B = mnrfit( X, categorical(Y) )
% No error, regression matrix B is output successfully.
Будьте осторожны , если вы ожидаете переменную непрерывного ответа (следовательно, почему Y
является вектором двойных чисел), тогда mnrfit
может не подходить вообще!
Обратите внимание, что действительные типы данных указаны в документах
Y может быть одним из следующих:
Матрица n-на-k, где Y (i, j) - количество результатовполиномиальная категория j для комбинаций предикторов, заданных X (i, :).В этом случае число наблюдений выполняется для каждой комбинации предикторов.
Вектор столбцов n-на-1 скалярных целых чисел от 1 до k, указывающий значение ответа для каждогонаблюдение.В этом случае все размеры выборки равны 1.
Категориальный массив n-на-1, указывающий номинальное или порядковое значение ответа для каждого наблюдения. Inв этом случае все размеры выборки составляют 1.