線形回帰パッケージ
組込み関数のFitは指定された基底関数の線形結合として,データのリストの最小二乗フィットを求める.このパッケージの関数RegressとDesignedRegressは,決定係数RSquared,分散分析表ANOVATable,平均二乗誤差EstimatedVarianceのような一般的に要求される診断のリストを与えることによりFitを増強する.回帰関数の出力は,必要な情報だけが生成されるように制御することができる.非線形回帰パッケージは,非線形モデルについて同様の機能を提供する.
基底関数 fj は予測因子を独立変数の関数として指定する.応答変数の結果的なモデルは,yi=β1f1i+β2f2i+…+βpfpi+ei である.ここで yi は i 番目の応答,fji は i 番目の観測で評価される j 番目の基底関数,ei は i 番目の残留誤差を示す.
係数 β1,…,βp の推定値は,誤差平方和あるいは残差平方和である を最小化するように計算される.例えば,簡単な線形回帰は基底関数を f1=1,f2=x として定義することによって確立できる.ここで β1と β2は[yi-(β1+β2xi)]2を最小化するするものとして求められる.
Regress[data,{1,x,x2},x] | 二次モデルにデータ点のリスト data をフィットする |
Regress[data,{1,x1,x2,x1x2},{x1,x2}] | |
独立変数 x1と x2 の間の相互作用を含むモデルに data をフィットする | |
Regress[data,{f1,f2…},vars] | 変数 vars の関数 fi の線形結合からなるモデルに data をフィットする |
Regressの使用
Regressの引数はFitの引数と同様の形式を取る.データは,独立変数と関連した応答の観測値からなるベクトルのリストである.基底関数 fj は変数として与えられるシンボルの関数でなければならない.3つのシンボルはデータに表現される独立変数に対応する.基底関数のリストに明確に定数関数が与えられていない場合は,定数関数 fj=1がデフォルトでリストに加えられる.
データは,データ点のベクトルでもよい.この場合は,Regressはベクトルが値1, 2, …の独立変数を持つ応答変数の値を表すものと想定する.
{y1,y2,…} | 応答値のリストで指定されたデータ点.ここで1つの独立変数は1, 2, …という値を取るものと仮定する |
{{x11,x12,…,y1},{x21,x22,…,y2}} | 行列で指定されたデータ点.ここで xik は k 番目の独立変数の i 番目の値であり,yi は i 番目の値である |
Regressでデータを指定する方法
オプション名
|
デフォルト値
| |
IncludeConstant | True | モデルに自動的に含まれる定数 |
RegressionReport | SummaryReport | 含まれるフィット診断 |
Weights | Automatic | 各データ点あるいは純関数に対する重みのリスト |
BasisNames | Automatic | 表のヘディングの基礎要素の名前 |
Regressのオプション
Regressのオプションの中で,2つが計算方法に影響を及ぼす.IncludeConstantはデフォルト設定がTrueとなっており,基底関数で指定されていなくても定数項をモデルに加える.この定数項なしでモデルをフィットするためにはIncludeConstant->Falseと指定し,基底関数に定数を含まないようにする.
Weightsオプションでは,各データ点につき1つずつの重みのリストを指定することにより,重み付き最小二乗が実装できる.デフォルトのWeights->Automaticは各データ点に対する単一の重みを示す.Weights->{w1,…,wn}のとき,パラメータ推定値は重み付き残差平方和wi を最小化するように選ばれる.
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を使って指定する.
BestFit | 最適フィット関数 |
BestFitParameters | 最適フィットパラメータ推定値 |
ANOVATable | 分散分析表 |
EstimatedVariance | 推定誤差分散 |
ParameterTable | 標準誤差と検定統計量を含むパラメータ情報の表 |
ParameterCITable | パラメータに対する信頼区間の表 |
ParameterConfidenceRegion | パラメータに対する楕円形信頼領域 |
ParameterConfidenceRegion[{fi1,fi2,…}] | |
パラメータ{fi1,fi2,…}に対する楕円形信頼領域 | |
FitResiduals | 観測された応答と予測された応答の差 |
PredictedResponse | 独立変数の観測値で最適フィット関数を評価することで得られるフィットした値 |
SinglePredictionCITable | 応答変数の1回の観測を予測するための信頼区間の表 |
MeanPredictionCITable | 応答変数の期待値を予測するための信頼区間の表 |
RSquared | 決定係数 |
AdjustedRSquared | 調整された決定係数 |
CoefficientOfVariation | 変動係数 |
CovarianceMatrix | パラメータの共分散行列 |
CorrelationMatrix | パラメータの相関行列 |
RegressionReport の値の例
分散分析表のANOVATableは,指定されたモデルを定数項のみを含む小さいモデルと比較する.IncludeConstant->Falseと指定されていれば,小さい方のモデルがデータに還元される.この表にはモデルによる(Modelというラベルの付いた行)自由度,平方和,平均平方および残差による(Errorというラベルの付いた行)自由度,平方和,平均平方が含まれる.残差平均平方はEstimatedVarianceでも使え,残差平方和をその自由度で除算することにより計算される.F 検定は平均平方の比を使って2つのモデルを比較する.F の値が大きい場合は,小さい方のモデルを支持する帰無仮説が棄却される.
それぞれの基底関数の重要性を評価するためには,RegressionReportによって指定されたリストにParameterTableを入れることによって得られるパラメータ表から,パラメータ推定値についての情報を得ることができる.この表には推定値,その標準誤差,各パラメータがゼロかどうかを検定するための t 統計量が含まれる.得られた統計量を自由度 n-p(n は標本サイズ,p は予測因子の数)の t 分布と比較することで,p 値が計算される.パラメータ推定値の信頼区間も t 分布に基づいており,ParameterCITableを指定することで求められる.ParameterConfidenceRegionはすべてのフィットパラメータの楕円の結合信頼領域を指定する.ParameterConfidenceRegion[{fi1,fi2,…}]は,基底関数の完全集合の部分集合である基底関数{fi1,fi2,…}に関連するフィットパラメータの結合条件信頼領域を指定する.
重相関係数の平方は決定係数 R2と呼ばれ,総平方和に対するモデルの平方和の比によって与えられる.これは予測因子と応答変数との関係を示す要約統計量である.AdjustedRSquaredは =1-()(1-R2)として定義され,モデルの次の部分集合を比較するのに使える調整された値を与える.変動係数は,応答変数の平均に対する残差平方平均平方根の比で与えられる.応答が厳密に正である場合に,誤差変動の相対度数を測定するために変動係数が使われることがある.
MeanPredictionCITableの各行は,独立変数のそれぞれの値における平均応答の信頼区間を与える.SinglePredictionCITableの各行は,独立変数の各値における単独の観測応答の信頼区間を与える.MeanPredictionCITableは回帰曲線を含む可能性の高い領域を与え,SinglePredictionCITableはすべての可能な観測を含む可能性の高い領域を与える.
このパッケージではデータとフィットを評価するための多くの診断を提供している.HatDiagonalは,独立変数の各観測が異常かどうかを測定して,各点のてこ比を与える.CookDとPredictedResponseDeltaは影響診断であり,同時に独立変数と応答変数が異常であるかどうかを測定する.残念ながら,これらの診断は1つの外れ値を検出する場合にのみ有用である.特に診断は1つの外れ値を示すこともあるが,その観測を削除して診断を再計算すると他の外れ値を示す可能性がある.これらの診断はすべてこのマスク効果の対象となる.
HatDiagonal | ハット行列 X(XTX)-1XT の対角成分.ここで X は n × p (重み付き)の計画行列である |
JackknifedVariance | {v1,…,vn}.ここで vi は i 番目の要素が削除されたデータを使って計算された推定誤差分散である |
StandardizedResiduals | 推定誤差分散を使って計算された標準誤差により,スケールされた残差をフィットする |
StudentizedResiduals | ジャックナイフ推定誤差分散を使って計算された標準誤差でスケールされた残差をフィットする |
CookD | {d1,…,dn}.ここで di は i 番目の要素が外れ値かどうかを評価するクックの平方距離の診断である |
PredictedResponseDelta | {d1,…,dn}.ここで di はKuhとWelschのDFFITS診断である.この診断はすべてのデータを使用したときと,i 番目の要素を削除したデータを使用したときの,i 番目の予測応答の差を標準化し符号を付けて与える |
BestFitParametersDelta | {{d11,…,d1p},…,{dn1,…,dnp}}.ここで dij は,KuhとWelschのDFBETAS診断である.この診断は,すべてのデータを使ったときと,i 番目の要素を削除したデータを使ったときの j 番目のパラメータ推定の差を標準化し,符号をつけて与える |
CovarianceMatrixDetRatio | {r1,…,rn}.ここで ri は,KuhとWelschのCOVRATIO診断である.この診断は,もとのデータを使って計算されたパラメータ共分散行列の行列式に対する,i 番目のデータを削除したデータを使って計算したパラメータ共分散行列の比を与える |
診断の中には各基底関数がフィットにどの程度寄与しているか,あるいは基底関数が共線関係に関与しているかどうかを示すものもある.SequentialSumOfSquaresベクトルの要素の和はANOVATableにリストされるモデルの平方和を与える.各要素は,各不定数基底関数を順にモデルに加えることにより得られるモデルの平方和の増加量に対応する.PartialSumOfSquaresベクトルの各要素は,対応する不定数基底関数を他の基底関数すべてで構成されるモデルに加えることにより,モデルの平方和における増加量を与える.SequentialSumOfSquaresは単変量多項モデルの次数を決定するのに便利であり,PartialSumOfSquaresは予測因子の大きな集合を小さくするのに便利である.VarianceInflationあるいはEigenstructureTableも予測因子集合の整頓に使用できる.
PartialSumOfSquares | 各不定数の基底関数を残りの基底関数で構成されるモデルに加えることで,モデルの平方和の増分を与える |
SequentialSumOfSquares | 各不定数の基底関数の1要素が順にモデルに加えられることにより,モデルの平方和の増分を与える |
VarianceInflation | {v1,…,vp}.ここで vj は j 番目のパラメータに関連する分散拡大要因である |
EigenstructureTable | 不定数の基底関数の相関行列の固有構造を与える表 |
1階の自己回帰過程が存在するかどうかのテストには,ダービン・ワトソン(Durbin‐Watson)の d 統計量が有用である.この統計量は0と4の間の値を取り,その範囲の中心に近い値は,回帰モデルであることを潜在的に仮定する無相関な誤差を示す.統計量の棄却限界値は標本の大きさ,モデルのパラメータ数,希望の有意水準によって異なる.棄却限界値は,発表されている表に記載されている.
DurbinWatsonD | ダービン・ワトソン(Durbin‐Watson)の d 統計量 |
ここで言及していない他の統計は,キャッチャー行列を使って計算することができる.この行列は予測因子がパラメータベクトルについて持っている情報をすべてキャッチする.この行列はRegressionReportオプションでCatcherMatrixを指定することによりRegressからエキスポートすることができる.
CatcherMatrix | p × n の行列 C.ここで C·y は推測されたパラメータべクトル,y は応答ベクトルである |
線形回帰がもとのデータではなく,既存の計画行列に適用されることがよくある.計画行列とは,独立変数の観測値において評価された基底関数を含むリストである.データがすでに,対応する応答データのベクトルを持つ計画行列の形式であるなら,Regressで提供される解析と同じ解析にDesignedRegressを使うことができる.DesignMatrixはデータを計画行列の形式にする.
DesignedRegress[designmatrix,response] | 応答データのベクトル response が与えられたときに designmatrix によって表されるモデルをフィットする |
DesignMatrix[data,{f1,f2…},vars] | 変数 vars の関数 fi の線形結合として data をモデル化するための計画行列を与える |
DesignMatrixはRegressと同じ引数を取る.これはDesignedRegressに必要な引数を得るため,あるいは基底関数を正しく指定したかどうかを調べるために使うことができる.DesignMatrixを使うときは,IncludeConstant->Falseが指定されていない限り,常に定数項が含まれる.RegressのオプションでIncludeConstant以外はすべてDesignedRegressでも受け入れられる.RegressionReportValues[DesignedRegress]はDesignedRegress関数のRegressionReportリストに含まれる可能性のある値を与える.
DesignedRegress[svd,response] | 応答データのベクトル response が与えられたら,計画行列の特異値分解 svd によって表されるモデルをフィットする |
DesignedRegressは計画行列の特異値分解も受け入れる.回帰に重みが付いていなければ,このアプローチにより計画行列分解の再計算が省略できる.