Reputation: 24613
Following is the example from ?lm.ridge of 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 P values or confidence intervals like I can get in usual linear regression summary.
Upvotes: 4
Views: 5839
Reputation: 37889
As far as I am concerned MASS::lm.ridge
does not calculate p-values for your coefficients. You could use the linearRidge
function from the ridge
package, however, which does. See the following 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 the familiar looking table with your p-values and significance!
Upvotes: 6