% MVREGRESS 欠損値をもつ多変量回帰
%
%   [BETA,SIGMA,RESID]=MVREGRESS(X,Y) は、X の予測変数上で N×D の行列 
%   Y の多変量の観測の多変量回帰を行ない、係数推定値の P×1 の列ベクトルと
%   Y の推定された共分散の D×D の行列 SIGMA と残差の N×D の行列 RESID
%   を返します。X または Y の NaN 値は、欠損値として受け入れます。X に
%   欠損値をもつ観測は無視されます。Y の欠損値は、以下に記述される 
%   'algorithm' パラメータの値に関するハンドルです。
%
%   Y は、D-次元の多変量の観測の N×D 行列です。X は、行列かセル配列の
%   いずれかになります。D=1 の場合、X は、予測変数の N×P の計画行列に
%   なります。D の任意の値において、X は、各セルが 1 つの多変量の観測に
%   対して D×P の計画行列を含む長さ N のセル配列にもなります。すべての
%   観測が同じ D×P の計画行列である場合、X は単一のセルになります。
%
%   [BETA,SIGMA,RESID,VARPARAM]=MVREGRESS(...) は、推定の推定される共分散
%   行列も返します。デフォルトにより、あるいは、'varformat' が 'beta'
%   の場合 (以下を参照)、VARPARM は、係数推定値 BETA の推定される共分散
%   行列です。'varformat' パラメータが 'full' の場合、VARPARAM は、BETA 
%   と SIGMA の推定値の推定される共分散行列です。
%
%   [BETA,SIGMA,RESID,VARPARAM,OBJECTIVE]=MVREGRESS(...) は、最後の繰り
%   返しの後で、目的関数、または、対数尤度の値を返します。
%
%   [...]= MVREGRESS(X,Y,'PARAM1',VALUE1,'PARAM2',VALUE2,...) は、つぎ
%   から選択される追加パラメータの名前/値の組み合わせを指定します。
%     'algorithm'  ECM アルゴリズムによる最尤推定を計算するには 'ecm'、
%                  (入力の共分散行列で重み付けされるオプションの条件
%                  付きの) 最小二乗を実行するには 'cwls'、欠損データを
%                  もつ観測を省略し、順序の多変量正規の推定を計算する
%                  には 'mvn' のいずれか。デフォルトは、完全なデータに
%                  対して 'mvn'、標本サイズがすべてのパラメータを推定
%                  するのに十分である場合の欠損データに対して 'ecm'、
%                  それ以外の場合は 'cwls' です。
%     'maxiter'    最大反復回数 (デフォルト 100)
%     'tolbeta'    BETA の収束の許容誤差 (デフォルトsqrt(eps))
%                  反復は、TOLBETA と TOLOBJ の条件が満たされるまで続け
%                  られます。繰り返し k での収束の検定は、
%                     ||BETA(k)-BETA(k-1)|| < sqrt(P)*TOLBETA * (1+||BETA(k)||)
%                  となり、ここで ||v|| は、ベクトル v のノルムを表します。
%     'tolobj'     目的関数の変化に対する収束の許容誤差 (デフォルト eps^(3/4))。
%                  検定は、つぎのようになります。
%                     |Obj(k)-Obj(k-1)| < TolObj * (1 + |Obj(k)|)
%                  TOLOBJ と TOLBETA が両方とも 0 の場合、関数は、収束の
%                  検定をせずに MAXITER 回の繰り返しを行ないます。
%     'param0'     PARAM に対する初期推定として使用するための P 要素の
%                  ベクトル。デフォルトは 0 のベクトルです。'mvn' アルゴリズム
%                  では使用しません。
%     'covar0'     SIGMA に対する初期推定として使用するための D×D の行列。
%                  デフォルトは単位行列です。入力値は、各繰り返しで重み
%                  行列として使われるため、'cwls' アルゴリズムに対して、
%                  通常、この行列は対角行列で、繰り返しの間は変更されません。
%     'outputfcn'  出力関数。
%     'varformat'  BETA だけに対して VARPARAM を計算するために 'beta' 
%                  (デフォルト)、BETA と SIGMA の両方に対して VARPARAM を
%                  計算するために 'full' のいずれかです。
%     'vartype'    ヘシアン、または 観測情報を使用し VARPARAM を計算する
%                  ために 'hessian' (デフォルト)、または、完全なデータの
%                  フィッシャー、または予想された情報を計算するために 
%                  'fisher' のいずれかです。'hessian' メソッドは、欠損
%                  データのために増加した不確かさを考慮しますが、'fisher' 
%                  メソッドは考慮しません。
%
%   Y の欠損値に対応する RESID 値は、Y に対する条件付きの入力値とフィット
%   した値の間では違いがあります。SIGMA の推定値は、RESID 行列の標本の
%   共分散行列ではありません。
%
%   出力関数は、3 つの引数で呼び出されます。
%      1.  現在のパラメータ推定値のベクトル
%      2.  共分散行列の現在の値の対して 'Covar'、現在の繰り返し数に対して
%          'iteration'、目的関数の現在の値に対して 'fval' のフィールドを
%          もつ構造体。
%      3.  初期化中に呼び出される場合 'init'、繰り返し後に呼び出される
%          場合 'iter'、完了後に呼び出される場合 'done' となるテキスト
%          文字列。
%
%   参考 REGSTATS, MANOVA1.


%    Copyright 2006-2007 The MathWorks, Inc.
