2015-01-14 3 views
0

Я обнаружил, что многие примеры в книге APM доктора Маккса Куна имеют тенденцию охватывать наборы данных, которые имеют непрерывные переменные в качестве предиктора. Если работать с набором данных, имеющим порядковые коэффициенты, было бы целесообразно превратить эти переменные в фиктивные переменные и потерять естественный порядок переменных? Мой вопрос мотивирован необходимостью предварительной обработки (т. Е. Центра, масштабирования) набора данных. Я хотел бы знать, как другие подходят к этому в R?порядковые переменные и каретка при предварительной обработке

+1

Я думаю, что этот вопрос более подходит для [CrossValidated] (http://stats.stackexchange.com/), чем SO. – nrussell

+3

Согласитесь, это не вопрос кодирования, но предполагает, что _not_ превратится в фиктивные переменные, так как это потеряет информацию. Лучше принуждать к числовому, если факторы «упорядочены». –

+0

Приношу свои извинения. Я забыл упомянуть о том, что мне интересно узнать, как это сделать в R. – user2300643

ответ

2

Если коэффициент имеет класс ordered, он будет производить линейные комбинации, поддерживающие некоторый уровень полинома. См. The Basics of Encoding Categorical Data for Predictive Models и ?ordered. Например:

> pred2 <- ordered(letters[1:5]) 
> model.matrix(~pred2) 

    (Intercept) pred2.L pred2.Q pred2.C pred2^4 
1   1 -0.6325 0.5345 -3.162e-01 0.1195 
2   1 -0.3162 -0.2673 6.325e-01 -0.4781 
3   1 0.0000 -0.5345 -4.096e-16 0.7171 
4   1 0.3162 -0.2673 -6.325e-01 -0.4781 
5   1 0.6325 0.5345 3.162e-01 0.1195 
attr(,"assign") 
[1] 0 1 1 1 1 
attr(,"contrasts") 
attr(,"contrasts")$pred2 
[1] "contr.poly" 

Макс

+0

Можно также заказать дескриптор dummyVars? Или я должен просто оставить как упорядоченное(), а затем model.matrix(), которое должно обрабатывать все для меня, чтобы я мог preProcess()? Я не совсем понимаю полиномиальные преобразования ... – user2300643

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