![](/img/trans.png)
[英]How to specify the weights parameter in nnet package for multinom method
[英]How to set specific contrasts in multinom() in nnet package?
我有一個需要分類的3級問題。 我想在nnet
包中使用多項邏輯回歸。 類結果有3個因子,P,Q,R。我想把Q作為基本因子。
所以我試着寫下這樣的對比:
P <- c(1,0,0)
R <- c(0,0,1)
contrasts(trainingLR$Class) <- cbind(P,R)
檢查了它:
> contrasts(trainingLR$Class)
P R
P 1 0
Q 0 0
R 0 1
現在multinom()
:
library(nnet)
multinom(Class ~., data=trainingLR)
輸出:
> multinom(Class ~., data=trainingLR)
# weights: 39 (24 variable)
initial value 180.172415
iter 10 value 34.990665
iter 20 value 11.765136
iter 30 value 0.162491
iter 40 value 0.000192
iter 40 value 0.000096
iter 40 value 0.000096
final value 0.000096
converged
Call:
multinom(formula = Class ~ ., data = trainingLR)
Coefficients:
(Intercept) IL8 IL17A IL23A IL23R
Q -116.2881 -16.562423 -34.80174 3.370051 6.422109
R 203.2414 6.918666 -34.40271 -10.233787 31.446915
EBI3 IL6ST IL12A IL12RB2 IL12B
Q -8.316808 12.75168 -7.880954 5.686425 -9.665776
R 5.135609 -20.48971 -2.093231 37.423452 14.669226
IL12RB1 IL27RA
Q -6.921755 -1.307048
R 15.552842 -7.063026
Residual Deviance: 0.0001922658
AIC: 48.00019
題:
如你所見,由於P類沒有出現在輸出中,這意味着它在處理R中的因子變量時按字母順序被視為基數是第一個,並且Q類不被視為基礎級別在這種情況下,如何使其基於其他兩個級別?
我試圖避免使用對比,我發現了relevel
功能選擇所需的水平基線。 以下代碼
trainingLR$Class <- relevel(trainingLR$Class, ref = "P")
應將“P”級別設為您的基線。 因此,嘗試“Q”或“R”級別相同的事情。
R文檔( ?relevel
)提到“這對於以第一級作為參考的contr.treatment
對比有用”。
雖然現在回答可能為時已晚,但由於其他人可能會感興趣,我認為值得分享上述選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.