В названии говорится все, я заказал переменную фактора, когда я сгенерировал ее, теперь я хотел бы удалить упорядочение и использовать его как неупорядоченную факторную переменную. И еще один вопрос: если я использую свою факторную переменную в качестве предиктора в регрессии, она имеет значение для R, если она упорядочена (порядковая) или простая факторная переменная (категоричная)?
Как удалить порядок уровней из переменной фактора в R?
Ответ 1
Все, что вам нужно, это
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-значения для отдельных коэффициентов будут разными.