2013-07-11 2 views
10

Название говорит все, я заказал переменную фактора, когда я сгенерировал ее, теперь я хотел бы удалить упорядочение и использовать его как неупорядоченную факторную переменную. И еще один вопрос: если я использую свою переменную-множитель в качестве предиктора в регрессии, он имеет значение для R, если он упорядочен (порядковый) или простая факторная переменная (категориальная)?Как удалить порядок уровней из переменной фактора в R?

+2

yes..Что вы пробовали? для второго вопроса вы можете, по крайней мере, провести некоторые эмпирические тесты. – 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)) 

В линейной или аддитивным модели (в том числе линейной регрессии, логистической регрессии и ничего пригонки с lm, glm и gam) фактор предсказателя обрабатывается точно так же, как упорядоченное предсказателя с точки зрения общей модели поместиться. Вы получите одинаковые предсказанные значения, остатки, статистику отсутствия и т. Д., Независимо от того, какой из них вы используете.

Однако, контрасты отличаются для двух классов. Фактор использует контрасты лечения, то есть обычное кодирование с манекен-переменной с заданным уровнем, рассматриваемым как базовый уровень. В упорядоченном множителе используются полиномиальные контрасты, основанные на ортогональных многочленах (что бы это ни значило: у меня никогда не было причины использовать упорядоченные факторы). Из-за этого t-stats и P-значения для отдельных коэффициентов будут разными.

+0

Да, но я думаю, что результат (взаимодействие для ex :), которое будет показано, будет основано на том, какой коэффициент имеет значение «0», не Это? Итак, в основном, если вы хотите вывести эффект чего-то w.r.t. уровень, имеет смысл сделать его упорядоченным фактором ... – Arun

+0

@Arun Нет, если у вас есть эталонный уровень, вы должны использовать 'release. – Roland

+0

О да, действительно, спасибо @ Роланд. – Arun

Смежные вопросы