Какова цель model.matrix()?
Сейчас я прохожу MOOC "Введение в статистическое обучение" от Stanford OpenX. В одном из лабораторных упражнений предлагается создать матрицу модели из данных испытаний, явно используя model.matrix()
,
Выписка из учебника
Теперь мы вычислим ошибку набора проверки для лучшей модели каждого размера модели. Сначала мы делаем модель матрицы из тестовых данных.
test.mat=model.matrix (Salary∼.,data=Hitters [test ,])
Функция model.matrix() используется во многих регрессионных пакетах для построения
X
матрица из данных. Теперь мы запускаем цикл, и для каждого размераi
мы извлекаем коэффициенты изregfit.best
для лучшей модели такого размера умножьте их в соответствующие столбцы матрицы тестовой модели, чтобы сформировать прогнозы, и вычислите тест MSE.
val.errors =rep(NA ,19)
for(i in 1:19){
coefi=coef(regfit .best ,id=i)
pred=test.mat [,names(coefi)]%*% coefi
val.errors [i]= mean(( Hitters$Salary[test]-pred)^2)
}
Я это понимаю model.matrix
конвертирует строковые переменные в значения с разными уровнями, и такие модели, как lm()
будет делать преобразования под капотом.
Тем не менее, какие случаи мы бы явно использовали model.matrix()
, и почему?