2013-07-11 59 views
10

標題說明了一切,我在生成它時訂購了一個因子變量,現在我想刪除這個訂單並將它用作無序因子變量。 另一個問題是,如果我在迴歸中使用因子變量作爲預測因子,如果它是有序的(有序的)或簡單的因子變量(分類的),它會對R產生影響嗎?如何從R中的因子變量中去除水平的排序?

+2

是的。你有什麼試過?對於第二個問題,你至少可以做一些經驗測試.. – agstudy

回答

14

所有你需要的是

x <- factor(x , ordered = FALSE) 

例如

x <- factor(c(1,2,"a") , ordered = TRUE) 
x 
#[1] 1 2 a 
#Levels: 1 < 2 < a 

x <- factor(x , ordered = FALSE) 
x 
#[1] 1 2 a 
#Levels: 1 2 a 
2

如果通過ordered創建您的變量,這是因爲它的類重置factor一樣簡單。

f <- ordered(letters) 
class(f) <- "factor" 
identical(f, factor(letters)) 

線性或添加劑模型(包括線性迴歸,邏輯迴歸和任何配合lmglmgam)的因子預測器在整體模型而言處理完全一樣的有序預測適合。無論您使用哪一個,您都會得到相同的預測值,殘差,缺乏適合的統計數據等。

但是,對比對於這兩個類是不同的。一個因素使用治療對比,即將具有給定水平的常規虛擬變量編碼視爲基線。有序因子使用基於正交多項式的多項式對比(無論如何;我從來沒有理由使用有序因子)。因此,各個係數的t-統計量和P值將會不同。

+0

是的,但我猜想結果(ex :)的交互會顯示將基於哪個因素具有值「0」,不是它?所以,基本上,如果你想推斷w.r.t.一個級別,它是有意義的,使其成爲一個有序的因素... – Arun

+0

@Arun不,如果你有一個參考水平,你應該使用'發光'。 – Roland

+0

哦,是的,謝謝@羅蘭。 – Arun