主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

robustfit

ロバスト線形回帰のあてはめ

説明

b= robustfit (Xyは,行列X内の予測子に対するベクトルy内の応答についてのロバスト多重線形回帰の係数推定値が格納されているベクトルbを返します。

b= robustfit (Xywfun调优常量は,近似重み関数オプションwfunおよび调优と,モデルが定数項を含むかどうかを決定するインジケーター常量を指定します。wfun调优および常量について[]を渡すと,既定値を使用できます。

b统计数据) = robustfit (___は,前の構文におけるいずれかの入力引数の組み合わせを使用して,推定統計量を格納する構造体统计数据も返します。

すべて折りたたむ

複数の線形モデルについて,ロバスト回帰係数を推定します。

carsmallデータセットを読み込みます。予測子として自動車の重量と馬力を,応答としてガロンあたりのマイル数による燃費を指定します。

负载carsmallx1 =重量;x2 =马力;X = [x1 x2];y = MPG;

ロバスト回帰係数を計算します。

b = robustfit (X, y)
b =3×147.1975 -0.0068 -0.0333

近似モデルをプロットします。

x1fit = linspace (min (x1)、马克斯(x1)、20);x2fit = linspace (min (x2)、马克斯(x2)、20);[X1FIT, X2FIT] = meshgrid (X1FIT X2FIT);YFIT = b(1) + b(2)*X1FIT + b(3)*X2FIT;网格(X1FIT X2FIT YFIT)

データをプロットする。

持有scatter3 (x1, x2, y,“填充”)举行包含(“重量”) ylabel (“马力”) zlabel (“英里”)传说(“模型”“数据”10)视图(50)轴

图中包含一个坐标轴。轴包含两个类型为面,散点的对象。这些对象表示模型、数据。

異なる調整定数を使用して,ロバスト回帰の重み関数を調整します。

傾向 y 1 0 - 2 x でデータを生成し1つの値を変更して外れ値をシミュレートします。

x =(1:10)”;rng (“默认”%的再现性Y = 10 - 2*x + randn(10,1);y (10) = 0;

3つの異なる調整定数について,二重平方重み関数を使用してロバスト回帰残差を計算します。既定の調整定数は4.685です。

Tune_const = [3 4.685 6];I = 1:length(tune_const) [~,stats] = robustfit(x,y,“bisquare”tune_const(我));渣油(:,i) = stats.resid;结束

残差のプロットを作成します。

散射(x,渣油(:1),“b”“填充”)举行情节(渣油(:,2),“处方”“MarkerSize”10“线宽”2)散射(x,渣油(:,3),‘g’“填充”图([min(x) max(x)],[0 0],“——k”)举行网格包含(“x”) ylabel (“残差”)传说(“调= 3”“调= 4.685”“调= 6”“位置”“最佳”

图中包含一个坐标轴。轴包含4个散点,直线类型的对象。这些对象表示tune = 3, tune = 4.685, tune = 6。

3つの異なる調整定数について,残差の平方根平均二乗誤差(RMSE)を計算します。

rmse =√意味着(渣油^ 2))
rmse =1×33.2577 2.7576 2.7099

調整定数を大きくすると,外れ値に割り当てられる重みの削減量が減るため,調整定数が大きくなるほどRMSEは小さくなります。

傾向 y 1 0 - 2 x でデータを生成し1つの値を変更して外れ値をシミュレートします。

x =(1:10)”;rng (“默认”%的再现性Y = 10 - 2*x + randn(10,1);y (10) = 0;

通常の最小二乗回帰を使用して直線を近似します。定数項があるモデルの係数推定値を計算するには,1の列をxに含めます。

BLS =回归(y,[ones(10,1) x])
美国劳工统计局=2×17.8518 - -1.3644

ロバスト回帰を使用して直線の近似を推定します。robustfitは,既定で定数項をモデルに追加します。

[brob,统计]= robustfit (x, y);brob
brob =2×18.4504 - -1.5278

残差と残差の中央絶対偏差を比較することにより,潜在的な外れ値を特定します。

outliers_ind =找到(abs (stats.resid) > stats.mad_s);

ロバスト回帰の残差の棒グラフをプロットします。

酒吧(abs (stats.resid))yline (stats.mad_s“k——”)举行包含(“x”) ylabel (“残差”

图中包含一个坐标轴。轴包含两个类型bar, constantline对象。

データの散布図を作成します。

散射(x, y,“填充”

外れ値をプロットします。

持有情节(x (outliers_ind), y (outliers_ind),“莫”“线宽”, 2)

最小二乗とロバスト近似をプロットします。

情节(x,劳工统计局(1)+ bls (2) * x,“r”)情节(x, brob brob (1) + (2) * x,‘g’)举行包含(“x”) ylabel (“y”)传说(“数据”“离群值”普通最小二乘法的‘强健’回归网格)

图中包含一个坐标轴。轴包含4个散点,直线类型的对象。这些对象分别代表数据、离群值、普通最小二乘、稳健回归。

ロバスト近似に対する外れ値の影響は,最小二乗近似よりも小さくなります。

入力引数

すべて折りたたむ

予測子データ。n行p列の数値行列を指定します。Xの行は観測値に,列は予測子変数に対応します。Xの行数はyと同じでなければなりません。

既定では,常量“关闭”として指定することによって明示的に削除しない限り,robustfitは定数項をモデルに追加します。そのため1の列をXに含めないでください。

データ型:|

応答データ。n行1列の数値ベクトルを指定します。yの各行は異なる観測値に対応します。yの行数はXと同じでなければなりません。

データ型:|

ロバスト近似重み関数。次の表に記載されている重み関数,または関数ハンドルの名前として指定します。robustfitは,调优によって特に指定されない限り,対応する既定の調整定数を使用します。

重み関数 説明 既定の設定の調整定数
“安德鲁” W = (abs(r) 1.339
“bisquare” W = (abs(r)<1) .* (1 - r.^2).^2(biweightとも呼ばれます) 4.685
“柯西” W = 1 ./ (1 + r.²) 2.385
“公平” W = 1 ./ (1 + abs(r)) 1.400
“休伯” W = 1 ./ max(1, abs(r)) 1.345
“物流” W = tanh(r) / r 1.205
“ols” 通常最小二乗(重み関数なし) なし
“犯错误” W = 1 * (abs(r)<1)) 2.795
“welsch” w = exp (- (r ^ 2)) 2.985
関数ハンドル スケーリングされた残差のベクトルrを受け入れ,rと同じサイズの重みのベクトルを返す,カスタム重み関数 1

重み関数の値rは次のようになります。

r =渣油/(调* *√(1小时))

ここで

  • 渣油は,前回の反復の残差のベクトルです。

  • 调优は,調整定数です。

  • hは,最小二乗近似のてこ比値のベクトルです。

  • 年代は,s =疯狂/ 0.6745によって与えられる誤差項の標準偏差の推定値です。

疯了は,残差の中央値に対する残差の中央絶対偏差です。定数0.6745は推定を正規分布に対して不偏にします。Xにp個の列がある場合,中央値を計算するときに,最小のものからp個の絶対偏差が除外されます。

データ型:字符|字符串|函数处理

調整定数。正のスカラーとして指定します。调优を設定しない場合,robustfitは,各重み関数に対応する既定の調整定数を使用します(wfunの表を参照)。

応答が正規分布に従っており,外れ値がない場合,組み込み重み関数の既定の調整定数を使用すると,統計的な効率が通常の最小二乗推定の約95%である係数推定値が得られます。調整定数を小さくすると,大きな残差に割り当てられる重みの削減量が増え,調整定数を大きくすると,大きな残差に割り当てられる重みの削減量が減ります。

データ型:|

あてはめにおける定数項のインジケーター。“上”または“关闭”として指定します。常量“上”である場合,robustfitは1列の最初の列を予測子行列Xに追加し,出的力bは(p + 1)行1列のベクトルになります。常量“关闭”である場合,Xは変更されず,bはp行1列のベクトルになります。

データ型:字符|字符串

出力引数

すべて折りたたむ

ロバスト多重線形回帰の係数推定値。数値ベクトルとして返されます。bはp行1列のベクトルです。pはX内の予測子の数です。

既定では,常量“关闭”として指定することによって明示的に削除しない限り,robustfitは定数項をモデルに追加します。

モデルの統計量。構造体として返されます。次の表は、ロバスト回帰の診断統計量の構造体に関するフィールドについて説明しています。

フィールド 説明
ols_s 通常の最小二乗からのシグマ推定(平方根平均二乗誤差)
robust_s シグマのロバスト推定
mad_s 中央値からの残差の中央絶対偏差を使用して計算されたシグマの推定。反復近似中の残差のスケーリングに使用される
年代 シグマの最終推定。robust_sと,ols_sおよびrobust_sの加重平均の中で大きい値
渣油 残差。観測した値から近似した値を減算した値(生の残差を参照)
rstud スチューデント化残差。残差を残差標準偏差の独立した推定値で除算した値(スチューデント化残差を参照)
se 推定される係数値bの標準誤差
covb 係数推定値の推定共分散行列
coeffcorr 係数推定値の推定相関
t 各係数のt統計量。モデル内の他の予測子が与えられた場合に,対応する係数が0ではないという対立仮説に対して係数が0であるという帰無仮説を検定するために使用します。t =b/ seであることに注意してください。
p 対応する係数が0であるかどうかについての仮説検定のt統計量に対するp値
w ロバスト近似の重みベクトル
R XのQR分解のR因子
教育部 誤差(残差)の自由度。推定された係数の数を観測値の数から減算した値に等しくなる
h 最小二乗近似のてこ比値のベクトル

詳細

すべて折りたたむ

てこ比

てこ比は,入力空間で特定の観測の位置が原因で発生した,回帰予測におけるその観測値の影響を測定します。

観測値我のてこ比はハット行列Hの我番目の対角項H2の値です。ハット行列Hはデータ行列Xに関して次のように定義されます。

H = X (XTX)1XT

ハット行列は“射影行列“とも呼ばれます。これは,観測値のベクトルyを予測値のベクトル y に射影するので”ハット”がyの上に置かれるためです。

てこ比値の合計はp(回帰モデルの係数の個数)なので,てこ比がp / n (nは観測値の個数)を大幅に超える場合,観測値我は外れ値であると考えることができます。

詳細は,ハット行列とてこ比を参照してください。

ヒント

  • robustfitは,Xまたはy内の値を欠損値として扱います。robustfitは,欠損値がある観測値をロバスト近似から省略します。

アルゴリズム

  • robustfitは,反復的に再重み付けした最小二乗を使用して,係数bを計算します。入力wfunは重みを指定します。

  • robustfitは,式发票(X ' * X) * stats.s ^ 2を使用して,係数推定値stats.covbの分散共分散行列を推定します。この推定により,標準誤差stats.seと相関stats.coeffcorrが生成されます。

  • 線形モデルにおいて,yの観測値およびその残差は確率変数です。残差はゼロ平均を伴う正規分布ですが,予測子値によって分散が異なります。残差を比較可能なスケールにするため,robustfitは残差を”スチューデント化”します。つまりrobustfitは,残差の値に依存しない標準偏差の推定値で残差を除算します。スチューデント化残差は,既知の自由度をもつ t 分布に従います。robustfitは,stats.rstudのスチューデント化残差を返します。

代替機能

robustfitは,関数の出力引数のみが必要である場合,またはループ内でモデルのあてはめを複数回繰り返す場合に便利です。ロバストをあてはめた回帰モデルをさらに調べる必要がある場合は,fitlmを使用して線形回帰モデルオブジェクトLinearModelを作成します。名前と値のペアの引数“RobustOpts”の値を“上”に設定します。

参照

杜穆谢尔,W. H.和F. L. O'Brien。将一个健壮的选项集成到多元回归计算环境中。计算机科学与统计:第21届界面学术研讨会论文集。弗吉尼亚州亚历山大市:美国统计协会,1989年。

荷兰,P. W.和R. E.韦尔什。“使用迭代加权最小二乘的稳健回归”《统计通讯:理论与方法》,1977年第6期,第813-827页。

P. J.稳健统计。霍博肯,新泽西州:约翰威利父子公司,1981。

[4] Street, J. O., R. J. Carroll,和D. Ruppert。用迭代再加权最小二乘法计算稳健回归估计的注释美国统计学家。第42卷,1988年,152-154页。

R2006aより前に導入