Логистическая регрессия в Matlab с использованием Mnrfit - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь использовать функцию mnrfit, но получаю ошибку

If Y is a column vector, it must contain positive integer category numbers..

Мои данные в double и мой Yзначения с плавающей запятой , например, 0,6667.Есть ли способ, которым я могу скорректировать свои данные, чтобы использовать функцию mnrfit?

Заранее спасибо!Неопытный новичок

1 Ответ

0 голосов
/ 18 февраля 2019

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...