λжурнал( λ )∑i| βi|
З цією метою я створив деякі корельовані та некорельовані дані, щоб продемонструвати:
x_uncorr <- matrix(runif(30000), nrow=10000)
y_uncorr <- 1 + 2*x_uncorr[,1] - x_uncorr[,2] + .5*x_uncorr[,3]
sigma <- matrix(c( 1, -.5, 0,
-.5, 1, -.5,
0, -.5, 1), nrow=3, byrow=TRUE
)
x_corr <- x_uncorr %*% sqrtm(sigma)
y_corr <- y_uncorr <- 1 + 2*x_corr[,1] - x_corr[,2] + .5*x_corr[,3]
Дані x_uncorrмають некорельовані стовпці
> round(cor(x_uncorr), 2)
[,1] [,2] [,3]
[1,] 1.00 0.01 0.00
[2,] 0.01 1.00 -0.01
[3,] 0.00 -0.01 1.00
при цьому x_corrмає заздалегідь встановлену кореляцію між стовпцями
> round(cor(x_corr), 2)
[,1] [,2] [,3]
[1,] 1.00 -0.49 0.00
[2,] -0.49 1.00 -0.51
[3,] 0.00 -0.51 1.00
Тепер давайте розглянемо графіки ласо для обох цих випадків. Спочатку некорельовані дані
gnet_uncorr <- glmnet(x_uncorr, y_uncorr)
plot(gnet_uncorr)

Виділяються пара особливостей
- Прогнози переходять до моделі в порядку їх величини істинного коефіцієнта лінійної регресії.
- ∑i| βi|∑i|βi|
- Коли новий предиктор входить у модель, він детерміновано впливає на нахил шляху коефіцієнтів усіх прогнозів, які вже є в моделі. Наприклад, коли другий предиктор входить у модель, нахил першого шляху коефіцієнта розрізається навпіл. Коли третій предиктор входить у модель, нахил шляху коефіцієнта дорівнює третині його початкового значення.
Це все загальні факти, що стосуються регресії ласо з некорельованими даними, і всі вони можуть бути або доведені вручну (хороша вправа!), Або знайдені в літературі.
Тепер давайте робити корельовані дані
gnet_corr <- glmnet(x_corr, y_corr)
plot(gnet_corr)

Ви можете прочитати деякі речі з цього сюжету, порівнявши його з неспорідненим випадком
- Перший та другий контури предиктора мають таку саму структуру, як і некорельований випадок, поки третій предиктор не ввійде в модель, навіть якщо вони співвідносяться. Це особливість двох випадків передбачення, які я можу пояснити в іншій відповіді, якщо є інтерес, це займе мене трохи далеко від поточної дискусії.
- ∑ | βi|
Тож тепер давайте подивимось на ваш сюжет із набору даних про автомобілі та прочитаємо деякі цікаві речі (я відтворив ваш сюжет, щоб ця дискусія була легше читати):
Слово попередження : Я написав наступний аналіз, який базувався на припущенні, що криві показують стандартизовані коефіцієнти, у цьому прикладі їх немає. Нестандартні коефіцієнти не є безрозмірними і не порівнянні, тому з них не можна робити висновків з точки зору прогнозної важливості. Щоб наступний аналіз був достовірним, будь ласка, зробіть вигляд, що графік має стандартизовані коефіцієнти, і будь ласка, виконайте власний аналіз на стандартизованих шляхах коефіцієнта.

- Як ви кажете,
wtпрогноз здається дуже важливим. Він входить в модель спочатку і має повільний і стійкий спуск до остаточного значення. У нього є кілька кореляцій, які роблять його злегка кумедною їздою, amзокрема, здається, він має драстичний ефект, коли він заходить.
amтакож важливо. Він з'являється пізніше і співвідноситься з тим wt, що впливає на схил wtнасильницьким чином. Це також співвідноситься з carbі qsecтому, що ми не бачимо передбачуваного пом’якшення схилу, коли вони входять. Після того, як ці чотири змінних увійшов , хоча ми дійсно бачимо хороший некорреліровани шаблон, так що , здається, коррелірованни з усіма провісниками в кінці.
- Щось входить приблизно в 2,25 на осі x, але сам шлях не помітний, його можна виявити лише за впливом на параметри
cylта wtпараметри.
cylдосить захоплююче. Він входить другий, тому важливий для маленьких моделей. Після інших змінних, і особливо amвведених, це вже не так важливо, і його тенденція повертається назад, врешті-решт, це все, окрім як видалено. Здається, ефект cylможе бути повністю захоплений змінними, які вводяться в кінці процесу. Від того, чи є більш доцільним використання cyl, або додатковою групою змінних, насправді залежить від компромісу зміщення зміщення. Наявність групи у вашій кінцевій моделі суттєво збільшить її відхилення, але, можливо, нижчий ухил компенсує це!
Це невеликий вступ до того, як я навчився читати інформацію з цих сюжетів. Я думаю, що вони безліч задоволень!
Дякую за чудовий аналіз. Якщо говорити просто, ви б сказали, що wt, am і cyl - це 3 найважливіші прогнози mpg. Крім того, якщо ви хочете створити модель для прогнозування, які з них ви включите на основі цієї цифри: wt, am і cyl? Або якесь інше поєднання. Крім того, вам здається, що вам не потрібна найкраща лямбда для аналізу. Хіба це не важливо, як при регресії хребта?
Я б сказав, що це стосується wtі amчіткого вирізання, вони важливі. cylнабагато тонкіший, він важливий у маленькій моделі, але зовсім не доречний у великій.
Я б не зміг визначити, що включати, виходячи лише з фігури, що дійсно повинно відповісти в контексті того, що ви робите. Можна сказати , що якщо ви хочете модель три провісника, а потім wt, amі cylце хороший вибір, так як вони є актуальними у великій схемі речей, і повинні в кінцевому підсумку, розумних розмірах ефекту в невеликої моделі. Це ґрунтується на припущенні, що у вас є деякі зовнішні підстави бажати невеликої трьох моделей прогнозів.
Це правда, цей тип аналізу розглядає весь спектр лямбда і дозволяє встановлювати взаємозв'язки в межах різних складностей моделі. Однак, для остаточної моделі я думаю, що налаштування оптимальної лямбда дуже важлива. За відсутності інших обмежень я б неодмінно використовував перехресну валідацію, щоб знайти, де уздовж цього спектру найбільш передбачувана лямбда, а потім використати цю лямбда для остаточної моделі та остаточного аналізу.
λ
В іншому напрямку іноді існують зовнішні обмеження щодо того, наскільки складною може бути модель (витрати на впровадження, застарілі системи, пояснювальний мінімалізм, інтерпретація бізнесу, естетична спадщина), і такий вид перевірки може допомогти вам зрозуміти форму ваших даних, і компроміси, які ви робите, вибираючи меншу за оптимальну модель.
-1вglmnet(as.matrix(mtcars[-1]), mtcars[,1]).