簡體   English   中英

使用 mnrfit 在 matlab 中進行邏輯回歸

[英]Logistic regression in matlab using mnrfit

我正在嘗試使用mnrfit函數,但出現錯誤

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

我的數據是精度的,我的 Y 值是浮點數,例如 0.6667。 有沒有辦法調整我的數據以便能夠使用 mnrfit 函數?

提前致謝! 一個沒有經驗的初學者

Y應該是使用mnrfit的“標稱結果”,即非連續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可能不合適!


請注意,有效數據類型在docs中指定

Y可以是以下之一:

  • n×k矩陣,其中Y(i,j)是X(i,:)給出的預測變量組合的多項式類別j的結果數。 在這種情況下,在每個預測變量組合處進行觀察的次數。

  • 標量整數從1到k的n×1列向量,指示每個觀察的響應值。 在這種情況下,所有樣本大小均為1。

  • 一個n×1類別數組,指示每個觀察結果的響應的標稱值或序數值。 在這種情況下,所有樣本大小均為1。

當我使用“B = Merit(X, categorical(Y))”時,我有一個快速的問題,我得到了一個負的 Beta 值,但實際的 Beta 值是我得到的正值。 EX) 實際 Beta = 50 , -90 , 8 我得到的 = -50, 90 ,-8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM