OBSOLETE LINEAR REGRESSION パッケージ チュートリアル
バージョン7.0の時点で,線形回帰機能は
Mathematica に組み込まれた.
»
線形回帰パッケージ
組込み関数のFitは指定された基底関数の線形結合として,データのリストの最小二乗フィットを求める.このパッケージの関数RegressとDesignedRegressは,決定係数RSquared,分散分析表ANOVATable,平均二乗誤差EstimatedVarianceのような一般的に要求される診断のリストを与えることによりFitを増強する.回帰関数の出力は,必要な情報だけが生成されるように制御することができる.非線形回帰パッケージは,非線形モデルについて同様の機能を提供する.
基底関数
は予測因子を独立変数の関数として指定する.応答変数の結果的なモデルは,
である.ここで
は i
番目の応答,
は i
番目の観測で評価される j
番目の基底関数,
は i
番目の残留誤差を示す.
係数
の推定値は,誤差平方和あるいは残差平方和である
を最小化するように計算される.例えば,簡単な線形回帰は基底関数を
,
として定義することによって確立できる.ここで
と
は
を最小化するするものとして求められる.
| Regress[data,{1,x,x2},x] | 二次モデルにデータ点のリスト data をフィットする |
| Regress[data,{1,x1,x2,x1x2},{x1,x2}] |
| 独立変数 と の間の相互作用を含むモデルに data をフィットする |
| Regress[data,{f1,f2...},vars] | 変数 vars の関数 の線形結合からなるモデルに data をフィットする |
Regressの使用
Regressの引数はFitの引数と同様の形式を取る.データは,独立変数と関連した応答の観測値からなるベクトルのリストである.基底関数
は変数として与えられるシンボルの関数でなければならない.3つのシンボルはデータに表現される独立変数に対応する.基底関数のリストに明確に定数関数が与えられていない場合は,定数関数
がデフォルトでリストに加えられる.
データは,データ点のベクトルでもよい.この場合は,Regressはベクトルが値
,
, ...の独立変数を持つ応答変数の値を表すものと想定する.
| {y1,y2,...} | 応答値のリストで指定されたデータ点.ここで1つの独立変数は , , ...という値を取るものと仮定する |
| {{x11,x12,...,y1},{x21,x22,...,y2}} | 行列で指定されたデータ点.ここで は k 番目の独立変数の i 番目の値であり, は i 番目の値である |
Regressでデータを指定する方法
このデータでは,1つの予測子と応答のペアが順に並んでいる.
| Out[3]= |  |
モデル

にフィットするための出力である.
| Out[4]= |  |
フィットした関数だけが必要なら,
Fitを使ってもよい.
| Out[5]= |  |
Regressのオプション
Regressのオプションの中で,2つが計算方法に影響を及ぼす.IncludeConstantはデフォルト設定がTrueとなっており,基底関数で指定されていなくても定数項をモデルに加える.この定数項なしでモデルをフィットするためにはIncludeConstant->Falseと指定し,基底関数に定数を含まないようにする.
Weightsオプションでは,各データ点につき1つずつの重みのリストを指定することにより,重み付き最小二乗が実装できる.デフォルトのWeights->Automaticは各データ点に対する単一の重みを示す.Weights->{w1, ..., wn}のとき,パラメータ推定値は重み付き残差平方和
を最小化するように選ばれる.
Weightsは応答の純関数を指定することもできる.例えば,
を最小化するためのパラメータ推定値を選ぶためにはWeights->(Sqrt[#]&)と設定する.
RegressionReportとBasisNamesの両オプションは出力の形式と内容に関係する.RegressionReportが指定されていないと,Regressは自動的にParameterTable,RSquared,AdjustedRSquared,EstimatedVariance,ANOVATableの値を含むリストを与える.これらのオブジェクトで,デフォルトのSummaryReportが構成される.RegressionReportオプションはデフォルトのセット以上(あるいは以下)の結果が出力に含まれるように,単独のオブジェクトあるいはオブジェクトのリストを指定するために使われる.RegressionReportValues[Regress]はRegress関数のRegressionReportリストに含まれる可能性のあるオブジェクトを与える.
オプションBasisNamesを使うと,ParameterTableおよびParameterCITableのような表で予測因子のヘディングに名前を付けることができる.
回帰関数はSingularValueListあるいはStudentTCIに指定できるオプションならどれを取ることもできる.特に,内部異常値展開の数値的許容差はToleranceを使って指定し,仮説検定・信頼区間の信頼水準はConfidenceLevelを使って指定する.
RegressionReport
の値の例
分散分析表のANOVATableは,指定されたモデルを定数項のみを含む小さいモデルと比較する.IncludeConstant->Falseと指定されていれば,小さい方のモデルがデータに還元される.この表にはモデルによる(
というラベルの付いた行)自由度,平方和,平均平方および残差による(
というラベルの付いた行)自由度,平方和,平均平方が含まれる.残差平均平方はEstimatedVarianceでも使え,残差平方和をその自由度で除算することにより計算される.F 検定は平均平方の比を使って2つのモデルを比較する.F の値が大きい場合は,小さい方のモデルを支持する帰無仮説が棄却される.
それぞれの基底関数の重要性を評価するためには,RegressionReportによって指定されたリストにParameterTableを入れることによって得られるパラメータ表から,パラメータ推定値についての情報を得ることができる.この表には推定値,その標準誤差,各パラメータがゼロかどうかを検定するための t 統計量が含まれる.得られた統計量を自由度
(n は標本サイズ,p は予測因子の数)の t 分布と比較することで,p 値が計算される.パラメータ推定値の信頼区間も t 分布に基づいており,ParameterCITableを指定することで求められる.ParameterConfidenceRegionはすべてのフィットパラメータの楕円の結合信頼領域を指定する.ParameterConfidenceRegion[{fi1, fi2, ...}]は,基底関数の完全集合の部分集合である基底関数
に関連するフィットパラメータの結合条件信頼領域を指定する.
重相関係数の平方は決定係数
と呼ばれ,総平方和に対するモデルの平方和の比によって与えられる.これは予測因子と応答変数との関係を示す要約統計量である.AdjustedRSquaredは
として定義され,モデルの次の部分集合を比較するのに使える調整された値を与える.変動係数は,応答変数の平均に対する残差平方平均平方根の比で与えられる.応答が厳密に正である場合に,誤差変動の相対度数を測定するために変動係数が使われることがある.
MeanPredictionCITableの各行は,独立変数のそれぞれの値における平均応答の信頼区間を与える.SinglePredictionCITableの各行は,独立変数の各値における単独の観測応答の信頼区間を与える.MeanPredictionCITableは回帰曲線を含む可能性の高い領域を与え,SinglePredictionCITableはすべての可能な観測を含む可能性の高い領域を与える.
次では,残差,単独の観測の予測応答の信頼区間表,パラメータ結合信頼領域が返される.
| Out[6]= |  |
| Out[7]= |  |
観測された応答,予測応答,予測された応答の標準誤差,信頼区間も抽出できる.
| Out[9]= |  |
予測応答および信頼区間の上限・下限が対応する

の値とペアになっている.
これで,生データ,フィットしたカーブ,1つの観測の予測応答に対する95%の信頼区間が表示される.
| Out[11]= |  |
| Out[12]= |  |
このパッケージではデータとフィットを評価するための多くの診断を提供している.HatDiagonalは,独立変数の各観測が異常かどうかを測定して,各点のてこ比を与える.CookDとPredictedResponseDeltaは影響診断であり,同時に独立変数と応答変数が異常であるかどうかを測定する.残念ながら,これらの診断は1つの外れ値を検出する場合にのみ有用である.特に診断は1つの外れ値を示すこともあるが,その観測を削除して診断を再計算すると他の外れ値を示す可能性がある.これらの診断はすべてこのマスク効果の対象となる.
外れ値検出のための診断
診断の中には各基底関数がフィットにどの程度寄与しているか,あるいは基底関数が共線関係に関与しているかどうかを示すものもある.SequentialSumOfSquaresベクトルの要素の和はANOVATableにリストされるモデルの平方和を与える.各要素は,各不定数基底関数を順にモデルに加えることにより得られるモデルの平方和の増加量に対応する.PartialSumOfSquaresベクトルの各要素は,対応する不定数基底関数を他の基底関数すべてで構成されるモデルに加えることにより,モデルの平方和における増加量を与える.SequentialSumOfSquaresは単変量多項モデルの次数を決定するのに便利であり,PartialSumOfSquaresは予測因子の大きな集合を小さくするのに便利である.VarianceInflationあるいはEigenstructureTableも予測因子集合の整頓に使用できる.
基底関数の評価と共線性の検出のための診断
1階の自己回帰過程が存在するかどうかのテストには,ダービン・ワトソン(Durbin-Watson)の d 統計量が有用である.この統計量は0と4の間の値を取り,その範囲の中心に近い値は,回帰モデルであることを潜在的に仮定する無相関な誤差を示す.統計量の棄却限界値は標本の大きさ,モデルのパラメータ数,希望の有意水準によって異なる.棄却限界値は,発表されている表に記載されている.
相関誤差の診断
ここで言及していない他の統計は,キャッチャー行列を使って計算することができる.この行列は予測因子がパラメータベクトルについて持っている情報をすべてキャッチする.この行列はRegressionReportオプションでCatcherMatrixを指定することによりRegressからエキスポートすることができる.
予測因子によって提供されるパラメータ情報を記述する行列
線形回帰がもとのデータではなく,既存の計画行列に適用されることがよくある.計画行列とは,独立変数の観測値において評価された基底関数を含むリストである.データがすでに,対応する応答データのベクトルを持つ計画行列の形式であるなら,Regressで提供される解析と同じ解析にDesignedRegressを使うことができる.DesignMatrixはデータを計画行列の形式にする.
| DesignedRegress[designmatrix,response] | 応答データのベクトル response が与えられたときに designmatrix によって表されるモデルをフィットする |
| DesignMatrix[data,{f1,f2...},vars] | 変数 vars の関数 の線形結合として data をモデル化するための計画行列を与える |
計画行列を使った線形回帰の関数
DesignMatrixはRegressと同じ引数を取る.これはDesignedRegressに必要な引数を得るため,あるいは基底関数を正しく指定したかどうかを調べるために使うことができる.DesignMatrixを使うときは,IncludeConstant->Falseが指定されていない限り,常に定数項が含まれる.RegressのオプションでIncludeConstant以外はすべてDesignedRegressでも受け入れられる.RegressionReportValues[DesignedRegress]はDesignedRegress関数のRegressionReportリストに含まれる可能性のある値を与える.
| Out[13]= |  |
| Out[14]= |  |
| Out[15]= |  |
| DesignedRegress[svd,response] | 応答データのベクトル response が与えられたら,計画行列の特異値分解 svd によって表されるモデルをフィットする |
計画行列の特異値分解を使う線形回帰
DesignedRegressは計画行列の特異値分解も受け入れる.回帰に重みが付いていなければ,このアプローチにより計画行列分解の再計算が省略できる.
いくつかの応答に関心がある場合は,以下の方法により計画行列分解の再計算が省略できる.
| Out[17]= |  |