簡體   English   中英

如何在R中的順序邏輯回歸模型中重新設置因子?

[英]How to re-level factor in ordinal logistic regression model in R?

我目前正在使用R進行序數邏輯回歸模型。輸出系數使用相同的參考水平。 我想知道如何更改參考水平? 具體來說,請參見下面的示例。 我不想使用真實數據,因此我模擬了一個。 a和T均為1到5

polr(formula = T ~ a, data = d, Hess = TRUE)

Coefficients:
      Value Std. Error  t value
a2  0.18823     0.5734  0.32825
a3  0.14747     0.5287  0.27895
a4 -0.50157     0.5766 -0.86985
a5  0.02843     0.5448  0.05219

系數“ a”使用參考級別1,a2,a3,a4和a5基本上將級別2、3、4、5與參考級別1進行比較。我的問題是如何重新調整級別,以便輸出將給出a3 |。 2,a4 | 3,a5 | 4(即beta3-beta2,beta4-beta3)自動生成? 我到處搜索,沒有找到類似的問題。 非常感謝。

我認為您需要MASS軟件包中的contr.sdif函數:來自?contr.sdif

選擇對比度系數,使得單向布局中的編碼系數是第二級和第一級,第三級和第二級等的均值之間的差。 對於有序因素,這最有意義,但不假定這些級別的距離相等。

所以:

library(MASS)
contrasts(d$a) <- contr.sdif(5) # set contrasts: from @Marius in comments
polr(formula = T ~ a, data = d, Hess = TRUE)

根據?polr的文檔,應該可以添加自變量“ contrasts=list(a=contr.sdif)而不是在變量本身上設置對比度。 但是,這似乎會產生錯誤(類似的設置對lm可以正常工作)。 對我來說,這似乎是一個polr錯誤,但是很難相信,因為這是R中經過了良好考驗的一部分……在可能的情況下(可能不是這種情況),我更喜歡公式中的contrasts參數,因為它是在閱讀代碼時更加顯式/可見,但是口味有所不同。

暫無
暫無

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

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