1. ホーム
  2. matlab

[解決済み] mnrfitを用いたmatlabでのロジスティック回帰

2022-02-15 05:15:03

質問

を使おうとしているのですが mnrfit 関数がありますが、エラーが発生します。

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

私のデータは ダブル で、私のY値は フロート 例えば、0.6667 です。mnrfit関数を使用できるように、データを調整する方法はありますか?

ありがとうございました。 未経験の初心者

どのように解決するのですか?

Y を使用するには、quot;nominal outcome"、つまり非連続的でなければなりません。 mnrfit . を回す必要はない。 Y を整数に変換し、カテゴリカルにするだけです。カテゴリが2値で表現されているかどうかに関わらず、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は以下のいずれかになります。

  • Y(i,j) は,X(i,:)で与えられる予測変数の組み合わせに対する多項式カテゴリjの結果の数であるn x k 行列.この場合,オブザベーションの数は,各予測変数の組み合わせで行われる.

  • 各オブザベーションの応答値を示す1からkまでのスカラー整数のn×1列ベクトル. この場合、すべてのサンプルサイズは1である。

  • 各オブザベーションの応答の名目値または順序値を示す n x 1 のカテゴリ配列。 この場合、サンプルサイズはすべて1である。