next up previous index
Next: Principal Components Regression Up: Biased Linear Regression Solutions Previous: Biased Linear Regression Solutions   Index

Ridge Regression

Example of a matlab ridge regression function:

function bks=ridge(Z,Y,kvalues)
% Ridge Function of Z (centered, explanatory)
% Y is the response, 
% kvalues are the values where to compute
[n,p]=size(Z);
ZpY=Z'*Y;
ZpZ=Z'*Z;
m=length(kvalues);
bks=ones(p,m);
for k =1:m
 bks(:,k)=(ZpZ+diag(kvalues(k)))\ZpY;
end
>> kvalues=(0:.05:.5)
kvalues =
  Columns 1 through 7 
         0    0.0500    0.1000    0.1500    0.2000    0.2500    0.3000
  Columns 8 through 11 
    0.3500    0.4000    0.4500    0.5000
>> ridge(Z,Y,(0:.05:.5))
ans =
  Columns 1 through 7 
    1.5511    1.5176    1.4882    1.4622    1.4390    1.4183    1.3996
    0.5102    0.4775    0.4488    0.4234    0.4009    0.3806    0.3624
    0.1019    0.0678    0.0378    0.0113   -0.0122   -0.0334   -0.0524
   -0.1441   -0.1762   -0.2043   -0.2292   -0.2514   -0.2713   -0.2892
  Columns 8 through 11 
    1.3827    1.3673    1.3532    1.3403
    0.3459    0.3309    0.3172    0.3046
   -0.0696   -0.0853   -0.0997   -0.1128
   -0.3054   -0.3201   -0.3336   -0.3460
%Formula gives for choice of k:
>> norm(Yhat-Yc)^2
ans =
   47.8636
>> 47.8636/(13-5)
ans =
    5.9829   % estimates the variance sigma^2
>> bk0'*bk0
ans =
    2.6973
>> k=(4*5.9829)/2.6973
k =
    8.8724     % This is a suggested value for k



Susan Holmes 2002-01-12