Как удалить порядок уровней из переменной фактора в 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-значения для отдельных коэффициентов будут разными.