% RIDGE   リッジ回帰
%
%   B1 = RIDGE(Y,X,K) は、リッジパラメータ K を使って予測子 X 上の応答
%   ベクトル Y のリッジ回帰を実行することで得られる回帰係数のベクトル
%   B1 を返します。行列 X は、1 つの列を含んではいけません。結果は、
%   平均 0 と標準偏差 1 をもつように、X 列の中心化とスケーリングを行った
%   後に計算されます。Y が n の観測をもち、X は n×p の行列で、K はスカラ
%   の場合、結果の B1 は、p 要素をもつ列ベクトルになります。K が m 要素を
%   もつ場合、B1 は p×m です。
%
%   B0 = RIDGE(Y,X,K,0) は、中心化とスケーリングを行なわずに回帰を行います。
%   結果 B0 は、1 番目が定数項である p+1 の係数をもちます。RIDGE(Y,X,K,1) 
%   は、RIDGE(Y,X,K) と同じです。
%
%   B1 と B0 間の関係は、つぎのとおりです。
%
%      m = mean(X);
%      s = std(X,0,1)';
%      temp = B1./s;
%      B0 = [mean(Y)-m*temp; temp]
%
%   一般的に、B1 は、同じスケールで表示される係数であるリッジトレース
%   (つぎの例を参照) を生成するのにより有効です。B0 は、予測を行うのに
%   より有効です。
%
%   例:  Hald データに対するリッジトレース (リッジパラメータの関数と
%        して係数のプロット) を作成します。
%      load hald
%      k = 0:.01:1;
%      b = ridge(heat, ingredients, k);
%      plot(k, b');
%      xlabel('Ridge parameter'); ylabel('Standardized coef.');
%      title('Ridge Trace for Hald Data')
%      legend('x1','x2','x3','x4');


%   Copyright 1993-2007 The MathWorks, Inc.
