Що робити висновок із цього сюжету ласо (glmnet)


19

Далі наводиться графік glmnet з альфа-замовчуванням (1, отже, і ласо), використовуючи mtcarsнабір даних у R mpgяк DV та інші як змінні прогнозувальника.

glmnet(as.matrix(mtcars[-1]), mtcars[,1])

введіть тут опис зображення

Що можна зробити з цього сюжету стосовно різних змінних, особливо am, cylта wt(червоних, чорних та світло-синіх ліній)? Як би ми сформулювали висновок у звіті, який публікується?

Я думав про наступне:

  1. wtє найважливішим предиктором Росії mpg. Це негативно впливає на mpg.

  2. cylє слабким негативним предиктором mpg.

  3. amможе бути позитивним показником mpg.

  4. Інші змінні не є надійними предикторами mpg.

Дякуємо за ваші думки з цього приводу.

(Примітка: cylце чорна лінія, яка не дорівнює 0 до дуже близької до неї.)

Редагувати: Далі йде графік (mod, xvar = 'лямбда'), який показує вісь x у порядку, зворотному вище графіку:

введіть тут опис зображення

(PS: Якщо ви вважаєте це питання цікавим / важливим, будь ласка, підкажіть його;)


Схоже, ви забули кому раніше -1в glmnet(as.matrix(mtcars[-1]), mtcars[,1]).
Річард Харді

Якщо кома не задана, R приймає число, яке є номером стовпця, тому воно працює.
rnso

Приємно, я цього не робив раніше.
Річард Харді

2
@RichardHardy будьте обережні; така поведінка відрізняється для кадрів даних та матриць. Кадр даних - це список, і кожен стовпець є елементом цього списку, тому my_data_frame[1]повертає кадр даних з одним стовпцем, тоді як my_data_frame[[1]]і my_data_frame[, 1]обидва повертають вектор, який не "міститься" в кадрі даних. Матриці, однак, на самому ділі просто плоскі вектори зі спеціальним атрибутом , який дозволяє R для доступу до них , як сітки, так my_matrix[1], my_matrix[1, 1]і my_matrix[[1]]все буде повертати перший елемент з my_matrix. my_matrix[, 1] повертає перший стовпець.
shadowtalker

2
Я згадаю тільки , що plot_glmnet функція в plotmo пакеті дає дещо кращі коефіцієнта графіки , оскільки він бере на етикетці overplotting і деякі інші деталі. Приклади можна знайти у главі 6 у віньєтці .
Стівен Мілборроу

Відповіді:


39

λжурнал(λ)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це хороший вибір, так як вони є актуальними у великій схемі речей, і повинні в кінцевому підсумку, розумних розмірах ефекту в невеликої моделі. Це ґрунтується на припущенні, що у вас є деякі зовнішні підстави бажати невеликої трьох моделей прогнозів.

Це правда, цей тип аналізу розглядає весь спектр лямбда і дозволяє встановлювати взаємозв'язки в межах різних складностей моделі. Однак, для остаточної моделі я думаю, що налаштування оптимальної лямбда дуже важлива. За відсутності інших обмежень я б неодмінно використовував перехресну валідацію, щоб знайти, де уздовж цього спектру найбільш передбачувана лямбда, а потім використати цю лямбда для остаточної моделі та остаточного аналізу.

λ

В іншому напрямку іноді існують зовнішні обмеження щодо того, наскільки складною може бути модель (витрати на впровадження, застарілі системи, пояснювальний мінімалізм, інтерпретація бізнесу, естетична спадщина), і такий вид перевірки може допомогти вам зрозуміти форму ваших даних, і компроміси, які ви робите, вибираючи меншу за оптимальну модель.


Дякую за чудовий аналіз. Якщо говорити просто, ви б сказали, що wt, am і cyl - це 3 найважливіші прогнози mpg. Крім того, якщо ви хочете створити модель для прогнозування, які з них ви включите, виходячи з цієї цифри: wt, am і cyl? Або якесь інше поєднання. Крім того, вам здається, що вам не потрібна найкраща лямбда для аналізу. Хіба це не важливо, як при регресії хребта?
rnso

@rnso Я додав відповідь на свою відповідь.
Меттью Друрі

Можливо, "вотчина" повинна бути "бажання"?
Хатшепсут

@Matthew Drury, у мене є кілька речей, про які я не впевнений, я буду вдячний за ваше роз’яснення, # ви писали «наприклад, коли вступають другі прогноктори», як я можу дізнатись із сюжету про інших прогнокторів або третіх провісників / . ## коли я можу сказати, що цей прогноктор важливий чи ні. ## нарешті, як я можу вибрати найкращу модель цієї фурнітури. Більше того, автоматично входить легенда / ярлик. (Я реалізував цей приклад в R)
jeza

5
+6, я, очевидно, пропустив це, коли вийшов. Дійсно приємна робота.
gung - Відновити Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.