簡體   English   中英

使用MATLAB進行簡單的二元邏輯回歸

[英]Simple binary logistic regression using MATLAB

我正在使用MATLAB進行邏輯回歸,以解決一個簡單的分類問題。 我的協變量是一個介於0和1之間的連續變量,而我的分類響應是0(不正確)或1(正確)的二進制變量。

我正在尋找邏輯回歸來建立預測器,該預測器將輸出某些輸入觀察的概率(例如,如上所述的連續變量)是正確的或不正確的。 雖然這是一個相當簡單的場景,但我在MATLAB中運行它時遇到了一些麻煩。

我的方法如下:我有一個列向量X ,它包含連續變量的值,另一個大小相等的列向量Y包含每個X值的已知分類(例如0或1)。 我正在使用以下代碼:

[b,dev,stats] = glmfit(X,Y,'binomial','link','logit');

然而,這給出了無意義的結果,其中p = 1.000 ,系數( b )非常高(-650.5,1320.1),並且相關的標准誤差值大約為1e6。

然后我嘗試使用其他參數來指定二項式樣本的大小:

glm = GeneralizedLinearModel.fit(X,Y,'distr','binomial','BinomialSize',size(Y,1));

這給了我更符合我的預期的結果。 我提取系數,使用glmval創建估計值( Y_fit = glmval(b,[0:0.01:1],'logit'); ),並為擬合創建一個數組( X_fit = linspace(0,1) )。 當我使用figure, plot(X,Y,'o',X_fit,Y_fit'-')重疊原始數據和模型的figure, plot(X,Y,'o',X_fit,Y_fit'-')模型的結果圖基本上看起來像''的1/4。具有邏輯回歸圖的典型S形圖。

我的問題如下:

1)為什么我使用glmfit產生奇怪的結果?
2)我應該如何解決我的初始問題:給定一些輸入值,它的分類是正確的概率是多少?
3)如何獲得模型參數的置信區間? glmval應該能夠輸入glmfitstats輸出,但是我使用glmfit並沒有給出正確的結果。

任何評論和意見都非常有用,謝謝!

更新(2014年3月18日)

我發現mnrval似乎給出了合理的結果。 我可以用[b_fit,dev,stats] = mnrfit(X,Y+1); 其中Y+1簡單地將我的二元分類器變為名義分類器。

我可以遍歷[pihat,lower,upper] = mnrval(b_fit,loopVal(ii),stats); 獲得各種pihat概率值,其中loopVal = linspace(0,1)或一些適當的輸入范圍和`ii = 1:length(loopVal)'。

stats參數有很大的相關系數(0.9973),但對於P值b_fit是0.0847和0.0845,這我不太知道如何解釋。 有什么想法嗎? 另外,為什么會mrnfit在工作glmfit在我的例子嗎? 我應該注意到,當使用GeneralizedLinearModel.fit時,系數的p值都是p<<0.001 ,系數估計也是非常不同的。

最后,如何解釋mnrfit函數的dev輸出? MATLAB文件指出它是“解決方案向量的擬合偏差。偏差是殘差平方和的推廣。” 這是一個獨立的值,還是僅與其他模型的dev值進行比較?

聽起來您的數據可能是線性可分的。 簡而言之,這意味着由於您的輸入數據是一維的,因此存在x某個值,使得x < xDiv所有值x < xDiv屬於一個類(例如y = 0 ),並且x > xDiv所有值x > xDiv屬於另一個類( y = 1 )。

如果您的數據是二維的,這意味着您可以在二維空間X繪制一條線,使得特定類的所有實例都位於該線的一側。

這對於邏輯回歸(LR)來說是個壞消息,因為LR並不是真正意味着處理數據可線性分離的問題。

Logistic回歸試圖擬合以下形式的函數:

Logistic回歸

當分母中指數內的表達式為負無窮大或無窮大時,這將僅返回y = 0y = 1值。

現在,因為您的數據是線性可分的,並且Matlab的LR函數試圖找到適合數據的最大似然值,您將獲得極端權重值。

這不一定是一個解決方案,但嘗試只在您的一個數據點上翻轉標簽(因此對於某些索引t ,其中y(t) == 0設置y(t) = 1 )。 這將導致您的數據不再是線性可分的,並且學習的權重值將被顯着拖得更接近於零。

暫無
暫無

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

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