How to calculate P values ββin ridge regression in R?
Below is an example from the "lm.ridge MASS" package:
> data(longley) # not the same as the S-PLUS dataset
> names(longley)[1] <- "y"
> lm.ridge(y ~ ., longley)
GNP Unemployed Armed.Forces Population Year Employed
2946.85636017 0.26352725 0.03648291 0.01116105 -1.73702984 -1.41879853 0.23128785
> plot(lm.ridge(y ~ ., longley,
+ lambda = seq(0,0.1,0.001)))
> select(lm.ridge(y ~ ., longley,
+ lambda = seq(0,0.1,0.0001)))
modified HKB estimator is 0.006836982
modified L-W estimator is 0.05267247
smallest value of GCV at 0.0057
How can I calculate the P values ββor confidence intervals, how can I get in a normal linear regression summary.
(PS: If you find this question interesting / important, please vote for it;)
source to share
MASS::lm.ridge
Doesn't calculate p-values ββfor your coefficients as far as I know . However, you can use a function linearRidge
from a package ridge
, which it does. See next example:
data(longley)
names(longley)[1] <- "y"
library(ridge)
mymod <- linearRidge(y ~ ., longley)
> summary(mymod)
Call:
linearRidge(formula = y ~ ., data = longley)
Coefficients:
Estimate Scaled estimate Std. Error (scaled) t value (scaled) Pr(>|t|)
(Intercept) -1.247e+03 NA NA NA NA
GNP 4.338e-02 1.670e+01 3.689e+00 4.526 6.0e-06 ***
Unemployed 1.184e-02 4.286e+00 2.507e+00 1.710 0.0873 .
Armed.Forces 1.381e-02 3.721e+00 1.905e+00 1.953 0.0508 .
Population -2.831e-02 -7.627e-01 5.285e+00 0.144 0.8853
Year 6.566e-01 1.211e+01 2.691e+00 4.500 6.8e-06 ***
Employed 6.745e-01 9.175e+00 4.996e+00 1.836 0.0663 .
---
Signif. codes: 0 β***β 0.001 β**β 0.01 β*β 0.05 β.β 0.1 β β 1
Ridge parameter: 0.01046912, chosen automatically, computed using 2 PCs
Degrees of freedom: model 3.67 , variance 3.218 , residual 4.123
And using summary
, you get a familiar table with your meanings and significance!
source to share