ロバスト線形モデルの重み付き


19

MASSパッケージのRを使用してrlm()、MMの重みでロバストな線形モデルを推定しました。`R``はモデルの値を提供しませんが、意味のある量であればR 2が欲しいです。また、ロバスト回帰で観測値に重みが付けられたのと同じ方法で、合計分散と残差を重み付けするR 2値を持つことに意味があるかどうかを知りたいと思っています。私の一般的な考え方は、回帰の目的で、何らかの方法で外れ値であるため、いくつかの推定値の影響が少ない重みを本質的に使用している場合、r 2を計算するためにそれらを与える必要があるかもしれないということです同じ見積もりは影響が少ない?R2R2r2

と重み付きR 2の2つの簡単な関数を書きました。それらは以下にあります。また、HI9と呼ばれる私のモデルに対してこれらの関数を実行した結果も含めました。編集:私は式を与えるUNSWのアデルコスターのウェブページが見つかりそれは両方の計算の計算に重みベクトルを含んでいると、私がやったように、そしてより正式な参照のために彼女に尋ねた:のhttp://web.maths。 unsw.edu.au/~adelle/Garvan/Assays/GoodnessOfFit.html(この重み付けされたr 2の解釈方法については、Cross Validatedからのヘルプを引き続き探しています。)R2R2R2SSeSStr2

#I used this function to calculate a basic r-squared from the robust linear model
r2 <- function(x){  
+ SSe <- sum((x$resid)^2);  
+ observed <- x$resid+x$fitted;  
+ SSt <- sum((observed-mean(observed))^2);  
+ value <- 1-SSe/SSt;  
+ return(value);  
+ }  
r2(HI9)  
[1] 0.2061147

#I used this function to calculate a weighted r-squared from the robust linear model
> r2ww <- function(x){
+ SSe <- sum((x$w*x$resid)^2); #the residual sum of squares is weighted
+ observed <- x$resid+x$fitted;
+ SSt <- sum((x$w*(observed-mean(observed)))^2); #the total sum of squares is weighted      
+ value <- 1-SSe/SSt;
+ return(value);
+ }
 > r2ww(HI9)
[1] 0.7716264

これに答えるために時間を費やしてくれたすべての人に感謝します。これについての非常に良い参考資料がすでにあるか、または上記のコードが読みづらい場合(私はコード担当者ではありません)、謝罪を受け入れてください。


重みをlm()内に入れ、そこからrの2乗を取る(なぜ車輪を再発明するのか?)
user603 14年

1
私がより効率的にやったことを行う方法についてのヒントをありがとう。誰もが私が説明/提案した加重r二乗の意味についてコメントできますか?
クレイグミリガン14年

@ user603:実際にlm()内にウェイトを配置するにはどうしますか?
-histelheim

ほめ言葉として、Rに当てはめられた重み付き最小二乗は、sum(w * e ^ 2)を最小化することによって行われます。ここで、eは残差です。したがって、計算コードでは、すべての重みwは平方根を取る必要があります。
ユアンハオライ

重み付き平均を取る必要はないことを強調したい、少なくとも私が書いたプログラムは、次のように1に近いrの2乗を与えると信じています:古典的なrの2乗rの2乗平均も重み付けされている場所で二乗すると、私にとっても-6は直感に反することがわかりますが、その経験は信じています
ピエール

回答:


22

次の答えは、(1)Willett and Singerの解釈(1988)R-squaredに関する別の注意事項に基づいています。これは、重み付き最小スクワット回帰分析で使用されます。アメリカの統計学者。42(3)。pp236-238、および(2)ロバスト線形回帰は、本質的に、反復プロセスで推定された重みを持つ重み付き最小二乗回帰であるという前提。

r2wの質問で与えた式は、r2wlsのWillet and Singer(1988)の式4に対応するために小さな修正が必要です。SSt計算では加重平均も使用する必要があります。

the correction is SSt <- sum((x$w*observed-mean(x$w*observed))^2)].

この(修正された)重み付けr-2乗の意味は何ですか?ウィレットとシンガーはそれを次のように解釈します:「変換された[加重]データセットの決定係数。加重 Xで説明できる加重 Y の変動の割合の尺度であり、次のように出力される量です。 WLS回帰が実行されるときの主要な統計コンピューターパッケージによるR2」。

適合度の尺度として意味がありますか?これは、それがどのように提示され解釈されるかに依存します。ウィレットとシンガーは、通常、通常の最小二乗回帰で得られるrの2乗よりもかなり高いことを警告し、高い値は顕著な表示を促します... -二乗(重みなしの割合としてモデルによって説明される変動)。ウィレットとシンガーは、「不正な」代替案はpseudoR2wls(式7)であると提案しています。これは、元の質問の関数r2と同等です。一般的に、ウィレットとシンガーは、適合度の唯一の尺度としてr2(pseudor2wlsでさえ)に依存するのは良くないことも警告しています。これらの注意にも関わらず、ロバスト回帰の全体的な前提は、一部のケースが「あまり良くない」と判断され、モデルのフィッティングでそれほど多くカウントされないことです。記述された重み付きrの2乗は、プレゼンテーションで正しい解釈が明確に示され、適合度の唯一の評価として信頼されない限り、適合度の1つの適切な尺度になります。


1
(+1)。時間を割いて答えてくれてありがとう。
user603 14

1

@CraigMilligan。すべきではない:

  • 重みは二乗括弧の外側にあります
  • 加重平均を計算するために使用することもできますsum(x$w*observed)/sum(x$w)weighted.mean(observed,x$w)

このようなもの:

r2ww <- function(x){
  SSe <- sum(x$w*(x$resid)^2)
  observed <- x$resid+x$fitted
  SSt <- sum(x$w*(observed-weighted.mean(observed,x$w))^2)
  value <- 1-SSe/SSt;
  return(value);
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.