Я новичок в Ридж регрессии. Когда я применил линейную регрессию гребня, я получил следующие результаты:
>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
? - Что именно это значит?
- Есть ли проблема с моей моделью?
- Как я могу найти значение ?
myridge
ridge-regression
samarasa
источник
источник
Ответы:
Вы могли бы быть лучше с наказываться пакета или glmnet пакета; оба реализуют лассо или эластичную сетку, поэтому комбинируют свойства лассо (выбор признаков) и регрессии гребня (обработка коллинеарных переменных). наказан также ридж. Эти два пакета гораздо более полнофункциональны, чем
lm.ridge()
в пакете MASS для таких вещей.В любом случае, подразумевает нулевой штраф, поэтому оценки наименьших квадратов являются оптимальными в том смысле, что у них был самый низкий показатель GCV (обобщенная перекрестная проверка). Тем не менее, вы, возможно, не допустили достаточно большой штраф; другими словами, оценки наименьших квадратов были оптимальными из небольшого набора значений вы просматривали. Постройте путь гребня (значения коэффициентов как функцию от и посмотрите, стабилизировались ли следы или нет. Если нет, увеличьте диапазон значений оцениваемых.λ = 0 λ λ λ
источник
Причина, по которой вы получаете 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))
источник