Я запускаю LASSO, який має деякі категоричні прогнози змінних і деякі безперервні. У мене питання щодо категоричних змінних. Перший крок, який я розумію, - це розбити кожного з них на манекени, стандартизувати їх для справедливої штрафу, а потім регресувати. Існує кілька варіантів для обробки фіктивних змінних:
Включіть усі, крім однієї, манекенів для кожного фактора, залишивши цей як орієнтир. Інтерпретація фіктивного коефіцієнта відносно виключеної категорії "еталон". Тепер перехоплення - це середня відповідь для еталонної категорії.
Згрупуйте змінні у кожному факторі, щоб вони були виключені або включені всі, але не всі. Я вважаю, що саме тут пропонує @Glen_b :
Як правило, так, ви тримаєте всі фактори разом. Є кілька пакетів R, які можуть це зробити, включаючи glmnet
Додайте всі рівні, як це було запропоновано @ Андрій М тут :
Ви також можете змінити контрастну функцію за замовчуванням, яка за замовчуванням залишає один рівень кожного фактора (кодування лікування). Але через покарання за ласо це більше не потрібно для ідентифікації, і фактично ускладнює інтерпретацію вибраних змінних. Для цього встановіть
contr.Dummy <- function(contrasts, ...){ conT <- contr.treatment(contrasts=FALSE, ...) conT } options(contrasts=c(ordered='contr.Dummy', unordered='contr.Dummy'))
Тепер, які б рівні фактора не були вибрані, ви можете вважати, що ці конкретні рівні мають значення проти всіх пропущених рівнів. У машинному навчанні я бачив це кодування, яке називається однокольоровим кодуванням.
Запитання:
- Яке тлумачення перехоплення та коефіцієнтів у кожному з цих підходів?
- Які міркування пов'язані з вибором одного з них?
- Чи відміняємо ми масштабні коефіцієнти манекенів, а потім інтерпретуємо їх як зміну, що переходить від відключеного до іншого?