2012-06-12 43 views
11

我正在運行邏輯迴歸,其中的分類預測變量的等級爲0-6。默認情況下,R將級別0視爲參考組。在邏輯迴歸中更改分類預測變量的參考組

如何告訴R使用級別3而不是級別0作爲參考而無需重命名級別?

+0

是否有將與唱片公司合作的解決方案?例如,如果級別是「a」,「b」,...,「g」,則「R」使用字母排序。如何使用''d「'作爲參考?我嘗試過'C(F,control.treatment,base =「a」)',但它不起作用。 –

+0

'C(F,control.treatment,base = which(levels(F)==「d」))'的作品,但並不優雅。' –

+0

@MathieuDubois,我懶惰的解決方法是通過給類別名稱如「aCategory1」「bCategory2」等。 –

回答

8

使用C功能在數據框中定義你的對比。

如果你的數據幀是DF和因子變量爲fct,然後

DF$fct <- C(DF$fct, contr.treatment, base=3) 

(未經測試)。

+0

工作很好,謝謝! –

5

Frank Harrell的軟件包(允許許多附加功能)非常簡單。
例如,對於一個名爲「DF」據幀

library(Hmisc) 
library(rms) 
dd=datadist(df) 
options(datadist='dd') 
(m=lrm(y ~ catvar, data=df)) #uses the mode as the reference group 
summary(m, catvar=3) #using level=3 as the reference group 
summary(m, catvar=0) #using level=0 as the reference group 

(而且,一些樣本數據本來不錯 - 你總是可以使用dput輸出小數據集)

+0

有趣的靈活解決方案,謝謝。將不得不閱讀什麼datadist代表。 –

4

C函數已經被提出,也參見contrastsrelevelreorder等等。

+0

也非常有幫助。謝謝。 –

2

可以使用relevel功能: 數據框$ X1 < - relevel(datafrmae $ X1, 「在這裏輸入參考類別」)