古典的な重回帰におけるハットマトリックスとレバレッジとは何ですか?彼らの役割は何ですか?そして、なぜそれらを使用するのですか?

それらを理解するために、それらを説明するか、満足のいく本/記事の参照を与えてください。

コメント

  • このサイトには、レバレッジについて言及している投稿がたくさんあります。あなたはそれらのいくつかを閲覧することから始めることができます: stats.stackexchange.com/search?q=leverage+

回答

ハット行列 $ \ bf H $ は、次の値を表す射影行列です。モデル行列の列ベクトルの線形組み合わせに関する、独立変数 $ \ bf y $ の観測値 $ \ bf X $ 。これには、回帰している複数の変数のそれぞれの観測値が含まれます。

当然、 $ \ bf y $ は通常、 $ \ bf X $ の列スペースにはなく、この射影と $ \ bf \ hat Y $ 、および $ \ bf Y $ の実際の値。この違いは、残差または $ \ bf \ varepsilon = YX \ beta $

です。 ここに画像の説明を入力

推定係数、 $ \ bf \ hat \ beta_i $ は、投影されたベクトルpan class = “mathを生成するために必要な列ベクトル(変数 $ \ bf x_i $ の観測)の線形結合として幾何学的に理解されます。 -container “> $ \ bf \ hat Y $ 。 $ \ bf H \、Y = \ hat Y $ があります。したがって、ニーモニック" Hはyに帽子を置きます。"

帽子行列は次のように計算されます。 : $ \ bf H = X(X ^ TX)^ {-1} X ^ T $

そして推定された $ \ bf \ hat \ beta_i $ 係数は当然 $ \ bf(X ^ TX)^ {-1} X ^ Tとして計算されます$ 。

データセットの各ポイントは、通常の最小二乗(OLS)線をそれ自体に向かって引っ張ろうとします。ただし、リグレッサ値の極値でさらに離れたポイントは、より多くのレバレッジを持ちます。これは、非常に漸近的な点(赤)の例で、回帰線をより論理的に適合するものから実際に引き離しています。

ここに画像の説明を入力してください

つまり、これら2つの概念の関係はどこにありますか。特定の行のレバレッジスコアまたはデータセット内の観測値は、ハット行列の対角線の対応するエントリにあります。したがって、観察 $ i $ の場合、レバレッジスコアは $ \ bf H_ {ii} $ にあります。ハットマトリックスのこのエントリは、エントリ $ y_i $ $ \ hat y_i $になる方法に直接影響します。 ( $ i \ text {-th} $ 観測の高レバレッジ $ y_i $ 独自の予測値を決定する場合 $ \ hat y_i $ ):

ここに画像の説明を入力

ハット行列は射影行列であるため、その固有値は $ 0 $ および $ 1 $ 。したがって、トレース(対角要素の合計-この場合は $ 1 $ “の合計)が列空間のランクになりますが、ヌル空間の次元と同じ数のゼロ。したがって、ハット行列の対角線の値は1未満になり(trace = sum eigenvalues)、 $ 2 \ sum_ {i = 1} ^ {n} h_ {ii} / n $ $ n $ は行数。

モデルマトリックス内の外れ値データポイントのレバレッジは、1から実際の外れ値がOLSモデルに含まれている場合の外れ値の残差の比率を引いたものとして手動で計算することもできます。外れ値に対応する行を含めずに近似曲線を計算した場合の同じポイントの残差: $$ Leverage = 1- \ frac {\ text {residual OLS with outlier}} {\ text {外れ値のない残差OLS}} $$ Rでは、関数hatvalues()がすべてのポイントについてこの値を返します。

の最初のデータポイントの使用Rのデータセット{mtcars}

 fit = lm(mpg ~ wt, mtcars) # OLS including all points X = model.matrix(fit) # X model matrix hat_matrix = X%*%(solve(t(X)%*%X)%*%t(X)) # Hat matrix diag(hat_matrix)[1] # First diagonal point in Hat matrix fitwithout1 = lm(mpg ~ wt, mtcars[-1,]) # OLS excluding first data point. new = data.frame(wt=mtcars[1,"wt"]) # Predicting y hat in this OLS w/o first point. y_hat_without = predict(fitwithout1, newdata=new) # ... here it is. residuals(fit)[1] # The residual when OLS includes data point. lev = 1 - (residuals(fit)[1]/(mtcars[1,"mpg"] - y_hat_without)) # Leverage all.equal(diag(hat_matrix)[1],lev) #TRUE 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です