Розуміння результатів регресії хребта


9

Я новачок у регресії хребта. Коли я застосував лінійну регресію хребта, я отримав такі результати:

>myridge = lm.ridge(y ~ ma + sa + lka + cb  + ltb , temp, lamda = seq(0,0.1,0.001))
> select(myridge)
modified HKB estimator is 0.5010689 
modified L-W estimator is 0.3718668 
smallest value of GCV  at 0 

Запитання:

  • Чи добре отримати нуль GCV?
  • Що саме це означає?
  • Чи є проблема з моєю моделлю?
  • Як я можу знайти значення ?R2myridge

Змініть ламду на лямбду. Я думаю, що послідовність, яку ви вказали, була проігнорована.

Відповіді:


20

Ви могли б бути краще з каратися пакета або glmnet пакета; обидва реалізують ласо або еластичну сітку, так що поєднуються властивості ласо (вибір особливостей) та регресії хребта (обробка колінеарних змінних). пені також робить хребет. Ці два пакети набагато більш повно представлені, ніж lm.ridge()у пакеті MASS для таких речей.

У будь-якому випадку, λ=0передбачає нульовий штраф, отже, найменші оцінки квадратів є оптимальними в тому сенсі, що вони мали найнижчий показник GCV (узагальненої перехресної перевірки). Однак ви, можливо, не допустили достатньо великого штрафу; Іншими словами, найменші оцінки квадратів були оптимальними для невеликого набору значень ви подивилися. Накресліть шлях хребта (значення коефіцієнтів як функція і подивіться, чи сліди стабілізувалися чи ні. Якщо ні, збільште діапазон оцінюваних значень .λλλ


5

Причина отримання 0 GCV полягає в тому, що ви використовували:

myridge = lm.ridge (y ~ ma + sa + lka + cb + ltb, temp, lamda = seq (0,0.1,0.001))

замість

myridge = lm.ridge (y ~ ma + sa + lka + cb + ltb, temp, lambda = seq (0,0.1,0.001))

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