在邏輯迴歸中加入頻率時,會出現「反應必須至少有兩個等級」的提示。你好,
我正在嘗試運行一個邏輯回歸模型,以物種存在/缺失資料(跨越數年)作為反應變量,以各種環境條件(例如溫度)作為預測變量。我還有物種豐度數據(物種出現時每天統計的個體數量,如果未觀察到則為零,如果未進行調查則為空),我想將其作為頻率變量納入模型。
不包含豐度數據,我可以完美運行邏輯迴歸模型。但是,當我將豐度資料作為頻率(或權重——兩種方法都試過)納入模型時,就會出現錯誤「反應變數必須至少有兩個水平」。
我的回應變數設定為名目變數(0 表示不存在,1 表示存在, • 表示空值,即未進行調查)。豐度資料列設定為連續變量,所有預測變數也都是連續變數。
我原以為問題出在資料集中大量的空值(該物種每年只活躍幾個月,因此大部分時間都沒有監測)。然而,即使我排除了所有空值,仍然出現了同樣的錯誤。
為了查看問題是否專門出現在豐度數據中,我嘗試輸入一些無關但連續的數據(觀測年份)作為假裝的“頻率”,JMP 運行起來沒有任何問題。
我使用的是 JMP 學生版 19.0.1。
先致謝! :)
鮑比
基礎資料分析與建模回覆:在邏輯迴歸中加入頻率時出現「回應必須至少有兩個等級」的提示嗨@bobby :歡迎加入社區。由於沒有看到你的數據,我只能進行推測。但聽起來,無論是否存在,豐度值都始終為零。
回覆:在邏輯迴歸中加入頻率時出現「回應必須至少有兩個等級」的提示展示數據當然會讓回答這個問題容易得多,但我在這裡只能推測一下。當你把豐度當作頻率或權重時,你實際上是將反應變數(存在或不存在)限制為:當豐度為零時,反應變數也為零(當豐度缺失時,反應變數也為缺失值-這在邏輯迴歸中會被忽略)。因此,最終使用的豐度值僅限於豐度存在的情況。將豐度作為權重/頻率似乎抹去了存在/缺失變量,使得反應變量的值只包含存在。
不過,我確實對您處理豐度的方式有些疑惑。您是否想把豐度當作一個連續變數來預測,但其中卻包含大量零值?這聽起來很像一個截尾資料問題,或至少是一個在部分值為零、其餘值為連續變數不同程度的情況下,試圖預測總體規模的問題。我很難給出最佳的建模方案,但用豐度作為頻率或權重似乎不是正確的方法。
回覆:在邏輯迴歸中加入頻率時出現「回應必須至少有兩個等級」的提示嗨@MRB3855 - 謝謝!是的,對於缺失而言,豐盛永遠為零。
回覆:在邏輯迴歸中加入頻率時出現「回應必須至少有兩個等級」的提示嗨@dlehman ,謝謝!很遺憾,我不確定能否上傳真實數據,所以為了謹慎起見,我先用下面的表格模擬一下我實際的數據(雖然我的數據中有很多零值和空值)。你說得對,豐度資料確實有很多零值,但也有一些天數有非零值(因為豐度是連續變數)。
關於這個模型-魚群在夏季開始出現,但具體日期會受到環境因素的影響(魚群出現後的族群數量也會隨之變化)。我正在嘗試確定哪些因素與魚群出現最相關,最終目的是預測魚群何時開始出現。雖然我並不關心預測種群數量,但我將觀察到的魚群數量作為指標,用來衡量隨著季節推移魚群數量的增加,以便更真實地反映魚群出現與環境因素之間的關係(順便一提,觀察到的魚群是收集的,所以不存在重複收集的問題)。希望我解釋得夠清楚──如果有什麼不懂的地方,請告訴我! (我對統計學還不太熟悉 :beaming_face_with_smiling_eyes:)
寫到這裡,我突然想到,或許可以忽略存在/缺失的衡量標準,只關注豐度?但這仍然需要處理零值,所以我得試試看…
| 年 |
月 |
天 |
魚是否存在(1/0) |
魚類數量(觀察到的魚類數量) |
日平均水溫(攝氏) |
夏季累計水溫(攝氏) |
溪流深度(米) |
| 2016 |
1 |
29 |
• |
• |
12.0 |
803.0 |
0.6 |
| 2016 |
1 |
30 |
0 |
0 |
12.8 |
815.8 |
0.6 |
| 2016 |
1 |
31 |
1 |
3 |
14.2 |
830.0 |
0.7 |
| 2016 |
2 |
1 |
1 |
7 |
14.7 |
844.7 |
0.7 |
| 2016 |
2 |
2 |
0 |
0 |
13.3 |
858.0 |
0.5 |
| 2016 |
2 |
3 |
1 |
2 |
14.1 |
872.1 |
0.7 |
| 2016 |
2 |
4 |
0 |
0 |
12.6 |
884.7 |
0.8 |
| 2016 |
2 |
5 |
• |
• |
12.9 |
897.6 |
0.6 |
| 2016 |
2 |
6 |
• |
• |
13.4 |
811.0 |
0.7 |
回覆:在邏輯迴歸中加入頻率時出現「回應必須至少有兩個等級」的提示嗨@bobby ,
歡迎加入社群!
@dlehman1找到了你遇到的問題:當使用「豐度」列作為頻率或權重時,該列中的零值會導致缺少魚類的行被排除在邏輯回歸擬合之外。這與你沒有這些行的情況相同。
我建議將建模任務分成兩部分:
- 首先,僅使用「存在/不存在」列,透過邏輯迴歸來偵測魚在哪些條件下存在或不存在。
- 其次,對於觀察到魚的情況,嘗試對魚的數量進行建模(由於處理的是計數,所以可能使用泊松廣義回歸)。
如果只預測魚類數量(魚的數量),並使用(零膨脹的)泊松分佈來處理零值和非零值計數,那麼這兩個任務或許可以合併為一個任務完成。
我認為這兩種建模方法(邏輯回歸和泊松回歸)回答的問題略有不同:哪些條件使得魚類得以存在(邏輯回歸),以及不同的條件如何增加魚類的存在(泊松回歸)。
希望這個回答對您有幫助。