Preetam Pal
2013-Apr-27 23:31 UTC
[R] Selecting ridge regression coefficients for minimum GCV
Hi all,
I have run a ridge regression as follows:
reg=lm.ridge(final$l~final$lag1+final$lag2+final$g+final$u,
lambda=seq(0,10,0.01))
Then I enter :
select(reg) and it returns: modified HKB estimator is 19.3409
modified L-W estimator is 36.18617
smallest value of GCV at 10
I think it means that it is advisable to use the results of regression
corresponding to lambda= 10;
so the next thing I do is:
reg=lm.ridge(final$l~final$lag1+final$lag2+final$g+final$u, lambda=10)
which yields:
final$lag1 final$lag2 final$g
final$u
3.147255e-04 1.802505e-01 -4.461005e-02 -1.728046e-09 -5.154932e-04
The main issue is that I want to access these coefficient values
automatically, i.e. R should run the regression and automatically provide
me these values after taking into consideration that lambda which minimizes
the GCV. Kindly advise me how I can proceed.
Thanks and regards,
Preetam
--
Preetam Pal
(+91)-9432212774
M-Stat 2nd Year, Room No. N-114
Statistics Division, C.V.Raman
Hall
Indian Statistical Institute, B.H.O.S.
Kolkata.
[[alternative HTML version deleted]]
William Dunlap
2013-Apr-27 23:53 UTC
[R] Selecting ridge regression coefficients for minimum GCV
Using a reproducible example:
> library(MASS)
> fits <- lm.ridge(y ~ ., longley, lambda=seq(0,.2,len=9))
> whichIsBest <- which.min(fits$GCV)
> coef(fits)[whichIsBest,] # no need to refit
GNP Unemployed Armed.Forces Population
Year
-1.454883e+03 1.063399e-01 1.285758e-02 8.194928e-03 -7.715296e-01
8.126372e-01
Employed
1.743916e-01
I imagine that help(lm.ridge) contains this information. You can also
look at str(fits) to see what is in the output of lm.ridge() and how it
relates to what is in the standard printout.
Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at
r-project.org] On Behalf
> Of Preetam Pal
> Sent: Saturday, April 27, 2013 4:32 PM
> To: r-help at r-project.org
> Subject: [R] Selecting ridge regression coefficients for minimum GCV
>
> Hi all,
>
> I have run a ridge regression as follows:
>
> reg=lm.ridge(final$l~final$lag1+final$lag2+final$g+final$u,
> lambda=seq(0,10,0.01))
>
> Then I enter :
>
> select(reg) and it returns: modified HKB estimator is 19.3409
> modified L-W estimator is 36.18617
> smallest value of GCV at 10
>
> I think it means that it is advisable to use the results of regression
> corresponding to lambda= 10;
> so the next thing I do is:
>
> reg=lm.ridge(final$l~final$lag1+final$lag2+final$g+final$u, lambda=10)
>
> which yields:
>
> final$lag1 final$lag2 final$g
> final$u
> 3.147255e-04 1.802505e-01 -4.461005e-02 -1.728046e-09 -5.154932e-04
>
>
> The main issue is that I want to access these coefficient values
> automatically, i.e. R should run the regression and automatically provide
> me these values after taking into consideration that lambda which minimizes
> the GCV. Kindly advise me how I can proceed.
>
>
> Thanks and regards,
> Preetam
>
>
> --
> Preetam Pal
> (+91)-9432212774
> M-Stat 2nd Year, Room No. N-114
> Statistics Division, C.V.Raman
> Hall
> Indian Statistical Institute, B.H.O.S.
> Kolkata.
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.